public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs
@ 2016-12-20 2:06 sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-m32, branch master sergiodj+buildbot
` (18 more replies)
0 siblings, 19 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3e67a37820a2838cdbd50f3f697ddc929443ceaa ***
Author: Andrew Waterman <andrew@sifive.com>
Branch: master
Commit: 3e67a37820a2838cdbd50f3f697ddc929443ceaa
Correct assembler mnemonic for RISC-V aqrl AMOs
sc is a misnomer, because they aren't inherently sc.
* riscv-opc.c (riscv_opcodes): Rename the "*.sc" instructions to
"*.aqrl".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-m32, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
@ 2016-12-20 2:05 ` sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-cc-with-index, " sergiodj+buildbot
` (17 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:05 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-3
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-m32/builds/5048>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-m32/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-cc-with-index, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-m32, branch master sergiodj+buildbot
@ 2016-12-20 2:05 ` sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-native-gdbserver-m32, " sergiodj+buildbot
` (16 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:05 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-cc-with-index/builds/5015>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-cc-with-index/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-native-gdbserver-m32, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-m32, branch master sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-cc-with-index, " sergiodj+buildbot
@ 2016-12-20 2:05 ` sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " sergiodj+buildbot
` (15 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:05 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-2
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-gdbserver-m32/builds/5043>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-native-gdbserver-m32/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-native-extended-gdbserver-m32, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (2 preceding siblings ...)
2016-12-20 2:05 ` Failures on Fedora-x86_64-native-gdbserver-m32, " sergiodj+buildbot
@ 2016-12-20 2:05 ` sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-m64, " sergiodj+buildbot
` (14 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:05 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-extended-gdbserver-m32/builds/5040>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-native-extended-gdbserver-m32/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (3 preceding siblings ...)
2016-12-20 2:05 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " sergiodj+buildbot
@ 2016-12-20 2:05 ` sergiodj+buildbot
2016-12-20 2:06 ` Failures on Fedora-s390x-m64, " sergiodj+buildbot
` (13 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:05 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-m64/builds/5077>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-s390x-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (4 preceding siblings ...)
2016-12-20 2:05 ` Failures on Fedora-x86_64-m64, " sergiodj+buildbot
@ 2016-12-20 2:06 ` sergiodj+buildbot
2016-12-20 2:12 ` Failures on Fedora-x86_64-native-gdbserver-m64, " sergiodj+buildbot
` (12 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:06 UTC (permalink / raw)
To: gdb-testers
Buildslave:
marist-fedora-s390x
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-s390x-m64/builds/4389>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-s390x-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-native-gdbserver-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (5 preceding siblings ...)
2016-12-20 2:06 ` Failures on Fedora-s390x-m64, " sergiodj+buildbot
@ 2016-12-20 2:12 ` sergiodj+buildbot
2016-12-20 2:12 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
` (11 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:12 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-3
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-gdbserver-m64/builds/5034>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-native-gdbserver-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-native-extended-gdbserver-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (6 preceding siblings ...)
2016-12-20 2:12 ` Failures on Fedora-x86_64-native-gdbserver-m64, " sergiodj+buildbot
@ 2016-12-20 2:12 ` sergiodj+buildbot
2016-12-20 2:14 ` Failures on Fedora-i686, " sergiodj+buildbot
` (10 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:12 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-2
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-extended-gdbserver-m64/builds/5064>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-native-extended-gdbserver-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-i686, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (7 preceding siblings ...)
2016-12-20 2:12 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
@ 2016-12-20 2:14 ` sergiodj+buildbot
2016-12-20 5:02 ` Failures on Fedora-x86_64-cc-with-index, " sergiodj+buildbot
` (9 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 2:14 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-3
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-i686/builds/5062>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-i686/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-x86_64-cc-with-index, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (8 preceding siblings ...)
2016-12-20 2:14 ` Failures on Fedora-i686, " sergiodj+buildbot
@ 2016-12-20 5:02 ` sergiodj+buildbot
2016-12-20 13:14 ` Failures on Ubuntu-AArch64-native-gdbserver-m64, " sergiodj+buildbot
` (8 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 5:02 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-x86-64-3
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-x86_64-cc-with-index/builds/5016>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-x86_64-cc-with-index/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Ubuntu-AArch64-native-gdbserver-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (9 preceding siblings ...)
2016-12-20 5:02 ` Failures on Fedora-x86_64-cc-with-index, " sergiodj+buildbot
@ 2016-12-20 13:14 ` sergiodj+buildbot
2016-12-20 13:15 ` Failures on Ubuntu-AArch64-m64, " sergiodj+buildbot
` (7 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 13:14 UTC (permalink / raw)
To: gdb-testers
Buildslave:
ubuntu-aarch64-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Ubuntu-AArch64-native-gdbserver-m64/builds/1093>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Ubuntu-AArch64-native-gdbserver-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=run: add-inferior
PASS -> FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=run: interrupt on the CLI
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: continue
PASS -> FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: server exits
============================
*** 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-AArch64-native-gdbserver-m64/xfails/master/xfail;hb=8bf1842>
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-AArch64-native-gdbserver-m64/xfails/master/xfail.table;hb=8bf1842>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Ubuntu-AArch64-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (10 preceding siblings ...)
2016-12-20 13:14 ` Failures on Ubuntu-AArch64-native-gdbserver-m64, " sergiodj+buildbot
@ 2016-12-20 13:15 ` sergiodj+buildbot
2016-12-20 19:37 ` Failures on Debian-i686-native-extended-gdbserver, " sergiodj+buildbot
` (6 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 13:15 UTC (permalink / raw)
To: gdb-testers
Buildslave:
ubuntu-aarch64-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Ubuntu-AArch64-m64/builds/1092>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Ubuntu-AArch64-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.threads/thread-specific-bp.exp: non-stop: continue to end
============================
*** 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-AArch64-m64/xfails/master/xfail;hb=0c31d8b>
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-AArch64-m64/xfails/master/xfail.table;hb=0c31d8b>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-i686-native-extended-gdbserver, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (11 preceding siblings ...)
2016-12-20 13:15 ` Failures on Ubuntu-AArch64-m64, " sergiodj+buildbot
@ 2016-12-20 19:37 ` sergiodj+buildbot
2016-12-20 20:07 ` Failures on Debian-i686, " sergiodj+buildbot
` (5 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 19:37 UTC (permalink / raw)
To: gdb-testers
Buildslave:
wildebeest-debian-jessie-i686
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-i686-native-extended-gdbserver/builds/4710>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-i686-native-extended-gdbserver/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
*** Diff to previous build ***
============================
new FAIL: gdb.threads/attach-into-signal.exp: threaded: process is still running on the attempt # 2 of 100
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: continue to breakpoint: run to breakpoint in thread 2
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: unbreak loop in thread 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-i686-native-extended-gdbserver/xfails/master/xfail;hb=6f40ca2>
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-i686-native-extended-gdbserver/xfails/master/xfail.table;hb=6f40ca2>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-i686, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (12 preceding siblings ...)
2016-12-20 19:37 ` Failures on Debian-i686-native-extended-gdbserver, " sergiodj+buildbot
@ 2016-12-20 20:07 ` sergiodj+buildbot
2016-12-22 14:31 ` Failures on Fedora-ppc64be-cc-with-index, " sergiodj+buildbot
` (4 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 20:07 UTC (permalink / raw)
To: gdb-testers
Buildslave:
wildebeest-debian-jessie-i686
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-i686/builds/4728>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-i686/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: continue to breakpoint: run to breakpoint in thread 2
PASS -> FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: unbreak loop in thread 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-i686/xfails/master/xfail;hb=6472016>
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-i686/xfails/master/xfail.table;hb=6472016>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-ppc64be-cc-with-index, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (13 preceding siblings ...)
2016-12-20 20:07 ` Failures on Debian-i686, " sergiodj+buildbot
@ 2016-12-22 14:31 ` sergiodj+buildbot
2016-12-23 19:19 ` Failures on Fedora-ppc64le-native-gdbserver-m64, " sergiodj+buildbot
` (3 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-22 14:31 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-ppc64be-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-ppc64be-cc-with-index/builds/4738>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-ppc64be-cc-with-index/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
*** Diff to previous build ***
============================
new FAIL: gdb.ada/array_return.exp: value printed by finish of Create_Small
new FAIL: gdb.ada/array_return.exp: value printed by finish of Create_Large
new FAIL: gdb.ada/array_return.exp: value printed by finish of Create_Small_Float_Vector
new FAIL: gdb.ada/call_pn.exp: print pn
new FAIL: gdb.ada/call_pn.exp: print last_node_id after calling pn
new FAIL: gdb.ada/fun_renaming.exp: print n
new FAIL: gdb.ada/info_locals_renaming.exp: info locals
new FAIL: gdb.ada/interface.exp: print s
new FAIL: gdb.ada/iwide.exp: print My_Drawable
new FAIL: gdb.ada/iwide.exp: print s_access.all
new FAIL: gdb.ada/iwide.exp: print sp_access.all
new FAIL: gdb.ada/iwide.exp: print d_access.all
new FAIL: gdb.ada/iwide.exp: print dp_access.all
new FAIL: gdb.ada/mi_interface.exp: create ggg1 varobj
new FAIL: gdb.ada/mi_interface.exp: list ggg1's children
new FAIL: gdb.ada/ptype_tagged_param.exp: ptype s
new FAIL: gdb.ada/ref_param.exp: frame argument value printed
new FAIL: gdb.ada/set_pckd_arr_elt.exp: continue to update_small
new FAIL: gdb.ada/tagged_access.exp: ptype c.all
new FAIL: gdb.ada/tagged_access.exp: ptype c.menu_name
new FAIL: gdb.ada/tagged.exp: ptype obj
new FAIL: gdb.ada/tagged.exp: print obj
new FAIL: gdb.arch/altivec-abi.exp: generic ABI, forced: step into vec_fun
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=AIX: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=AIX: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=AIX: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Cygwin: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Cygwin: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Cygwin: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=DICOS: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=DICOS: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=DICOS: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=DJGPP: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=DJGPP: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=DJGPP: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Darwin: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Darwin: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Darwin: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=FreeBSD: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=FreeBSD: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=FreeBSD: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=GNU/Hurd: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=GNU/Hurd: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=GNU/Hurd: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=GNU/Linux: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=GNU/Linux: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=GNU/Linux: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=LynxOS178: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=LynxOS178: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=LynxOS178: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=NetBSD: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=NetBSD: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=NetBSD: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Newlib: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Newlib: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Newlib: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=OpenBSD: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=OpenBSD: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=OpenBSD: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=OpenVMS: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=OpenVMS: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=OpenVMS: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=QNX-Neutrino: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=QNX-Neutrino: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=QNX-Neutrino: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=SDE: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=SDE: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=SDE: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=SVR4: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=SVR4: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=SVR4: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Solaris: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Solaris: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Solaris: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Symbian: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Symbian: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=Symbian: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=WindowsCE: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=WindowsCE: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=WindowsCE: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=auto: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=auto: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=auto: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=default: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=default: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=default: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=none: arch=cris: endian=auto: set architecture cris
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=none: arch=cris:common_v10_v32: endian=auto: set architecture cris:common_v10_v32
new FAIL: gdb.base/all-architectures-1.exp: tests: osabi=none: arch=crisv32: endian=auto: set architecture crisv32
new FAIL: gdb.base/callfuncs.exp: print *
new FAIL: gdb.base/callfuncs.exp: noproto: print *
new FAIL: gdb.base/catch-syscall.exp: execve: syscall execve has returned
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/checkpoint.exp: exit, dropped into next fork one
new FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork two
new FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork three
new FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork four
new FAIL: gdb.base/checkpoint.exp: exit, dropped into next fork five
new FAIL: gdb.base/checkpoint.exp: info checkpoints two
new FAIL: gdb.base/checkpoint.exp: kill all one
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 0
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 1
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 2
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 3
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 4
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 5
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 6
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 7
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 8
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 9
new FAIL: gdb.base/checkpoint.exp: no more checkpoint 10
new FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork one
new FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork two
new FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork three
new FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork four
new FAIL: gdb.base/checkpoint-ns.exp: exit, dropped into next fork five
new FAIL: gdb.base/checkpoint-ns.exp: info checkpoints two
new FAIL: gdb.base/checkpoint-ns.exp: kill all one
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 0
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 1
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 2
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 3
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 4
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 5
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 6
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 7
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 8
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 9
new FAIL: gdb.base/checkpoint-ns.exp: no more checkpoint 10
new FAIL: gdb.base/display.exp: first disp
new FAIL: gdb.base/display.exp: second disp
new FAIL: gdb.base/display.exp: info disp
new FAIL: gdb.base/display.exp: next hit
new FAIL: gdb.base/display.exp: disp *p_i
new FAIL: gdb.base/display.exp: p p_i = 0x0
new FAIL: gdb.base/display.exp: display bad address
new FAIL: gdb.base/display.exp: p p_i = &i
new FAIL: gdb.base/display.exp: display good address
new FAIL: gdb.base/display.exp: watch off
new FAIL: gdb.base/display.exp: finish
new FAIL: gdb.base/display.exp: step
new FAIL: gdb.base/display.exp: cont
new FAIL: gdb.base/display.exp: printf "%d%d",i
new FAIL: gdb.base/display.exp: print/k j
new FAIL: gdb.base/display.exp: debug test output 1
new FAIL: gdb.base/display.exp: debug test output 1a
new FAIL: gdb.base/display.exp: debug test output 2
new FAIL: gdb.base/display.exp: debug test output 2a
new FAIL: gdb.base/display.exp: debug test output 3
new FAIL: gdb.base/display.exp: x/0 j
new FAIL: gdb.base/display.exp: ignored s
new FAIL: gdb.base/display.exp: print/a $pc
new FAIL: gdb.base/func-ptrs.exp: continue to decr
new FAIL: gdb.base/func-ptrs.exp: stop in sentinel
new FAIL: gdb.base/func-ptrs.exp: move up to decr
new FAIL: gdb.base/func-ptrs.exp: go back to main from decr
new FAIL: gdb.base/func-ptrs.exp: set calc to incr
new FAIL: gdb.base/func-ptrs.exp: continue to incr, second time
new FAIL: gdb.base/func-ptrs.exp: go back to main from incr, second time
new FAIL: gdb.base/gdb11531.exp: watchpoint variable triggers at next
new FAIL: gdb.base/gdb11531.exp: watchpoint variable triggers at continue
new FAIL: gdb.base/gdbindex-stabs.exp: list stabs_function
new FAIL: gdb.base/gnu-debugdata.exp: have symtab
new FAIL: gdb.base/jit.exp: one_jit_test-1: info function ^jit_function
new FAIL: gdb.base/jit.exp: one_jit_test-2: info function ^jit_function
new FAIL: gdb.base/jit.exp: attach: one_jit_test-2: info function ^jit_function
new FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: info function ^jit_function
new FAIL: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 1
new FAIL: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 2
new FAIL: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 1
new FAIL: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 2
new FAIL: gdb.base/pr11022.exp: watchpoint hit
new FAIL: gdb.base/pr11022.exp: watchpoint hit 2
new FAIL: gdb.base/recurse.exp: continue to first instance watchpoint, first time
new FAIL: gdb.base/recurse.exp: continue to recurse
new FAIL: gdb.base/recurse.exp: continue to second instance watchpoint, first time
new FAIL: gdb.base/recurse.exp: continue to second instance watchpoint, second time
new FAIL: gdb.base/recurse.exp: second instance watchpoint deleted when leaving scope
new FAIL: gdb.base/recurse.exp: continue to first instance watchpoint, second time
new FAIL: gdb.base/recurse.exp: first instance watchpoint deleted when leaving scope
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=on: advanced
new FAIL: gdb.base/step-over-no-symbols.exp: displaced=auto: advanced
new FAIL: gdb.base/store.exp: var doublest l; setting l to 4
new FAIL: gdb.base/store.exp: var doublest l; print new l, expecting 4
new FAIL: gdb.base/store.exp: var doublest l; print incremented l, expecting 2
new FAIL: gdb.base/store.exp: upvar doublest l; set l to 4
new FAIL: gdb.base/store.exp: upvar doublest l; print new l, expecting 4
new FAIL: gdb.base/sym-file.exp: continue to breakpoint: bar
new FAIL: gdb.base/sym-file.exp: continue to breakpoint: foo
new FAIL: gdb.base/sym-file.exp: continue to breakpoint: gdb_remove_symbol_file
new FAIL: gdb.base/sym-file.exp: info files must not display sym-file-lib
new FAIL: gdb.base/sym-file.exp: breakpoint at foo is pending
new FAIL: gdb.base/sym-file.exp: breakpoint at bar is pending
new FAIL: gdb.base/sym-file.exp: continue to breakpoint: reload
new FAIL: gdb.base/sym-file.exp: stale bkpts: continue to breakpoint: gdb_add_symbol_file
new FAIL: gdb.base/sym-file.exp: stale bkpts: add-symbol-file sym-file-lib.so addr
new FAIL: gdb.base/sym-file.exp: stale bkpts: breakpoint at baz is pending
new FAIL: gdb.base/sym-file.exp: stale bkpts: continue to breakpoint: end here
new FAIL: gdb.base/until-nodebug.exp: until 1
new FAIL: gdb.base/until-nodebug.exp: until 2
new FAIL: gdb.base/value-double-free.exp: continue
new FAIL: gdb.base/value-double-free.exp: print empty
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 0->1: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 0->5: print expression before
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 0->5: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 0->5: print expression after
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 1->0: print expression before
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 1->0: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: print expression before
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: print expression after
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: continue until exit
new FAIL: gdb.base/watch-cond.exp: watchpoint with global expression, local condition evaluates in correct frame
new FAIL: gdb.base/watch-cond.exp: watchpoint with local expression, local condition evaluates in correct frame
new FAIL: gdb.base/watch-cond.exp: watchpoint on global2 variable triggers
new FAIL: gdb.base/watch-cond.exp: condition of watchpoint 2 changes
new FAIL: gdb.base/watch-cond.exp: watchpoint stops with untestable local expression
new FAIL: gdb.base/watch-cond-infcall.exp: hw: continue
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, first time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 1
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, second time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 2
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, third time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 3
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, fourth time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 4
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, fifth time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 5
new FAIL: gdb.base/watchpoint.exp: continue to marker2
new FAIL: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_simple_watchpoint
new FAIL: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, first time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, second time
new FAIL: gdb.base/watchpoint.exp: watchpoint disabled in table
new FAIL: gdb.base/watchpoint.exp: disabled watchpoint skipped
new FAIL: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_disabling_watchpoints
new FAIL: gdb.base/watchpoint.exp: trigger local watch
new FAIL: gdb.base/watchpoint.exp: self-delete local watch
new FAIL: gdb.base/watchpoint.exp: set static local watch
new FAIL: gdb.base/watchpoint.exp: trigger static local watch
new FAIL: gdb.base/watchpoint.exp: static local watch did not self-delete
new FAIL: gdb.base/watchpoint.exp: cont
new FAIL: gdb.base/watchpoint.exp: next past local_x initialization
new FAIL: gdb.base/watchpoint.exp: set local watch in recursive call
new FAIL: gdb.base/watchpoint.exp: trigger local watch in recursive call
new FAIL: gdb.base/watchpoint.exp: self-delete local watch in recursive call
new FAIL: gdb.base/watchpoint.exp: set local watch in recursive call with explicit scope
new FAIL: gdb.base/watchpoint.exp: trigger local watch with explicit scope in recursive call
new FAIL: gdb.base/watchpoint.exp: self-delete local watch with explicit scope in recursive call
new FAIL: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_complex_watchpoint
new FAIL: gdb.base/watchpoint.exp: next after watch x
new FAIL: gdb.base/watchpoint.exp: watchpoint on buf hit
new FAIL: gdb.base/watchpoint.exp: watch $pc
new FAIL: gdb.base/watchpoint.exp: disable watchpoint `$pc'
new FAIL: gdb.base/watchpoint.exp: reenable watchpoint `$pc'
new FAIL: gdb.base/watchpoint.exp: watchpoint `$pc' is enabled
new FAIL: gdb.base/watchpoint.exp: delete watchpoint `$pc'
new FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func5 breakpoint here
new FAIL: gdb.base/watchpoint.exp: watch -location .x
new FAIL: gdb.base/watchpoint.exp: continue with watch -location
new FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func6 breakpoint here
new FAIL: gdb.base/watchpoint.exp: continue with watch foo2
new FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func7 breakpoint here
new FAIL: gdb.base/watchpoint.exp: continue with watch foo4
new FAIL: gdb.base/watchpoint.exp: rwatch disallowed for register based expression
new FAIL: gdb.base/watchpoint.exp: awatch disallowed for register based expression
new FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue
new FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue to break-at-exit
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, first time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 1
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit count is 2
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, second time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 2
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit count is 3
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, third time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 3
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, fourth time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 4
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, fifth time
new FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit
new FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again
new FAIL: gdb.base/watchpoint-stops-at-right-insn.exp: always-inserted off: hardware watchpoint triggers
new FAIL: gdb.base/watchpoint-stops-at-right-insn.exp: always-inserted off: get hw watchpoint PC
new FAIL: gdb.base/watch-read.exp: read watchpoint triggers on first read
new FAIL: gdb.base/watch-read.exp: read watchpoint triggers on read after value changed
new FAIL: gdb.base/watch-read.exp: set write watchpoint on global variable
new FAIL: gdb.base/watch-read.exp: write watchpoint triggers
new FAIL: gdb.base/watch-read.exp: only write watchpoint triggers when value changes
new FAIL: gdb.base/watch-read.exp: read watchpoint triggers when value doesn't change, trapping reads and writes
new FAIL: gdb.base/watch-read.exp: only read watchpoint triggers when value doesn't change
new FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 1
new FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 1
new FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 2
new FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 2
new FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 3
new FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 3
new FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 4
new FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 4
new FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 5
new FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 5
new FAIL: gdb.compile/compile.exp: test abbreviations and code delimiter
new FAIL: gdb.compile/compile.exp: Test abbreviations and code collision
new FAIL: gdb.compile/compile.exp: test delimiter with -r
new FAIL: gdb.compile/compile.exp: test delimiter with -raw
new FAIL: gdb.compile/compile.exp: test delimiter with -r after it
new FAIL: gdb.compile/compile.exp: set variable without trailing semicolon
new FAIL: gdb.compile/compile.exp: check variable without trailing semicolon
new FAIL: gdb.compile/compile.exp: set variable from macro
new FAIL: gdb.compile/compile.exp: expect 23
new FAIL: gdb.compile/compile.exp: set variable from function-like macro
new FAIL: gdb.compile/compile.exp: expect -1
new FAIL: gdb.compile/compile.exp: set variable
new FAIL: gdb.compile/compile.exp: expect 42
new FAIL: gdb.compile/compile.exp: modify variable
new FAIL: gdb.compile/compile.exp: expect 84
new FAIL: gdb.compile/compile.exp: compile code multiline 4
new FAIL: gdb.compile/compile.exp: expect 20
new FAIL: gdb.compile/compile.exp: use external source file
new FAIL: gdb.compile/compile.exp: expect 7
new FAIL: gdb.compile/compile.exp: call static function
new FAIL: gdb.compile/compile.exp: expect 9
new FAIL: gdb.compile/compile.exp: call global function
new FAIL: gdb.compile/compile.exp: expect 8
new FAIL: gdb.compile/compile.exp: compute size of ulonger
new FAIL: gdb.compile/compile.exp: check size of ulonger
new FAIL: gdb.compile/compile.exp: compute size of longer
new FAIL: gdb.compile/compile.exp: check size of longer
new FAIL: gdb.compile/compile.exp: compile code globalvar = MINUS_1
new FAIL: gdb.compile/compile.exp: check MINUS_1
new FAIL: gdb.compile/compile.exp: compile code globalvar = static_local
new FAIL: gdb.compile/compile.exp: check static_local
new FAIL: gdb.compile/compile.exp: do not keep jit in memory
new FAIL: gdb.compile/compile.exp: compile code func_doesnotexist
new FAIL: gdb.compile/compile.exp: compile code segfault first
new FAIL: gdb.compile/compile.exp: bt
new FAIL: gdb.compile/compile.exp: info sym found
new FAIL: gdb.compile/compile.exp: return
new FAIL: gdb.compile/compile.exp: info sym not found
new FAIL: gdb.compile/compile.exp: compile code segfault second
new FAIL: gdb.compile/compile.exp: set localvar
new FAIL: gdb.compile/compile.exp: expect 12
new FAIL: gdb.compile/compile.exp: modify localvar
new FAIL: gdb.compile/compile.exp: expect 24
new FAIL: gdb.compile/compile.exp: test shadowing
new FAIL: gdb.compile/compile.exp: expect 52
new FAIL: gdb.compile/compile.exp: compile code localvar = externed
new FAIL: gdb.compile/compile.exp: test extern in inner scope
new FAIL: gdb.compile/compile.exp: compile code vla[2] = 7
new FAIL: gdb.compile/compile.exp: p vla[2]
new FAIL: gdb.compile/compile.exp: compile code localvar =
new FAIL: gdb.compile/compile.exp: p localvar
new FAIL: gdb.compile/compile.exp: compile code struct_object.selffield = &struct_object
new FAIL: gdb.compile/compile.exp: print struct_object.selffield == &struct_object
new FAIL: gdb.compile/compile.exp: compile code struct_object.charfield = 1
new FAIL: gdb.compile/compile.exp: print struct_object.charfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.ucharfield = 1
new FAIL: gdb.compile/compile.exp: print struct_object.ucharfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.shortfield = -5
new FAIL: gdb.compile/compile.exp: print struct_object.shortfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.ushortfield = 5
new FAIL: gdb.compile/compile.exp: print struct_object.ushortfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.intfield = -7
new FAIL: gdb.compile/compile.exp: print struct_object.intfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.uintfield = 7
new FAIL: gdb.compile/compile.exp: print struct_object.uintfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.bitfield = 2
new FAIL: gdb.compile/compile.exp: print struct_object.bitfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.longfield = -9
new FAIL: gdb.compile/compile.exp: print struct_object.longfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.ulongfield = 9
new FAIL: gdb.compile/compile.exp: print struct_object.ulongfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.enumfield = ONE
new FAIL: gdb.compile/compile.exp: print struct_object.enumfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.floatfield = 1
new FAIL: gdb.compile/compile.exp: print struct_object.floatfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.doublefield = 2
new FAIL: gdb.compile/compile.exp: print struct_object.doublefield
new FAIL: gdb.compile/compile.exp: compile code struct_object.arrayfield[2] = 7
new FAIL: gdb.compile/compile.exp: print struct_object.arrayfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.complexfield = 7 + 5i
new FAIL: gdb.compile/compile.exp: print struct_object.complexfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.boolfield = 1
new FAIL: gdb.compile/compile.exp: print struct_object.boolfield
new FAIL: gdb.compile/compile.exp: compile code struct_object.vectorfield[2] = 7
new FAIL: gdb.compile/compile.exp: print struct_object.vectorfield
new FAIL: gdb.compile/compile.exp: compile code union_object.typedeffield = 7
new FAIL: gdb.compile/compile.exp: print union_object.typedeffield
new FAIL: gdb.compile/compile.exp: print union_object.intfield
new FAIL: gdb.compile/compile.exp: print unresolved value
new FAIL: gdb.compile/compile.exp: compile code globalshadow += 1;
new FAIL: gdb.compile/compile.exp: print globalshadow
new FAIL: gdb.compile/compile.exp: compile code extern int globalshadow; globalshadow += 5;
new FAIL: gdb.compile/compile.exp: print 'compile.c'::globalshadow
new FAIL: gdb.compile/compile.exp: print globalshadow second time
new FAIL: gdb.compile/compile.exp: compile code staticshadow += 2;
new FAIL: gdb.compile/compile.exp: print staticshadow
new FAIL: gdb.compile/compile.exp: compile code -r multiline 4
new FAIL: gdb.compile/compile.exp: check globalshadow with -r
new FAIL: gdb.compile/compile.exp: pointer to jit function
new FAIL: gdb.compile/compile.exp: set variable to 77
new FAIL: gdb.compile/compile.exp: expect 77
new FAIL: gdb.compile/compile.exp: call func_nodebug
new FAIL: gdb.compile/compile.exp: expect -75
new FAIL: gdb.compile/compile.exp: call func_nodebug indirectly
new FAIL: gdb.compile/compile.exp: expect -76
new FAIL: gdb.compile/compile.exp: compile code static const int readonly = 1; *
new FAIL: gdb.compile/compile.exp: compile code union union_type newdecl_u
new FAIL: gdb.compile/compile.exp: compile code struct struct_type newdecl_s
new FAIL: gdb.compile/compile.exp: compile code inttypedef newdecl_i
new FAIL: gdb.compile/compile.exp: call shared library function
new FAIL: gdb.compile/compile.exp: expect 1
new FAIL: gdb.compile/compile.exp: modify shared library variable
new FAIL: gdb.compile/compile.exp: expect 15
new FAIL: gdb.compile/compile-ifunc.exp: nodebug: compile code resultvar = gnu_ifunc
new FAIL: gdb.compile/compile-ifunc.exp: nodebug: p resultvar
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-ops.exp: compile code
new FAIL: gdb.compile/compile-ops.exp: compile code optimized_out
new FAIL: gdb.compile/compile-print.exp: compile print varint
new FAIL: gdb.compile/compile-print.exp: compile print vararray
new FAIL: gdb.compile/compile-print.exp: compile print main
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/x 256
new FAIL: gdb.compile/compile-print.exp: print $
new FAIL: gdb.compile/compile-print.exp: compile print varobject
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 local_scope = 1
new FAIL: gdb.compile/compile-tls.exp: print local_scope
new FAIL: gdb.compile/compile-tls.exp: compile code static_scope = 2
new FAIL: gdb.compile/compile-tls.exp: print static_scope
new FAIL: gdb.compile/compile-tls.exp: compile code global_scope = 3
new FAIL: gdb.compile/compile-tls.exp: print global_scope
new FAIL: gdb.cp/annota2.exp: watch triggered on a.x
new FAIL: gdb.cp/annota2.exp: annotate-quit
new FAIL: gdb.cp/annota3.exp: watch triggered on a.x
new FAIL: gdb.cp/annota3.exp: annotate-quit
new FAIL: gdb.cp/gdb2495.exp: call a function that raises an exception without a handler.
new FAIL: gdb.cp/gdb2495.exp: bt after returning from a popped frame
new FAIL: gdb.cp/gdb2495.exp: info breakpoints
new FAIL: gdb.cp/gdb2495.exp: set unwind-on-terminating-exception off
new FAIL: gdb.cp/gdb2495.exp: turn off unwind on terminating exception flag
new FAIL: gdb.cp/gdb2495.exp: call a function that raises an exception with unwinding off..
new FAIL: gdb.cp/gdb2495.exp: delete all breakpoints in delete_breakpoints
new FAIL: gdb.cp/no-dmgl-verbose.exp: setting breakpoint at 'f
new FAIL: gdb.dwarf2/bad-regnum.exp: info addr foo1
new FAIL: gdb.dwarf2/dw2-case-insensitive.exp: p fuNC_symtab
new FAIL: gdb.dwarf2/implptrpiece.exp: print/d p[-1]
new FAIL: gdb.go/hello.exp: string after assignment check
new FAIL: gdb.go/methods.exp: setting breakpoint at main.T.Foo
new FAIL: gdb.go/methods.exp: setting breakpoint at
new FAIL: gdb.guile/scm-breakpoint.exp: test_watchpoints: test watchpoint write
new FAIL: gdb.guile/scm-breakpoint.exp: test_bkpt_internal: test invisible watchpoint write
new FAIL: gdb.guile/scm-breakpoint.exp: test_bkpt_eval_funcs: test watchpoint write
new FAIL: gdb.guile/scm-symtab.exp: test find-pc-line with resume address
new FAIL: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types
new FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr in natural
new FAIL: gdb.mi/mi-watch.exp: mi-mode=main: wp-type=hw: watchpoint trigger
new FAIL: gdb.mi/mi-watch.exp: mi-mode=separate: wp-type=hw: watchpoint trigger
new FAIL: gdb.mi/mi-watch-nonstop.exp: delete watchpoint
new FAIL: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": watchpoint hit
new FAIL: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": watchpoint hit 2
new FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": watchpoint hit
new FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": watchpoint hit 2
new FAIL: gdb.modula2/unbounded-array.exp: print unbounded array contents
new FAIL: gdb.reverse/fstatat-reverse.exp: check fstatat record
new FAIL: gdb.rust/expr.exp: print [1,2,3,4]
new FAIL: gdb.rust/expr.exp: ptype [1,2,3,4]
new FAIL: gdb.rust/expr.exp: print [mut 1,2,3,4]
new FAIL: gdb.rust/expr.exp: print $_isvoid
new FAIL: gdb.stabs/gdb11479.exp: can't run to main forced_stabs
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: detach: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: detach: detach
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint: detach
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: killed outside: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: killed outside: detach
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: detach: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: detach: continue
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: continue
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: killed outside: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: killed outside: continue
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: detach child
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach child
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: detach child
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: detach child
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: step
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: step
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: step: step
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: continue: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: step: step
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: continue: continue
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: breakpoint after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoint after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: breakpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: finish
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: singlethread watchpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: multithreaded watchpoints work at A
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: multithreaded watchpoints work at B
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: breakpoint
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint A after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint B after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint A after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint B after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: finish
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: finish
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: singlethread watchpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: multithreaded watchpoints work at A
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: multithreaded watchpoints work at B
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: breakpoint
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint A after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint B after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint A after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint B after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: finish
new FAIL: gdb.threads/watchthreads2.exp: x watch loop
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 1 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 2 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 3 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 4 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 5 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 6 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 7 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 8 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 9 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 10 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 11 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 12 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 13 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 14 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 15 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 16 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 17 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 18 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 19 out of 20 on watched_data
new FAIL: gdb.threads/wp-replication.exp: Continue to watchpoint trigger 20 out of 20 on watched_data
============================
*** 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-ppc64be-cc-with-index/xfails/master/xfail;hb=0cd7231>
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-ppc64be-cc-with-index/xfails/master/xfail.table;hb=0cd7231>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-ppc64le-native-gdbserver-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (14 preceding siblings ...)
2016-12-22 14:31 ` Failures on Fedora-ppc64be-cc-with-index, " sergiodj+buildbot
@ 2016-12-23 19:19 ` sergiodj+buildbot
2016-12-23 21:24 ` Failures on Fedora-ppc64le-m64, " sergiodj+buildbot
` (2 subsequent siblings)
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-23 19:19 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-ppc64le-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-ppc64le-native-gdbserver-m64/builds/4661>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-ppc64le-native-gdbserver-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-ppc64le-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (15 preceding siblings ...)
2016-12-23 19:19 ` Failures on Fedora-ppc64le-native-gdbserver-m64, " sergiodj+buildbot
@ 2016-12-23 21:24 ` sergiodj+buildbot
2016-12-23 23:30 ` Failures on Fedora-ppc64le-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-12-24 20:18 ` Failures on Debian-s390x-native-gdbserver-m64, " sergiodj+buildbot
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-23 21:24 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-ppc64le-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-ppc64le-m64/builds/4684>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-ppc64le-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: attach
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: no new threads
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: set breakpoint always-inserted on
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break break_fn
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break at break_fn: 1
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break at break_fn: 2
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break at break_fn: 3
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: reset timer in the inferior
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: print seconds_left
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: detach
PASS -> FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: set breakpoint always-inserted off
new FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: delete all breakpoints in delete_breakpoints
============================
*** 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-ppc64le-m64/xfails/master/xfail;hb=ec742b0>
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-ppc64le-m64/xfails/master/xfail.table;hb=ec742b0>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Fedora-ppc64le-native-extended-gdbserver-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (16 preceding siblings ...)
2016-12-23 21:24 ` Failures on Fedora-ppc64le-m64, " sergiodj+buildbot
@ 2016-12-23 23:30 ` sergiodj+buildbot
2016-12-24 20:18 ` Failures on Debian-s390x-native-gdbserver-m64, " sergiodj+buildbot
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-23 23:30 UTC (permalink / raw)
To: gdb-testers
Buildslave:
fedora-ppc64le-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Fedora-ppc64le-native-extended-gdbserver-m64/builds/4672>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Fedora-ppc64le-native-extended-gdbserver-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
` (17 preceding siblings ...)
2016-12-23 23:30 ` Failures on Fedora-ppc64le-native-extended-gdbserver-m64, " sergiodj+buildbot
@ 2016-12-24 20:18 ` sergiodj+buildbot
18 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2016-12-24 20:18 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/3525>
Commit(s) tested:
3e67a37820a2838cdbd50f3f697ddc929443ceaa
Author(s) (in the same order as the commits):
Andrew Waterman <andrew@sifive.com>
Subject:
Correct assembler mnemonic for RISC-V aqrl AMOs
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/3e/3e67a37820a2838cdbd50f3f697ddc929443ceaa/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=0: detach_on_fork=on: displaced=off: inferior 1 exited
PASS -> FAIL: gdb.threads/thread-unwindonsignal.exp: continue until exit
============================
*** 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-gdbserver-m64/xfails/master/xfail;hb=ecc7bff>
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-gdbserver-m64/xfails/master/xfail.table;hb=ecc7bff>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.
@ 2018-11-22 16:58 sergiodj+buildbot
2018-11-22 20:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-22 16:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 080363310650c93ad8e93018bcb6760ba5d32d1c ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 080363310650c93ad8e93018bcb6760ba5d32d1c
Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.
As preparation for multi-target, this patch makes each inferior have
its own thread list.
This isn't absolutely necessary for multi-target, but simplifies
things. It originally stemmed from the desire to eliminate the
init_thread_list calls sprinkled around, plus it makes it more
efficient to iterate over threads of a given inferior (no need to
always iterate over threads of all inferiors).
We still need to iterate over threads of all inferiors in a number of
places, which means we'd need adjust the ALL_THREADS /
ALL_NON_EXITED_THREADS macros. However, naively tweaking those macros
to have an extra for loop, like:
#define ALL_THREADS (thr, inf) \
for (inf = inferior_list; inf; inf = inf->next) \
for (thr = inf->thread_list; thr; thr = thr->next)
causes problems with code that does "break" or "continue" within the
ALL_THREADS loop body. Plus, we need to declare the extra "inf" local
variable in order to pass it as temporary variable to ALL_THREADS
(etc.)
It gets even trickier when we consider extending the macros to filter
out threads matching a ptid_t and a target. The macros become tricker
to read/write. Been there.
An alternative (which was my next attempt), is to replace the
ALL_THREADS etc. iteration style with for_each_all_threads,
for_each_non_exited_threads, etc. functions which would take a
callback as parameter, which would usually be passed a lambda.
However, I did not find that satisfactory at all, because the
resulting code ends up a little less natural / more noisy to read,
write and debug/step-through (due to use of lambdas), and in many
places where we use "continue;" to skip to the next thread now need to
use "return;". (I ran into hard to debug bugs caused by a
continue/return confusion.)
I.e., before:
ALL_NON_EXITED_THREADS (tp)
{
if (tp->not_what_I_want)
continue;
// do something
}
would turn into:
for_each_non_exited_thread ([&] (thread_info *tp)
{
if (tp->not_what_I_want)
return;
// do something
});
Lastly, the solution I settled with was to replace the ALL_THREADS /
ALL_NON_EXITED_THREADS / ALL_INFERIORS macros with (C++20-like) ranges
and iterators, such that you can instead naturaly iterate over
threads/inferiors using range-for, like e.g,.:
// all threads, including THREAD_EXITED threads.
for (thread_info *tp : all_threads ())
{ .... }
// all non-exited threads.
for (thread_info *tp : all_non_exited_threads ())
{ .... }
// all non-exited threads of INF inferior.
for (thread_info *tp : inf->non_exited_threads ())
{ .... }
The all_non_exited_threads() function takes an optional filter ptid_t as
parameter, which is quite convenient when we need to iterate over
threads matching that filter. See e.g., how the
set_executing/set_stop_requested/finish_thread_state etc. functions in
thread.c end up being simplified.
Most of the patch thus is about adding the infrustructure for allowing
the above. Later on when we get to actual multi-target, these
functions/ranges/iterators will gain a "target_ops *" parameter so
that e.g., we can iterate over all threads of a given target that
match a given filter ptid_t.
The only entry points users needs to be aware of are the
all_threads/all_non_exited_threads etc. functions seen above. Thus,
those functions are declared in gdbthread.h/inferior.h. The actual
iterators/ranges are mainly "internals" and thus are put out of view
in the new thread-iter.h/thread-iter.c/inferior-iter.h files. That
keeps the gdbthread.h/inferior.h headers quite a bit more readable.
A common/safe-iterator.h header is added which adds a template that
can be used to build "safe" iterators, which are forward iterators
that can be used to replace the ALL_THREADS_SAFE macro and other
instances of the same idiom in future.
There's a little bit of shuffling of code between
gdbthread.h/thread.c/inferior.h in the patch. That is necessary in
order to avoid circular dependencies between the
gdbthread.h/inferior.h headers.
As for the init_thread_list calls sprinkled around, they're all
eliminated by this patch, and a new, central call is added to
inferior_appeared. Note how also related to that, there's a call to
init_wait_for_inferior in remote.c that is eliminated.
init_wait_for_inferior is currently responsible for discarding skipped
inline frames, which had to be moved elsewhere. Given that nowadays
we always have a thread even for single-threaded processes, the
natural place is to delete a frame's inline frame info when we delete
the thread. I.e., from clear_thread_inferior_resources.
gdb/ChangeLog:
2018-11-22 Pedro Alves <palves@redhat.com>
* Makefile.in (COMMON_SFILES): Add thread-iter.c.
* breakpoint.c (breakpoints_should_be_inserted_now): Replace
ALL_NON_EXITED_THREADS with all_non_exited_threads.
(print_one_breakpoint_location): Replace ALL_INFERIORS with
all_inferiors.
* bsd-kvm.c: Include inferior.h.
* btrace.c (btrace_free_objfile): Replace ALL_NON_EXITED_THREADS
with all_non_exited_threads.
* common/filtered-iterator.h: New.
* common/safe-iterator.h: New.
* corelow.c (core_target_open): Don't call init_thread_list here.
* darwin-nat.c (thread_info_from_private_thread_info): Replace
ALL_THREADS with all_threads.
* fbsd-nat.c (fbsd_nat_target::resume): Replace
ALL_NON_EXITED_THREADS with inf->non_exited_threads.
* fbsd-tdep.c (fbsd_make_corefile_notes): Replace
ALL_NON_EXITED_THREADS with inf->non_exited_threads.
* fork-child.c (postfork_hook): Don't call init_thread_list here.
* gdbarch-selftests.c (register_to_value_test): Adjust.
* gdbthread.h: Don't include "inferior.h" here.
(struct inferior): Forward declare.
(enum step_over_calls_kind): Moved here from inferior.h.
(thread_info::deletable): Definition moved to thread.c.
(find_thread_ptid (inferior *, ptid_t)): Declare.
(ALL_THREADS, ALL_THREADS_BY_INFERIOR, ALL_THREADS_SAFE): Delete.
Include "thread-iter.h".
(all_threads, all_non_exited_threads, all_threads_safe): New.
(any_thread_p): Declare.
(thread_list): Delete.
* infcmd.c (signal_command): Replace ALL_NON_EXITED_THREADS with
all_non_exited_threads.
(proceed_after_attach_callback): Delete.
(proceed_after_attach): Take an inferior pointer instead of an
integer PID. Adjust to use range-for.
(attach_post_wait): Pass down inferior pointer instead of pid.
Use range-for instead of ALL_NON_EXITED_THREADS.
(detach_command): Remove init_thread_list call.
* inferior-iter.h: New.
* inferior.c (struct delete_thread_of_inferior_arg): Delete.
(delete_thread_of_inferior): Delete.
(delete_inferior, exit_inferior_1): Use range-for with
inf->threads_safe() instead of iterate_over_threads.
(inferior_appeared): Call init_thread_list here.
(discard_all_inferiors): Use all_non_exited_inferiors.
(find_inferior_id, find_inferior_pid): Use all_inferiors.
(iterate_over_inferiors): Use all_inferiors_safe.
(have_inferiors, number_of_live_inferiors): Use
all_non_exited_inferiors.
(number_of_inferiors): Use all_inferiors and std::distance.
(print_inferior): Use all_inferiors.
* inferior.h: Include gdbthread.h.
(enum step_over_calls_kind): Moved to gdbthread.h.
(struct inferior) <thread_list>: New field.
<threads, non_exited_threads, threads_safe>: New methods.
(ALL_INFERIORS): Delete.
Include "inferior-iter.h".
(ALL_NON_EXITED_INFERIORS): Delete.
(all_inferiors_safe, all_inferiors, all_non_exited_inferiors): New
functions.
* inflow.c (child_interrupt, child_pass_ctrlc): Replace
ALL_NON_EXITED_THREADS with all_non_exited_threads.
* infrun.c (follow_exec): Use all_threads_safe.
(clear_proceed_status, proceed): Use all_non_exited_threads.
(init_wait_for_inferior): Don't clear inline frame state here.
(infrun_thread_stop_requested, for_each_just_stopped_thread): Use
all_threads instead of ALL_NON_EXITED_THREADS.
(random_pending_event_thread): Use all_non_exited_threads instead
of ALL_NON_EXITED_THREADS. Use a lambda for repeated code.
(clean_up_just_stopped_threads_fsms): Use all_non_exited_threads
instead of ALL_NON_EXITED_THREADS.
(handle_no_resumed): Use all_non_exited_threads instead of
ALL_NON_EXITED_THREADS. Use all_inferiors instead of
ALL_INFERIORS.
(restart_threads, switch_back_to_stepped_thread): Use
all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
* linux-nat.c (check_zombie_leaders): Replace ALL_INFERIORS with
all_inferiors.
(kill_unfollowed_fork_children): Use inf->non_exited_threads
instead of ALL_NON_EXITED_THREADS.
* linux-tdep.c (linux_make_corefile_notes): Use
inf->non_exited_threads instead of ALL_NON_EXITED_THREADS.
* linux-thread-db.c (thread_db_target::update_thread_list):
Replace ALL_INFERIORS with all_inferiors.
(thread_db_target::thread_handle_to_thread_info): Use
inf->non_exited_threads instead of ALL_NON_EXITED_THREADS.
* mi/mi-interp.c (multiple_inferiors_p): New.
(mi_on_resume_1): Simplify using all_non_exited_threads and
multiple_inferiors_p.
* mi/mi-main.c (mi_cmd_thread_list_ids): Use all_non_exited_threads
instead of ALL_NON_EXITED_THREADS.
* nto-procfs.c (nto_procfs_target::open): Don't call
init_thread_list here.
* record-btrace.c (record_btrace_target_open)
(record_btrace_target::stop_recording)
(record_btrace_target::close)
(record_btrace_target::record_is_replaying)
(record_btrace_target::resume, record_btrace_target::wait)
(record_btrace_target::record_stop_replaying): Use
all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
* record-full.c (record_full_wait_1): Use all_non_exited_threads
instead of ALL_NON_EXITED_THREADS.
* regcache.c (cooked_read_test): Remove reference to global
thread_list.
* remote-sim.c (gdbsim_target::create_inferior): Don't call
init_thread_list here.
* remote.c (remote_target::update_thread_list): Use
all_threads_safe instead of ALL_NON_EXITED_THREADS.
(remote_target::process_initial_stop_replies): Replace
ALL_INFERIORS with all_non_exited_inferiors and use
all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
(remote_target::open_1): Don't call init_thread_list here.
(remote_target::append_pending_thread_resumptions)
(remote_target::remote_resume_with_hc): Use all_non_exited_threads
instead of ALL_NON_EXITED_THREADS.
(remote_target::commit_resume)
(remote_target::remove_new_fork_children): Replace ALL_INFERIORS
with all_non_exited_inferiors and use all_non_exited_threads
instead of ALL_NON_EXITED_THREADS.
(remote_target::kill_new_fork_children): Use
all_non_exited_threads instead of ALL_NON_EXITED_THREADS. Remove
init_thread_list and init_wait_for_inferior calls.
(remote_target::remote_btrace_maybe_reopen)
(remote_target::thread_handle_to_thread_info): Use
all_non_exited_threads instead of ALL_NON_EXITED_THREADS.
* target.c (target_terminal::restore_inferior)
(target_terminal_is_ours_kind): Replace ALL_INFERIORS with
all_non_exited_inferiors.
* thread-iter.c: New file.
* thread-iter.h: New file.
* thread.c: Include "inline-frame.h".
(thread_list): Delete.
(clear_thread_inferior_resources): Call clear_inline_frame_state.
(init_thread_list): Use all_threads_safe instead of
ALL_THREADS_SAFE. Adjust to per-inferior thread lists.
(new_thread): Adjust to per-inferior thread lists.
(add_thread_silent): Pass inferior to find_thread_ptid.
(thread_info::deletable): New, moved from the header.
(delete_thread_1): Adjust to per-inferior thread lists.
(find_thread_global_id): Use inf->threads().
(find_thread_ptid): Use find_inferior_ptid and pass inferior to
find_thread_ptid.
(find_thread_ptid(inferior*, ptid_t)): New overload.
(iterate_over_threads): Use all_threads_safe.
(any_thread_p): New.
(thread_count): Use all_threads and std::distance.
(live_threads_count): Use all_non_exited_threads and
std::distance.
(valid_global_thread_id): Use all_threads.
(in_thread_list): Use find_thread_ptid.
(first_thread_of_inferior): Adjust to per-inferior thread lists.
(any_thread_of_inferior, any_live_thread_of_inferior): Use
inf->non_exited_threads().
(prune_threads, delete_exited_threads): Use all_threads_safe.
(thread_change_ptid): Pass inferior pointer to find_thread_ptid.
(set_resumed, set_running): Use all_non_exited_threads.
(is_thread_state, is_stopped, is_exited, is_running)
(is_executing): Delete.
(set_executing, set_stop_requested, finish_thread_state): Use
all_non_exited_threads.
(print_thread_info_1): Use all_inferiors and all_threads.
(thread_apply_all_command): Use all_non_exited_threads.
(thread_find_command): Use all_threads.
(update_threads_executing): Use all_non_exited_threads.
* tid-parse.c (parse_thread_id): Use inf->threads.
* x86-bsd-nat.c (x86bsd_dr_set): Use inf->non_exited_threads ().
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2018-11-22 16:58 [binutils-gdb] Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc sergiodj+buildbot
@ 2018-11-22 20:52 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-22 20:52 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/6995>
Commit(s) tested:
080363310650c93ad8e93018bcb6760ba5d32d1c
Author(s) (in the same order as the commits):
Pedro Alves <palves@redhat.com>
Subject:
Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/08/080363310650c93ad8e93018bcb6760ba5d32d1c/>
*** Diff to previous build ***
============================
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=f92d7f7b>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=f92d7f7b>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix follow_exec latent problem
@ 2018-11-22 18:39 sergiodj+buildbot
2018-11-22 19:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-22 18:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c4c17fb0f5879d3f58c733a4139fa59817e8155e ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: c4c17fb0f5879d3f58c733a4139fa59817e8155e
Fix follow_exec latent problem
A following commit to make each inferior have its own thread list
exposes a problem with bf93d7ba99 ("Add thread after updating gdbarch
when exec'ing"), which is that we can't defer adding the thread
because that breaks try_open_exec_file which deep inside ends up
calling inferior_thread():
#5 0x0000000000637c78 in internal_error(char const*, int, char const*, ...) (file=0xc151f8 "src/gdb/thread.c", line=165, fmt=0xc15180 "%s: Assertion `%s' failed.") at src/gdb/common/errors.c:55
#6 0x00000000008a3d80 in inferior_thread() () at src/gdb/thread.c:165
#7 0x0000000000456f91 in try_thread_db_load_1(thread_db_info*) (info=0x277eb00) at src/gdb/linux-thread-db.c:830
#8 0x0000000000457554 in try_thread_db_load(char const*, int) (library=0xb01a4f "libthread_db.so.1", check_auto_load_safe=0)
at src/gdb/linux-thread-db.c:1002
#9 0x0000000000457861 in try_thread_db_load_from_sdir() () at src/gdb/linux-thread-db.c:1079
#10 0x0000000000457b72 in thread_db_load_search() () at src/gdb/linux-thread-db.c:1134
#11 0x0000000000457d29 in thread_db_load() () at src/gdb/linux-thread-db.c:1192
#12 0x0000000000457e51 in check_for_thread_db() () at src/gdb/linux-thread-db.c:1244
#13 0x0000000000457ed2 in thread_db_new_objfile(objfile*) (objfile=0x270ff60) at src/gdb/linux-thread-db.c:1273
#14 0x000000000045a92e in std::_Function_handler<void (objfile*), void (*)(objfile*)>::_M_invoke(std::_Any_data const&, objfile*&&) (__functor=..., __args#0=@0x7ffef3efe140: 0x270ff60) at /usr/include/c++/7/bits/std_function.h:316
#15 0x00000000007bbebf in std::function<void (objfile*)>::operator()(objfile*) const (this=0x24e1d18, __args#0=0x270ff60)
at /usr/include/c++/7/bits/std_function.h:706
#16 0x00000000007bba86 in gdb::observers::observable<objfile*>::notify(objfile*) const (this=0x117ce80 <gdb::observers::new_objfile>, args#0=0x270ff60) at src/gdb/common/observable.h:106
#17 0x0000000000856000 in symbol_file_add_with_addrs(bfd*, char const*, symfile_add_flags, section_addr_info*, objfile_flags, objfile*) (abfd=0x1d7dae0, name=0x254bfc0 "/ho
The problem is latent currently because inferior_thread() at that
point manages to return a thread, even though it's the wrong one (of
the old inferior).
The problem originally fixed by bf93d7ba99 was:
(...) we should avoid doing register reads
after a process does an exec and before we've updated that inferior's
gdbarch. Otherwise, we may interpret the registers using the wrong
architecture.
(...) The call to "add_thread" done just after adding the inferior is
problematic, because it ends up reading the registers (because the ptid
is re-used, we end up doing a switch_to_thread to it, which tries to
update stop_pc). (...)
The register-reading issue is no longer a problem nowadays, ever since
switch_to_thread stopped reading the stop_pc in git commit
f2ffa92bbce9 ("gdb: Eliminate the 'stop_pc' global").
So this commit basically reverts bf93d7ba99.
gdb/ChangeLog:
2018-11-22 Pedro Alves <palves@redhat.com>
* infrun.c (follow_exec) <set follow-exec new>: Add thread and
switch to it before calling into try_open_exec_file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove declarations of is_running/is_stopped/is_exited
@ 2018-11-23 14:22 sergiodj+buildbot
2018-11-23 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-23 14:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6af05e645ab7fbbb4e0b663f50febf052e6d09a0 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 6af05e645ab7fbbb4e0b663f50febf052e6d09a0
Remove declarations of is_running/is_stopped/is_exited
The recent commit 080363310650 ("Per-inferior thread list, thread
ranges/iterators, down with ALL_THREADS, etc.") removed the
definitions of is_running/is_stopped/is_exited but missed removing the
declarations.
gdb/ChangeLog:
2018-11-23 Pedro Alves <palves@redhat.com>
* gdbthread.h (enum thread_state): Move comments here.
(is_running, is_stopped, is_exited): Remove declarations.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdbserver: AArch64: Remove cannot_fetch/store_register
@ 2018-11-23 14:34 sergiodj+buildbot
2018-11-23 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-23 14:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5013824590f59374106007d4c9724d5767911d75 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 5013824590f59374106007d4c9724d5767911d75
gdbserver: AArch64: Remove cannot_fetch/store_register
The cannot store/fetch register functions are only used for checking
if a register can be accessed using PEEKUSER/POKEUSER.
The AArch64 port doesn't support this method of access, so remove the
unused functions.
gdb/gdbserver:
* linux-aarch64-low.c (aarch64_cannot_store_register): Remove.
(aarch64_cannot_fetch_register): Likewise.
(struct linux_target_ops): Update references.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Re-fix leak in source.c (open_source_file).
@ 2018-11-24 12:23 sergiodj+buildbot
2018-11-24 13:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-24 12:23 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5446094655df842abb4ababac39f34c6342e8da3 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 5446094655df842abb4ababac39f34c6342e8da3
Re-fix leak in source.c (open_source_file).
Leak fixed in '8e6a5953e1d Fix 4K leak in open_source_file' has been partially
undone by '2179fbc36d23 Return scoped_fd from open_source_file'. Re-add the
transfer of current s->fullname to the unique_xmalloc_ptr fullname given to
find_and_open_source.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2018-11-24 12:23 [binutils-gdb] Re-fix leak in source.c (open_source_file) sergiodj+buildbot
@ 2018-11-24 13:36 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-24 13:36 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7000>
Commit(s) tested:
5446094655df842abb4ababac39f34c6342e8da3
Author(s) (in the same order as the commits):
Philippe Waroquiers <philippe.waroquiers@skynet.be>
Subject:
Re-fix leak in source.c (open_source_file).
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/54/5446094655df842abb4ababac39f34c6342e8da3/>
*** Diff to previous build ***
============================
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 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 string_1 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 of c
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: mi runto main
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 -> 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
PASS -> UNRESOLVED: gdb.reverse/consecutive-precsave.exp: continue to breakpoint in foo
PASS -> UNRESOLVED: gdb.reverse/consecutive-precsave.exp: get breakpoint address for foo
PASS -> UNRESOLVED: gdb.reverse/consecutive-precsave.exp: reload precord save file
PASS -> FAIL: gdb.reverse/consecutive-precsave.exp: run to end of main
PASS -> UNRESOLVED: gdb.reverse/consecutive-precsave.exp: set bp, 2nd instr
PASS -> UNRESOLVED: gdb.reverse/consecutive-precsave.exp: set reverse execution
new UNRESOLVED: gdb.reverse/consecutive-precsave.exp: setting breakpoint at foo
PASS -> UNRESOLVED: gdb.reverse/consecutive-precsave.exp: stopped at bp in reverse, 1st instr
PASS -> UNRESOLVED: gdb.reverse/consecutive-precsave.exp: stopped at bp, 2nd instr
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 -> 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=f92d7f7b>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=f92d7f7b>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove obsolete comments from field_fmt
@ 2018-11-25 23:04 sergiodj+buildbot
2018-11-26 0:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-25 23:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b5b12e1dbe0f2739624f91621828df73ef55e900 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b5b12e1dbe0f2739624f91621828df73ef55e900
Remove obsolete comments from field_fmt
This removes some comments that I believe were made obsolete by the
recent change to cli_ui_out::do_field_fmt. The comment in mi_ui_out
probably was just copy/paste, because I think aligning never made
sense in an MI context.
gdb/ChangeLog
2018-11-25 Tom Tromey <tom@tromey.com>
* ui-out.c (ui_out::field_fmt): Remove comment.
* tui/tui-out.c (tui_ui_out::do_field_fmt): Remove comment.
* mi/mi-out.c (mi_ui_out::do_field_fmt): Remove comment.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Implement timestamp'ed output on "make check"
@ 2018-11-25 23:41 sergiodj+buildbot
2018-11-26 1:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-25 23:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f63c03b470036353c8c6c657e15f5ebd62ab67dd ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: f63c03b470036353c8c6c657e15f5ebd62ab67dd
Implement timestamp'ed output on "make check"
It is unfortunately not uncommon to have tests hanging on some of the
BuildBot workers. For example, the ppc64be/ppc64le+gdbserver builders
are especially in a bad state when it comes to testing GDB/gdbserver,
and we can have builds that take an absurd amount of time to
finish (almost 1 week for one single build, for example).
It may be hard to diagnose these failures, because sometimes we don't
have access to the faulty systems, and other times we're just too busy
to wait and check which test is actually hanging. During one of our
conversations about the topic, someone proposed that it would be a
good idea to have a timestamp put together with stdout output, so that
we can come back later and examine which tests are taking too long to
complete.
Here's my proposal to do this. The very first thing I tried to do was
to use "ts(1)" to achieve this feature, and it obviously worked, but
the problem is that I'm afraid "ts(1)" may not be widely available on
every system we support. Therefore, I decided to implement a *very*
simple version of "ts(1)", in Python 3, which basically does the same
thing: iterate over the stdin lines, and prepend a timestamp onto
them.
As for testsuite/Makefile.in, the user can now specify two new
variables to enable timestamp'ed output: TS (which enables the
output), and TS_FORMAT (optional, used to specify another timestamp
format according to "strftime").
Here's an example of how the output looks like:
...
[Nov 22 17:07:19] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/call-strs.exp ...
[Nov 22 17:07:19] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/step-over-no-symbols.exp ...
[Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/all-architectures-6.exp ...
[Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/hashline3.exp ...
[Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/max-value-size.exp ...
[Nov 22 17:07:20] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/quit-live.exp ...
[Nov 22 17:07:46] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/paginate-bg-execution.exp ...
[Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp ...
[Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/gcore-relro.exp ...
[Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/watchpoint-delete.exp ...
[Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp ...
[Nov 22 17:07:56] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/vla-sideeffect.exp ...
[Nov 22 17:07:57] [1234] Running binutils-gdb/gdb/testsuite/gdb.base/unload.exp ...
...
(What, gdb.base/quit-live.exp is taking 26 seconds to complete?!)
Output to stderr is not timestamp'ed, but I don't think that will be a
problem for us. If it is, we can revisit the solution and extend it.
gdb/testsuite/ChangeLog:
2018-11-25 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile.in (TIMESTAMP): New variable.
(check-single): Add $(TIMESTAMP) to the end of $(DO_RUNTEST)
command.
(check-single-racy): Likewise.
(check/%.exp): Likewise.
(check-racy/%.exp): Likewise.
(workers/%.worker): Likewise.
(build-perf): Likewise.
(check-perf): Likewise.
* README: Describe new "TS" and "TS_FORMAT" variables.
* print-ts.py: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix Solaris build
@ 2018-11-26 14:27 sergiodj+buildbot
2018-11-26 14:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-26 14:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 24bce9bbe510c9efa36c0f85fb2f8a93ec8b623e ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 24bce9bbe510c9efa36c0f85fb2f8a93ec8b623e
Fix Solaris build
The recent commit 080363310650 ("Per-inferior thread list, thread
ranges/iterators, down with ALL_THREADS, etc.") removed the
definitions of is_running/is_stopped/is_exited but missed updating a
couple uses of is_exited in Solaris-specific code.
Tested by Rainer Orth on amd64-pc-solaris2.11.
gdb/ChangeLog:
2018-11-26 Pedro Alves <palves@redhat.com>
* procfs.c (procfs_notice_thread): Replace uses of
in_thread_list/is_exited with find_thread_ptid/THREAD_EXITED.
* sol-thread.c (sol_thread_target::wait)
(sol_update_thread_list_callback): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix spurious semicolon in sparc-linux-nat.c
@ 2018-11-26 22:26 sergiodj+buildbot
2018-11-26 23:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-26 22:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ed2df75c51551cf9b44f7d94179849565ab5bdda ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: ed2df75c51551cf9b44f7d94179849565ab5bdda
Fix spurious semicolon in sparc-linux-nat.c
Remove a semicolon that should not be there, as reported in PR 23917:
CXX sparc-linux-nat.o
/home/emaisin/src/binutils-gdb/gdb/sparc-linux-nat.c:39:3: error: expected unqualified-id before { token
{ sparc_store_inferior_registers (regcache, regnum); }
^
Tested by rebuilding the file manually (make sparc-linux-nat.o) in a
sparc64-linux-gnu build.
gdb/ChangeLog:
PR gdb/23917
* sparc-linux-nat.c (sparc_linux_nat_target): Remove extraneous
semicolon.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] AArch64: Fix regression in Cortex A53 erratum when PIE. (PR ld/23904)
@ 2018-11-27 13:47 sergiodj+buildbot
2018-11-27 15:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 13:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9fca35fc3486283562a7fcd9eb0ff845b0152d98 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 9fca35fc3486283562a7fcd9eb0ff845b0152d98
AArch64: Fix regression in Cortex A53 erratum when PIE. (PR ld/23904)
The fix for PR ld/22263 causes TLS relocations using ADRP to be relaxed
into MOVZ, however this causes issues for the erratum code.
The erratum code scans the input sections looking for ADRP instructions
and notes their location in the stream.
It then later tries to find them again in order to generate the linker
stubs. Due to the relaxation it instead finds a MOVZ and hard aborts.
Since this relaxation is a valid one, and in which case the erratum no
longer applies, it shouldn't abort but instead just continue.
This changes the TLS relaxation code such that when it finds an ADRP and
it relaxes it, it removes the erratum entry from the work list by changing
the stub type into none so the stub is ignored.
The entry is not actually removed as removal is a more expensive operation
and we have already allocated the memory anyway.
The clearing is done for IE->LE and GD->LE relaxations, and a testcase is
added for the IE case. The GD case I believe to be impossible to get together
with the erratum sequence due to the required BL which would break the sequence.
However to cover all basis I have added the guard there as well.
build on native hardware and regtested on
aarch64-none-elf, aarch64-none-elf (32 bit host),
aarch64-none-linux-gnu, aarch64-none-linux-gnu (32 bit host)
Cross-compiled and regtested on
aarch64-none-linux-gnu, aarch64_be-none-linux-gnu
Testcase in PR23940 tested and works as expected now and benchmarks ran on A53
showing no regressions and no issues.
bfd/ChangeLog:
PR ld/23904
* elfnn-aarch64.c (_bfd_aarch64_adrp_p): Use existing constants.
(_bfd_aarch64_erratum_843419_branch_to_stub): Use _bfd_aarch64_adrp_p.
(struct erratum_835769_branch_to_stub_clear_data): New.
(_bfd_aarch64_erratum_843419_clear_stub): New.
(clear_erratum_843419_entry): New.
(elfNN_aarch64_tls_relax): Use it.
(elfNN_aarch64_relocate_section): Pass input_section.
(aarch64_map_one_stub): Handle branch type none as valid.
ld/ChangeLog:
PR ld/23904
* testsuite/ld-aarch64/aarch64-elf.exp: Add erratum843419_tls_ie.
* testsuite/ld-aarch64/erratum843419_tls_ie.d: New test.
* testsuite/ld-aarch64/erratum843419_tls_ie.s: New test.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Initialize *uncompressed_align_pow_p to 0
@ 2018-11-27 15:46 sergiodj+buildbot
2018-11-27 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 15:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 131a5a648d314cd15811158150573cb40eb3abd0 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 131a5a648d314cd15811158150573cb40eb3abd0
Initialize *uncompressed_align_pow_p to 0
Initialize *uncompressed_align_pow_p to 0 since *uncompressed_align_pow_p
is passed to bfd_is_section_compressed_with_header as uninitialized,
PR binutils/23919
* compress.c (bfd_is_section_compressed_with_header): Initialize
*uncompressed_align_pow_p to 0.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] MIPS/LD: Continue processing with refused relocations in PIC code
@ 2018-11-27 17:21 sergiodj+buildbot
2018-11-27 18:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 17:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT aff68bd0415c6f834cf1717865b5b44dea6b9ef5 ***
Author: Maciej W. Rozycki <macro@linux-mips.org>
Branch: master
Commit: aff68bd0415c6f834cf1717865b5b44dea6b9ef5
MIPS/LD: Continue processing with refused relocations in PIC code
Switch from `_bfd_error_handler' to `info->callbacks->einfo' with error
reporting concerning the use of position-dependent relocations such as
R_MIPS_HI16 or R_MIPS_26 in PIC code and continue processing so that any
subsequent link errors are also shown rather than the linker terminating
right away. This can reduce user frustration where correcting one error
only reveals another one; instead all are shown together making them all
possible to investigate at once. The use of the `%X' specifier causes
the linker to terminate unsuccessfully at the end of processing.
Also fix the message to say `cannot' rather than `can not'.
bfd/
* elfxx-mips.c (_bfd_mips_elf_check_relocs) <R_MIPS16_26>
<R_MIPS_26, R_MICROMIPS_26_S1>: Use `info->callbacks->einfo'
rather than `_bfd_error_handler' to report refused relocations
in PIC code and continue processing. Fix error message: `can
not' -> `cannot'.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [ARM] Update knowledge of bfd architectures
@ 2018-11-27 19:07 sergiodj+buildbot
2018-11-27 21:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 19:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b5ab31636d36e1252791cec179aa11ab9d9b87e9 ***
Author: Thomas Preud'homme <thomas.preudhomme@linaro.org>
Branch: master
Commit: b5ab31636d36e1252791cec179aa11ab9d9b87e9
[ARM] Update knowledge of bfd architectures
Commit c0c468d562649df0f695737262b6230b7a56a4bb updated bfd's knowledge
of Arm architectures to Armv5TEJ and later but missed the list of CPUs
recognized by objdump -d -m<cpu>.
.note.gnu.arm.ident related code is intentionally not updated as build
attributes are a better mechanism to express the ISA in a file. However
this patch adds tests for the existing code since no existing testcase
cover those codepaths. Since I've only ever managed for
bfd_arm_get_mach_from_notes () to have an effect by using objcopy on
a file with a note but no Arm build attribute, the tests make use of
both objcopy actions supported by run_dump_test which requires to have a
ld line as well.
Note that the CPU list in bfd/cpu-arm.c was simply copied over from
GAS' CPU list but sorted alphabetically as already done for existing
entries.
2018-11-27 Thomas Preud'homme <thomas.preudhomme@linaro.org>
bfd/
* cpu-arm.c (processors): Add processors known to GAS but missing here
and reindent.
(bfd_arm_update_notes): Add comment explaining why the list of
architectures in the switch should not be updated.
(architectures): Likewise.
gas/
* testsuite/gas/arm/cpu-arm1020.d: New testcase.
* testsuite/gas/arm/cpu-arm1020e.d: Likewise.
* testsuite/gas/arm/cpu-arm1020t.d: Likewise.
* testsuite/gas/arm/cpu-arm1022e.d: Likewise.
* testsuite/gas/arm/cpu-arm1026ej-s.d: Likewise.
* testsuite/gas/arm/cpu-arm1026ejs.d: Likewise.
* testsuite/gas/arm/cpu-arm10e.d: Likewise.
* testsuite/gas/arm/cpu-arm10t.d: Likewise.
* testsuite/gas/arm/cpu-arm10tdmi.d: Likewise.
* testsuite/gas/arm/cpu-arm1136j-s.d: Likewise.
* testsuite/gas/arm/cpu-arm1136jf-s.d: Likewise.
* testsuite/gas/arm/cpu-arm1136jfs.d: Likewise.
* testsuite/gas/arm/cpu-arm1136js.d: Likewise.
* testsuite/gas/arm/cpu-arm1156t2-s.d: Likewise.
* testsuite/gas/arm/cpu-arm1156t2f-s.d: Likewise.
* testsuite/gas/arm/cpu-arm1176jz-s.d: Likewise.
* testsuite/gas/arm/cpu-arm1176jzf-s.d: Likewise.
* testsuite/gas/arm/cpu-arm2.d: Likewise.
* testsuite/gas/arm/cpu-arm250.d: Likewise.
* testsuite/gas/arm/cpu-arm3.d: Likewise.
* testsuite/gas/arm/cpu-arm6.d: Likewise.
* testsuite/gas/arm/cpu-arm60.d: Likewise.
* testsuite/gas/arm/cpu-arm600.d: Likewise.
* testsuite/gas/arm/cpu-arm610.d: Likewise.
* testsuite/gas/arm/cpu-arm620.d: Likewise.
* testsuite/gas/arm/cpu-arm7.d: Likewise.
* testsuite/gas/arm/cpu-arm70.d: Likewise.
* testsuite/gas/arm/cpu-arm700.d: Likewise.
* testsuite/gas/arm/cpu-arm700i.d: Likewise.
* testsuite/gas/arm/cpu-arm710.d: Likewise.
* testsuite/gas/arm/cpu-arm7100.d: Likewise.
* testsuite/gas/arm/cpu-arm710c.d: Likewise.
* testsuite/gas/arm/cpu-arm710t.d: Likewise.
* testsuite/gas/arm/cpu-arm720.d: Likewise.
* testsuite/gas/arm/cpu-arm720t.d: Likewise.
* testsuite/gas/arm/cpu-arm740t.d: Likewise.
* testsuite/gas/arm/cpu-arm7500.d: Likewise.
* testsuite/gas/arm/cpu-arm7500fe.d: Likewise.
* testsuite/gas/arm/cpu-arm7d.d: Likewise.
* testsuite/gas/arm/cpu-arm7di.d: Likewise.
* testsuite/gas/arm/cpu-arm7dm.d: Likewise.
* testsuite/gas/arm/cpu-arm7dmi.d: Likewise.
* testsuite/gas/arm/cpu-arm7m.d: Likewise.
* testsuite/gas/arm/cpu-arm7t.d: Likewise.
* testsuite/gas/arm/cpu-arm7tdmi-s.d: Likewise.
* testsuite/gas/arm/cpu-arm7tdmi.d: Likewise.
* testsuite/gas/arm/cpu-arm8.d: Likewise.
* testsuite/gas/arm/cpu-arm810.d: Likewise.
* testsuite/gas/arm/cpu-arm9.d: Likewise.
* testsuite/gas/arm/cpu-arm920.d: Likewise.
* testsuite/gas/arm/cpu-arm920t.d: Likewise.
* testsuite/gas/arm/cpu-arm922t.d: Likewise.
* testsuite/gas/arm/cpu-arm926ej-s.d: Likewise.
* testsuite/gas/arm/cpu-arm926ej.d: Likewise.
* testsuite/gas/arm/cpu-arm926ejs.d: Likewise.
* testsuite/gas/arm/cpu-arm940t.d: Likewise.
* testsuite/gas/arm/cpu-arm946e-r0.d: Likewise.
* testsuite/gas/arm/cpu-arm946e-s.d: Likewise.
* testsuite/gas/arm/cpu-arm946e.d: Likewise.
* testsuite/gas/arm/cpu-arm966e-r0.d: Likewise.
* testsuite/gas/arm/cpu-arm966e-s.d: Likewise.
* testsuite/gas/arm/cpu-arm966e.d: Likewise.
* testsuite/gas/arm/cpu-arm968e-s.d: Likewise.
* testsuite/gas/arm/cpu-arm9e-r0.d: Likewise.
* testsuite/gas/arm/cpu-arm9e.d: Likewise.
* testsuite/gas/arm/cpu-arm9tdmi.d: Likewise.
* testsuite/gas/arm/cpu-arm_any.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a12.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a15.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a17.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a32.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a35.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a5.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a53.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a55.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a57.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a7.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a72.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a73.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a75.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a76.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a8.d: Likewise.
* testsuite/gas/arm/cpu-cortex-a9.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m0.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m0plus.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m1.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m23.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m3.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m33.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m4.d: Likewise.
* testsuite/gas/arm/cpu-cortex-m7.d: Likewise.
* testsuite/gas/arm/cpu-cortex-r4.d: Likewise.
* testsuite/gas/arm/cpu-cortex-r4f.d: Likewise.
* testsuite/gas/arm/cpu-cortex-r5.d: Likewise.
* testsuite/gas/arm/cpu-cortex-r52.d: Likewise.
* testsuite/gas/arm/cpu-cortex-r7.d: Likewise.
* testsuite/gas/arm/cpu-cortex-r8.d: Likewise.
* testsuite/gas/arm/cpu-ep9312.d: Likewise.
* testsuite/gas/arm/cpu-exynos-m1.d: Likewise.
* testsuite/gas/arm/cpu-fa526.d: Likewise.
* testsuite/gas/arm/cpu-fa606te.d: Likewise.
* testsuite/gas/arm/cpu-fa616te.d: Likewise.
* testsuite/gas/arm/cpu-fa626.d: Likewise.
* testsuite/gas/arm/cpu-fa626te.d: Likewise.
* testsuite/gas/arm/cpu-fa726te.d: Likewise.
* testsuite/gas/arm/cpu-fmp626.d: Likewise.
* testsuite/gas/arm/cpu-i80200.d: Likewise.
* testsuite/gas/arm/cpu-iwmmxt.d: Likewise.
* testsuite/gas/arm/cpu-iwmmxt2.d: Likewise.
* testsuite/gas/arm/cpu-marvell-pj4.d: Likewise.
* testsuite/gas/arm/cpu-marvell-whitney.d: Likewise.
* testsuite/gas/arm/cpu-mpcore.d: Likewise.
* testsuite/gas/arm/cpu-mpcorenovfp.d: Likewise.
* testsuite/gas/arm/cpu-sa1.d: Likewise.
* testsuite/gas/arm/cpu-strongarm.d: Likewise.
* testsuite/gas/arm/cpu-strongarm1.d: Likewise.
* testsuite/gas/arm/cpu-strongarm110.d: Likewise.
* testsuite/gas/arm/cpu-strongarm1100.d: Likewise.
* testsuite/gas/arm/cpu-strongarm1110.d: Likewise.
* testsuite/gas/arm/cpu-xgene1.d: Likewise.
* testsuite/gas/arm/cpu-xgene2.d: Likewise.
* testsuite/gas/arm/cpu-xscale.d: Likewise.
* testsuite/gas/arm/nop-asm.s: Likewise.
* testsuite/gas/arm/note-march-armv2.d: Likewise.
* testsuite/gas/arm/note-march-armv2.s: Likewise.
* testsuite/gas/arm/note-march-armv2a.d: Likewise.
* testsuite/gas/arm/note-march-armv2a.s: Likewise.
* testsuite/gas/arm/note-march-armv3.d: Likewise.
* testsuite/gas/arm/note-march-armv3.s: Likewise.
* testsuite/gas/arm/note-march-armv3m.d: Likewise.
* testsuite/gas/arm/note-march-armv3m.s: Likewise.
* testsuite/gas/arm/note-march-armv4.d: Likewise.
* testsuite/gas/arm/note-march-armv4.s: Likewise.
* testsuite/gas/arm/note-march-armv4t.d: Likewise.
* testsuite/gas/arm/note-march-armv4t.s: Likewise.
* testsuite/gas/arm/note-march-armv5.d: Likewise.
* testsuite/gas/arm/note-march-armv5.s: Likewise.
* testsuite/gas/arm/note-march-armv5t.d: Likewise.
* testsuite/gas/arm/note-march-armv5t.s: Likewise.
* testsuite/gas/arm/note-march-armv5te.d: Likewise.
* testsuite/gas/arm/note-march-armv5te.d: Likewise.
* testsuite/gas/arm/note-march-ep9312.d: Likewise.
* testsuite/gas/arm/note-march-ep9312.s: Likewise.
* testsuite/gas/arm/note-march-iwmmxt.d: Likewise.
* testsuite/gas/arm/note-march-iwmmxt.s: Likewise.
* testsuite/gas/arm/note-march-iwmmxt2.d: Likewise.
* testsuite/gas/arm/note-march-iwmmxt2.s: Likewise.
* testsuite/gas/arm/note-march-xscale.d: Likewise.
* testsuite/gas/arm/note-march-xscale.s: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Add .insn CA support.
@ 2018-11-27 20:10 sergiodj+buildbot
2018-11-27 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-27 20:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4765cd611992862c844e8f152c5dbaadaecc25ce ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 4765cd611992862c844e8f152c5dbaadaecc25ce
RISC-V: Add .insn CA support.
gas/
* config/tc-riscv.c (validate_riscv_insn) <'F'>: Add support for CF6
and CF2 operands.
(riscv_ip) <'F'>: Likewise.
* doc/c-riscv.texi (RISC-V-Formats): Add func6 abbreviation. Use rs2
instead of rs1 in CR description. Add CA docs.
* gas/testsuite/riscv/insn.s: Add use of .insn ca.
* gas/testsuite/riscv/insn.d: Update to match.
include/
* opcode/riscv.h (OP_MASK_CFUNCT6, OP_SH_CFUNCT6): New.
(OP_MASK_CFUNCT2, OP_SH_CFUNCT2): New.
opcodes/
* riscv-opc.c (ciw): Fix whitespace to align columns.
(ca): New.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix use-after-free in gdbserver
@ 2018-11-29 18:14 sergiodj+buildbot
2018-11-29 19:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-29 18:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d105de22fc385da878e8db44c9503a7f30419322 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d105de22fc385da878e8db44c9503a7f30419322
Fix use-after-free in gdbserver
-fsanitize=address pointed out a use-after-free in gdbserver. In
particular, handle_detach could reference "process" after it was
deleted by detach_inferior. Avoiding this also necessitated changing
target_ops::join to take a pid rather than a process_info*.
Tested by the buildbot using a few of the gdbserver builders.
gdb/gdbserver/ChangeLog
2018-11-29 Tom Tromey <tom@tromey.com>
* win32-low.c (win32_join): Take pid, not process.
* target.h (struct target_ops) <join>: Change argument type.
(join_inferior): Change argument name.
* spu-low.c (spu_join): Take pid, not process.
* server.c (handle_detach): Preserve pid before destroying
process.
* lynx-low.c (lynx_join): Take pid, not process.
* linux-low.c (linux_join): Take pid, not process.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Add missing c.unimp instruction.
@ 2018-11-29 21:41 sergiodj+buildbot
2018-11-29 22:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-29 21:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 12951a2f080abfd23d0aae0a9a5b2c322fd25c9e ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 12951a2f080abfd23d0aae0a9a5b2c322fd25c9e
RISC-V: Add missing c.unimp instruction.
opcodes/
* riscv-opc.c (unimp): Mark compressed unimp as INSN_ALIAS.
(c.unimp): New.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Implement the "gdb_signal_to/from_target" gdbarch methods for FreeBSD.
@ 2018-11-29 22:18 sergiodj+buildbot
2018-11-30 0:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-29 22:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e61667ef1413b9fba1bb9dc78744329f8215de74 ***
Author: Rajendra SY <rajendra.sy@gmail.com>
Branch: master
Commit: e61667ef1413b9fba1bb9dc78744329f8215de74
Implement the "gdb_signal_to/from_target" gdbarch methods for FreeBSD.
This fixes failures in the gdb.base/exitsignal.exp test.
gdb/ChangeLog:
PR gdb/23093
* gdb/fbsd-tdep.c (fbsd_gdb_signal_from_target)
(fbsd_gdb_signal_to_target): New.
(fbsd_init_abi): Install gdbarch "signal_from_target" and
"signal_to_target" methods.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove an abort in the bfd library and add a check for an integer overflow when mapping sections to segments.
@ 2018-11-30 12:13 sergiodj+buildbot
2018-11-30 13:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 12:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT beab453223769279cc1cef68a1622ab8978641f7 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: beab453223769279cc1cef68a1622ab8978641f7
Remove an abort in the bfd library and add a check for an integer overflow when mapping sections to segments.
PR 23932
* elf.c (IS_CONTAINED_BY_LMA): Add a check for a negative section
size.
(rewrite_elf_program_header): If no sections are mapped into a
segment return an error.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix a memory exhaustion bug when attempting to allocate room for an impossible number of program headers.
@ 2018-11-30 12:21 sergiodj+buildbot
2018-11-30 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 12:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5f60af5d24d181371d67534fa273dd221df20c07 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 5f60af5d24d181371d67534fa273dd221df20c07
Fix a memory exhaustion bug when attempting to allocate room for an impossible number of program headers.
* elfcode.h (elf_object_p): Check for corrupt input files with
more program headers than can actually fit in the file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Move test_target_ops to a separate file
@ 2018-11-30 16:37 sergiodj+buildbot
2018-11-30 17:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 16:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c180496d2ac268c06c13600f729d02ca4266e6ea ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: c180496d2ac268c06c13600f729d02ca4266e6ea
Move test_target_ops to a separate file
There's no need to have all target.h users seeing this type.
Also helps with a follow up patch.
gdb/ChangeLog:
2018-11-30 Pedro Alves <palves@redhat.com>
* Makefile.in (COMMON_SFILES): Add test-target.c.
* gdbarch-selftests.c: Include "test-target.h".
* regcache.c: Include "test-target.h".
* target.c (test_target_info, test_target_ops::info): Move to ...
* test-target.c: ... this new file.
* target.h (test_target_ops): Move to ...
* test-target.h: ... this new file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert default_child_has_foo functions to process_stratum_target methods
@ 2018-11-30 17:25 sergiodj+buildbot
2018-11-30 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 17:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f3d11a9a96465432c01678445fc2fe84f2ef94f7 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: f3d11a9a96465432c01678445fc2fe84f2ef94f7
Convert default_child_has_foo functions to process_stratum_target methods
This patch converts the default_child_has_foo functions to
process_stratum_target methods. This simplifies "regular"
non-inf_child process_stratum targets, since they no longer have to
override the target_ops::has_foo methods to call the default_child_foo
functions. A couple targets need to override the new defaults
(corelow and tracefiles), but it still seems like a good tradeoff,
since those are expected to be little different (target doesn't run).
gdb/ChangeLog:
2018-11-30 Pedro Alves <palves@redhat.com>
* corelow.c (core_target) <has_all_memory, has_execution>: New
overrides.
* inf-child.c (inf_child_target::has_all_memory)
(inf_child_target::has_memory, inf_child_target::has_stack)
(inf_child_target::has_registers)
(inf_child_target::has_execution): Delete.
* inf-child.h (inf_child_target) <has_all_memory, has_memory,
has_stack, has_registers, has_execution>: Delete.
* process-stratum-target.c
(process_stratum_target::has_all_memory)
(process_stratum_target::has_memory)
(process_stratum_target::has_stack)
(process_stratum_target::has_registers)
(process_stratum_target::has_execution): New.
* process-stratum-target.h (process_stratum_target)
<has_all_memory, has_memory, has_stack, has_registers,
has_execution>: New method overrides.
* ravenscar-thread.c (ravenscar_thread_target) <has_all_memory,
has_memory, has_stack, has_registers, has_execution>: Delete.
* remote-sim.c (gdbsim_target) <has_stack, has_registers,
has_execution>: Delete.
* remote.c (remote_target) <has_all_memory, has_memory, has_stack,
has_registers, has_execution>: Delete.
* target.c (default_child_has_all_memory)
(default_child_has_memory, default_child_has_stack)
(default_child_has_registers, default_child_has_execution):
Delete.
* target.h (default_child_has_all_memory)
(default_child_has_memory, default_child_has_stack)
(default_child_has_registers, default_child_has_execution):
Delete.
* tracefile.h (tracefile_target) <has_execution>: New override.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] target_ops::to_stratum -> target_ops::stratum() virtual method
@ 2018-11-30 18:06 sergiodj+buildbot
2018-11-30 22:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 18:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66b4deae03e7a503f8c543aa198a8c010863135a ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 66b4deae03e7a503f8c543aa198a8c010863135a
target_ops::to_stratum -> target_ops::stratum() virtual method
Given that a target's stratum is a property of the type, and not of an
instance of the type, get rid of to_stratum data field and replace it
with a virtual method.
I.e., when we have e.g., 10 target remote instances active, there's no
need for each of the instances to have their own to_stratum copy.
gdb/ChangeLog:
2018-11-30 Pedro Alves <palves@redhat.com>
* aix-thread.c (aix_thread_target) <aix_thread_target>: Delete.
<stratum>: New override.
* bfd-target.c (aix_thread_target) <aix_thread_target>: Delete.
<stratum>: New override.
* bsd-uthread.c (bsd_uthread_target) <bsd_uthread_target>: Delete.
<stratum>: New override.
* exec.c (exec_target) <exec_target>: Delete.
<stratum>: New override.
* gdbarch-selftests.c (register_to_value_test): Adjust to use the
stratum method instead of the to_stratum field.
* linux-thread-db.c (thread_db_target) <thread_db_target>: Delete.
<stratum>: New override.
(thread_db_target::thread_db_target): Delete.
* make-target-delegates (print_class): Don't print a ctor
declaration. Print a stratum method override declaration.
* process-stratum-target.h (process_stratum_target)
<process_stratum_target>: Delete.
<stratum>: New override.
* ravenscar-thread.c (ravenscar_thread_target)
<ravenscar_thread_target>: Delete.
<stratum>: New override.
* record-btrace.c (record_btrace_target)
<record_btrace_target>: Delete.
<stratum>: New override.
* record-full.c (record_full_base_target)
<record_full_base_target>: Delete.
<stratum>: New override.
* record.c (record_disconnect, record_detach)
(record_mourn_inferior, record_kill): Adjust to use the stratum
method instead of the to_stratum field.
* regcache.c (cooked_read_test, cooked_write_test): Likewise.
* sol-thread.c (sol_thread_target)
<sol_thread_target>: Delete.
<stratum>: New override.
* spu-multiarch.c (spu_multiarch_target)
<spu_multiarch_target>: Delete.
<stratum>: New override.
* target-delegates.c: Regenerate.
* target.c (target_stack::push, target_stack::unpush)
(pop_all_targets_above, pop_all_targets_at_and_above)
(info_target_command, target_require_runnable)
(target_stack::find_beneath): Adjust to use the stratum method
instead of the to_stratum field.
(dummy_target::dummy_target): Delete.
(dummy_target::stratum): New.
(debug_target::debug_target): Delete.
(debug_target::stratum): New.
(maintenance_print_target_stack): Adjust to use the stratum method
instead of the to_stratum field.
* target.h (struct target_ops) <stratum>: New method.
<to_stratum>: Delete.
<is_pushed>: Adjust to use the stratum method
instead of the to_stratum field.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Make some target description functions constant
@ 2018-11-30 18:26 sergiodj+buildbot
2018-12-01 1:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 18:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0ff80bf7b9901b5e3c6805b99d30fd555f512d69 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0ff80bf7b9901b5e3c6805b99d30fd555f512d69
gdb/riscv: Make some target description functions constant
Makes more of the interface related to fetching target descriptions
constant.
gdb/ChangeLog:
* arch/riscv.h (riscv_create_target_description): Make return type
const.
* arch/riscv.c (riscv_create_target_description): Likewise.
* riscv-tdep.c (riscv_find_default_target_description): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Add equality operators to riscv_gdb_features
@ 2018-11-30 18:29 sergiodj+buildbot
2018-12-01 2:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 18:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 65a4b373267813ae5e47ac519da2e70d9c7e09d3 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 65a4b373267813ae5e47ac519da2e70d9c7e09d3
gdb/riscv: Add equality operators to riscv_gdb_features
Add '==' and '!=' operators for the struct riscv_gdb_features,
allowing a small simplification.
gdb/ChangeLog:
* arch/riscv.h (riscv_gdb_features::operator==): New.
(riscv_gdb_features::operator!=): New.
* riscv-tdep.c (riscv_gdbarch_init): Make use of the inequality
operator.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Create each unique target description only once
@ 2018-11-30 19:00 sergiodj+buildbot
2018-12-01 3:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 19:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 634494366c515a89c4747d8a68a8da9218bb4969 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 634494366c515a89c4747d8a68a8da9218bb4969
gdb/riscv: Create each unique target description only once
GDB relies on the fact that if two target descriptions have the same
contents, then they will be the same object instance (having the same
address). One place where this is a requirement is in
GDBARCH_LIST_LOOKUP_BY_INFO which is used to find previously created
gdbarch objects.
In GDBARCH_LIST_LOOKUP_BY_INFO a pointer comparison is made on the
gdbarch's target description, if the pointers are different then it is
assumed the gdbarches have different, non-compatible target
descriptions.
Previously we would create duplicate target descriptions in the belief
that RISCV_GDBARCH_INIT would spot this duplication and discard the
second instance. However, this was incorrect, and instead we ended up
creating duplicate gdbarch objects.
With this commit every unique feature set will create one and only one
target description, the feature set and resulting target description
is then cached so that the same target description object can be
returned later.
Many other target avoid this problem by creating a small number of
named target descriptions, and returning one of these. However, we
currently have 8 possible target descriptions (32 vs 64 bit for x-reg
and f-reg, and h/w or s/w float abi) and creating each of these just
to avoid a dynamic cache seems pointless.
gdb/ChangeLog:
* arch/riscv.h (riscv_gdbarch_features::hash): New method.
* arch/riscv.c (struct riscv_gdbarch_features_hasher): New.
(riscv_tdesc_cache): New global.
(riscv_create_target_description): Look in the cache before
creating a new target description.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Update the conditionals in fbsd-nat.h so they are always honored.
@ 2018-11-30 22:02 sergiodj+buildbot
2018-12-01 6:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 22:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f8eb6a9e8986c6428de629b5538e431e1c04caf1 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: f8eb6a9e8986c6428de629b5538e431e1c04caf1
Update the conditionals in fbsd-nat.h so they are always honored.
Not all of the architecture-specific FreeBSD target files were
including the right headers to enable conditionals in fbsd-nat.h after
the C++ target conversion. As a result, certain operations like 'info
auxv' and 'p $_siginfo' were not working for some native targets
(noticed on RISC-V). Fix this in a couple of ways:
1) Declare fbsd_nat_target::xfer_partial unconditionally and only use
conditionals in the function body for individual target objects.
Originally this function was only used to read the ELF auxiliary
vector, so the entire function was conditional on a macro required
for that object (KERN_AUXV_PROC). However, xfer_partial has since
grown support for additional objects. Making the function
unconditional avoids needing to add the right header to fbsd-nat.h
and allows each target object to use independent requirements.
This did require using a more explicit conditional test for the
$_siginfo support. Removing the "outer" KERN_PROC_AUXV test
enabled $_siginfo for all kernels with PT_LWPINFO, but some older
kernels (FreeBSD 6.0) exposed PT_LWPINFO with a different siginfo
format. Instead use an explicit test for when the current siginfo
format was adopted (shipped in FreeBSD 7.0). This actually enables
$_siginfo on a wider range of kernels as KERN_PROC_AUXV wasn't
introduced until FreeBSD 9.1/10.0.
2) Include <sys/proc.h> in fbsd-nat.h for the definition of
TDP_RFPPWAIT that governs support for fork following.
gdb/ChangeLog:
* fbsd-nat.c [__FreeBSD_version >= 700009] (USE_SIGINFO): Macro
defined.
(union sigval32, struct siginfo32, fbsd_siginfo_size)
(fbsd_convert_siginfo): Make conditional on USE_SIGINFO instead
of KERN_PROC_AUXV and PT_LWPINFO.
(fbsd_nat_target::xfer_partial): Define method unconditionally.
Make TARGET_OBJECT_SIGNAL_INFO conditional on USE_SIGINFO.
Make TARGET_OBJECT_AUXV conditional on KERN_PROC_AUXV.
Make TARGET_OBJECT_FREEBSD_VMMAP and
TARGET_OBJECT_FREEBSD_PS_STRINGS conditional on KERN_PROC_VMMAP
and KERN_PROC_PS_STRINGS.
* fbsd-nat.h: Include <sys/proc.h>.
(fbsd_nat_target::xfer_partial): Declare method unconditionally.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix leak in linespec parser
@ 2018-11-30 22:26 sergiodj+buildbot
2018-12-01 7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 22:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4717cec4fe4cb3a086fb13161603112e8ded787e ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 4717cec4fe4cb3a086fb13161603112e8ded787e
Fix leak in linespec parser
Valgrind reports this leak:
==798== VALGRIND_GDB_ERROR_BEGIN
==798== 32 (24 direct, 8 indirect) bytes in 1 blocks are definitely lost in loss record 447 of 3,143
==798== at 0x4C2C48C: operator new(unsigned long) (vg_replace_malloc.c:334)
==798== by 0x51D401: linespec_parser_new(ls_parser*, int, language_defn const*, program_space*, symtab*, int, linespec_result*) (linespec.c:2756)
==798== by 0x524BF7: decode_line_full(event_location const*, int, program_space*, symtab*, int, linespec_result*, char const*, char const*) (linespec.c:3271)
==798== by 0x3E8893: parse_breakpoint_sals(event_location const*, linespec_result*) (breakpoint.c:9067)
==798== by 0x3E4E7F: 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) (breakpoint.c:9248)
==798== by 0x3E55F5: break_command_1(char const*, int, int) (breakpoint.c:9434)
==798== by 0x40BA68: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1888)
==798== by 0x665300: execute_command(char const*, int) (top.c:630)
...
linespec_parser_new allocates a std::vector<symtab *> at line 2756, and stores
the pointer to this vector in PARSER_RESULT (parser)->file_symtabs. At 3
different places in linespec.c, another std::vector is assigned to a
linespec->file_symtabs, without first deleting the current value.
The leak is fixed by assigning the vector itself instead of the pointer.
Everything should be moved, so there is no significant data copy
involved.
Tested on debian/amd64, + a bunch of tests re-run under valgrind
(including the test that throws an error).
gdb/ChangeLog:
* linespec.c (symtab_vector_up): Remove.
(symtabs_from_filename): Change return type to std::vector.
(collect_symtabs_from_filename): Likewise.
(create_sals_line_offset): Assign return value of
collect_symtabs_from_filename to *ls->file_symtabs.
(convert_explicit_location_to_linespec): Remove call to release.
(parse_linespec): Likewise.
(symtab_collector) <symtab_collector>: Remove initialization of
m_symtabs.
<release_symtabs>: Change return type to std::vector<symtab *>.
<operator ()>: Adjust.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use kinfo_getfile to implement fdwalk on FreeBSD.
@ 2018-11-30 23:52 sergiodj+buildbot
2018-12-01 8:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-11-30 23:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 93579f6f908fa6010b141fd5da2974d878869c80 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 93579f6f908fa6010b141fd5da2974d878869c80
Use kinfo_getfile to implement fdwalk on FreeBSD.
kinfo_getfile() requires a couple of system calls to fetch the list of
open file descriptors. This can be much cheaper than invoking fstat
on all of the values from 0 to the open file resource limit maximum.
gdb/ChangeLog:
* common/filestuff.c [HAVE_KINFO_GETFILE]: Include headers.
(fdwalk) [HAVE_KINFO_GETFILE]: Use kinfo_getfile.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] x86: Delay setting the iplt section alignment
@ 2018-12-01 17:05 sergiodj+buildbot
2018-12-03 18:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-01 17:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b44ee3a8cf21294eeb079ffbada7eeb559a9c6b4 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: b44ee3a8cf21294eeb079ffbada7eeb559a9c6b4
x86: Delay setting the iplt section alignment
Delay setting its alignment until we know it is non-empty. Otherwise an
empty iplt section may change vma and lma of the following sections, which
triggers moving dot of the following section backwards, resulting in a
warning and section lma not being set properly. It later leads to a
"File truncated" error.
bfd/
PR ld/23930
* elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Update
the iplt section alignment if it is non-empty.
(_bfd_x86_elf_link_setup_gnu_properties): Set plt.iplt_alignment
and delay setting the iplt section alignment.
* elfxx-x86.h (elf_x86_plt_layout): Add iplt_alignment.
ld/
PR ld/23930
* testsuite/ld-i386/i386.exp: Run pr23930.
* testsuite/ld-i386/pr23930.d: New file.
* testsuite/ld-x86-64/pr23930-32.t: Likewise.
* testsuite/ld-x86-64/pr23930-x32.d: Likewise.
* testsuite/ld-x86-64/pr23930.d: Likewise.
* testsuite/ld-x86-64/pr23930.t: Likewise.
* testsuite/ld-x86-64/pr23930a.s: Likewise.
* testsuite/ld-x86-64/pr23930b.s: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run pr23930 and pr23930-x32.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Accept version, supervisor ext and more than one NSE for -march.
@ 2018-12-03 23:16 sergiodj+buildbot
2018-12-03 23:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-03 23:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1080bf78c05b220f5f4bbc5c50d6a0ef6490d738 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 1080bf78c05b220f5f4bbc5c50d6a0ef6490d738
RISC-V: Accept version, supervisor ext and more than one NSE for -march.
This patch moves all -march parsing logic into bfd, because we will use this
code in ELF attributes.
bfd/
* elfxx-riscv.h (RISCV_DONT_CARE_VERSION): New macro.
(struct riscv_subset_t): New structure.
(riscv_subset_t): New typedef.
(riscv_subset_list_t): New structure.
(riscv_release_subset_list): New prototype.
(riscv_add_subset): Likewise.
(riscv_lookup_subset): Likewise.
(riscv_lookup_subset_version): Likewise.
(riscv_release_subset_list): Likewise.
* elfxx-riscv.c: Include safe-ctype.h.
(riscv_parsing_subset_version): New function.
(riscv_supported_std_ext): Likewise.
(riscv_parse_std_ext): Likewise.
(riscv_parse_sv_or_non_std_ext): Likewise.
(riscv_parse_subset): Likewise.
(riscv_add_subset): Likewise.
(riscv_lookup_subset): Likewise.
(riscv_lookup_subset_version): Likewise.
(riscv_release_subset_list): Likewise.
gas/
* config/tc-riscv.c: Include elfxx-riscv.h.
(struct riscv_subset): Removed.
(riscv_subsets): Change type to riscv_subset_list_t.
(riscv_subset_supports): Removed argument: xlen_required and move
logic into libbfd.
(riscv_multi_subset_supports): Removed argument: xlen_required.
(riscv_clear_subsets): Removed.
(riscv_add_subset): Ditto.
(riscv_set_arch): Extract parsing logic into libbfd.
(riscv_ip): Update argument for riscv_multi_subset_supports and
riscv_subset_supports. Update riscv_subsets due to struct definition
changed.
(riscv_after_parse_args): Update riscv_subsets due to struct
definition changed, update and argument for riscv_subset_supports.
* testsuite/gas/riscv/empty.s: New.
* testsuite/gas/riscv/march-fail-rv32ef.d: Likewise.
* testsuite/gas/riscv/march-fail-rv32ef.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32i.d: Likewise.
* testsuite/gas/riscv/march-fail-rv32i.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32iam.d: Likewise.
* testsuite/gas/riscv/march-fail-rv32iam.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32ic.d: Likewise.
* testsuite/gas/riscv/march-fail-rv32ic.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32icx2p.d: Likewise.
* testsuite/gas/riscv/march-fail-rv32icx2p.l: Likewise.
* testsuite/gas/riscv/march-fail-rv32imc.d: Likewise.
* testsuite/gas/riscv/march-fail-rv32imc.l: Likewise.
* testsuite/gas/riscv/march-fail-rv64I.d: Likewise.
* testsuite/gas/riscv/march-fail-rv64I.l: Likewise.
* testsuite/gas/riscv/march-fail-rv64e.d: Likewise.
* testsuite/gas/riscv/march-fail-rv64e.l: Likewise.
* testsuite/gas/riscv/march-ok-g2.d: Likewise.
* testsuite/gas/riscv/march-ok-g2p0.d: Likewise.
* testsuite/gas/riscv/march-ok-i2p0.d: Likewise.
* testsuite/gas/riscv/march-ok-nse-with-version.: Likewise.d
* testsuite/gas/riscv/march-ok-s-with-version.d: Likewise.
* testsuite/gas/riscv/march-ok-s.d: Likewise.
* testsuite/gas/riscv/march-ok-sx.d: Likewise.
* testsuite/gas/riscv/march-ok-two-nse.d: Likewise.
* testsuite/gas/riscv/march-ok-g2_p1.d: Likewise.
* testsuite/gas/riscv/march-ok-i2p0m2_a2f2.d: Likewise.
include/
* opcode/riscv.h (riscv_opcode): Change type of xlen_requirement to
unsigned.
opcodes/
* riscv-opc.c: Change the type of xlen, because type of
xlen_requirement changed.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [aarch64] Add support for pointer authentication B key
@ 2018-12-05 19:40 sergiodj+buildbot
2018-12-05 22:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-05 19:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3a67e1a6b4430374f3073e51bb19347d4c421cfe ***
Author: Sam Tebbs <sam.tebbs@arm.com>
Branch: master
Commit: 3a67e1a6b4430374f3073e51bb19347d4c421cfe
[aarch64] Add support for pointer authentication B key
Armv8.3-A has another key used in pointer authentication called the
B-key (other than the A-key that is already supported). In order for
stack unwinders to work it is necessary to be able to identify frames
that have been signed with the B-key rather than the A-key and it was
felt that keeping this as an augmentation character in the CIE was the
best bet. The DWARF extensions for ARM therefore propose to add a new
augmentation character 'B' to the CIE augmentation string and the
corresponding cfi directive ".cfi_b_key_frame". I've made the relevant
changes to GAS and LD to add support for B-key unwinding, which required
modifying LD to check for 'B' in the augmentation string, adding the
".cfi_b_key_frame" directive to GAS and adding a "pauth_key" field to
GAS's fde_entry and cie_entry structs.
The pointer authentication instructions will behave as NOPs on
architectures that don't support them, and so a check for the
architecture being assembled for is not necessary since there will be no
behavioural difference between augmentation strings with and without the
'B' character on such architectures.
2018-12-05 Sam Tebbs <sam.tebbs@arm.com>
bfd/
* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Add check for 'B'.
gas/
* dw2gencfi.c (struct cie_entry): Add tc_cie_entry_extras invocation.
(alloc_fde_entry): Add tc_fde_entry_init_extra invocation.
(output_cie): Add tc_output_cie_extra invocation.
(select_cie_for_fde): Add tc_cie_fde_equivalent_extra and
tc_cie_entry_init_extra invocation.
(frch_cfi_data, cfa_save_data): Move to dwgencfi.h.
* config/tc-aarch64.c (s_aarch64_cfi_b_key_frame): Declare.
(md_pseudo_table): Add "cfi_b_key_frame".
* config/tc-aarch64.h (tc_fde_entry_extras, tc_cie_entry_extras,
tc_fde_entry_init_extra, tc_output_cie_extra,
tc_cie_fde_equivalent_extra, tc_cie_entry_init_extra): Define.
* dw2gencfi.h (struct fde_entry): Add tc_fde_entry_extras invocation.
(pointer_auth_key): Define.
(frch_cfi_data, cfa_save_data): Move from dwgencfi.c.
* doc/c-aarch64.texi (.cfi_b_key_frame): Add documentation.
* testsuite/gas/aarch64/(pac_ab_key.d, pac_ab_key.s): New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] opcodes/riscv: Hide '.L0 ' fake symbols
@ 2018-12-06 10:52 sergiodj+buildbot
2018-12-06 11:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-06 10:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 884b49e3a91504b9c5528343823d67f4419b73bb ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 884b49e3a91504b9c5528343823d67f4419b73bb
opcodes/riscv: Hide '.L0 ' fake symbols
The RISC-V assembler generates fake labels with the name '.L0 ' as
part of the debug information (see
gas/config/tc-riscv.h:FAKE_LABEL_NAME).
The problem is that currently, when disassembling an object file, the
output looks like this (this is an example from the GDB testsuite, but
is pretty representative of anything with debug information):
000000000000001e <main>:
1e: 7179 addi sp,sp,-48
20: f406 sd ra,40(sp)
22: f022 sd s0,32(sp)
24: 1800 addi s0,sp,48
0000000000000026 <.L0 >:
26: 87aa mv a5,a0
28: feb43023 sd a1,-32(s0)
2c: fcc43c23 sd a2,-40(s0)
30: fef42623 sw a5,-20(s0)
0000000000000034 <.L0 >:
34: fec42783 lw a5,-20(s0)
38: 0007871b sext.w a4,a5
3c: 678d lui a5,0x3
3e: 03978793 addi a5,a5,57 # 3039 <.LASF30+0x2a9d>
42: 02f71463 bne a4,a5,6a <.L0 >
0000000000000046 <.L0 >:
46: 000007b7 lui a5,0x0
4a: 0007b783 ld a5,0(a5) # 0 <need_malloc>
4e: 6f9c ld a5,24(a5)
0000000000000050 <.L0 >:
50: 86be mv a3,a5
52: 466d li a2,27
54: 4585 li a1,1
56: 000007b7 lui a5,0x0
5a: 00078513 mv a0,a5
5e: 00000097 auipc ra,0x0
62: 000080e7 jalr ra # 5e <.L0 +0xe>
0000000000000066 <.L0 >:
66: 4785 li a5,1
68: a869 j 102 <.L0 >
000000000000006a <.L0 >:
6a: 000007b7 lui a5,0x0
6e: 00078513 mv a0,a5
72: 00000097 auipc ra,0x0
76: 000080e7 jalr ra # 72 <.L0 +0x8>
The frequent repeated '.L0 ' labels are pointless, as they are
non-unique there's no way to match a use of '.L0 ' to its appearence
in the output, so we'd be better off just not printing it at all.
That's what this patch does by defining a 'symbol_is_valid' method for
RISC-V. With this commit, the same disassembly now looks like this:
000000000000001e <main>:
1e: 7179 addi sp,sp,-48
20: f406 sd ra,40(sp)
22: f022 sd s0,32(sp)
24: 1800 addi s0,sp,48
26: 87aa mv a5,a0
28: feb43023 sd a1,-32(s0)
2c: fcc43c23 sd a2,-40(s0)
30: fef42623 sw a5,-20(s0)
34: fec42783 lw a5,-20(s0)
38: 0007871b sext.w a4,a5
3c: 678d lui a5,0x3
3e: 03978793 addi a5,a5,57 # 3039 <.LASF30+0x2a9d>
42: 02f71463 bne a4,a5,6a <.L4>
46: 000007b7 lui a5,0x0
4a: 0007b783 ld a5,0(a5) # 0 <need_malloc>
4e: 6f9c ld a5,24(a5)
50: 86be mv a3,a5
52: 466d li a2,27
54: 4585 li a1,1
56: 000007b7 lui a5,0x0
5a: 00078513 mv a0,a5
5e: 00000097 auipc ra,0x0
62: 000080e7 jalr ra # 5e <main+0x40>
66: 4785 li a5,1
68: a869 j 102 <.L5>
000000000000006a <.L4>:
6a: 000007b7 lui a5,0x0
6e: 00078513 mv a0,a5
72: 00000097 auipc ra,0x0
76: 000080e7 jalr ra # 72 <.L4+0x8>
In order to share the fake label between the assembler and the
libopcodes library, I've added some new defines RISCV_FAKE_LABEL_NAME
and RISCV_FAKE_LABEL_CHAR in include/opcode/riscv.h. I could have
just moved FAKE_LABEL_NAME to the include file, however, I thnk this
would be confusing, someone working on the assembler would likely not
expect to find FAKE_LABEL_NAME defined outside of the assembler source
tree. By introducing the RISCV_FAKE_LABEL_* defines I can leave the
assembler standard FAKE_LABEL_ defines in the assembler source, but
still share the RISCV_FAKE_LABEL_* with libopcodes.
gas/ChangeLog:
* config/tc-riscv.h (FAKE_LABEL_NAME): Define as
RISCV_FAKE_LABEL_NAME.
(FAKE_LABEL_CHAR): Define as RISCV_FAKE_LABEL_CHAR.
include/ChangeLog:
* dis-asm.h (riscv_symbol_is_valid): Declare.
* opcode/riscv.h (RISCV_FAKE_LABEL_NAME): Define.
(RISCV_FAKE_LABEL_CHAR): Define.
opcodes/ChangeLog:
* disassembler.c (disassemble_init_for_target): Add RISC-V
initialisation.
* riscv-dis.c (riscv_symbol_is_valid): New function.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] sim/opcodes: Allow use of out of tree cgen source directory
@ 2018-12-06 12:57 sergiodj+buildbot
2018-12-06 13:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-06 12:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7fb45a689543be75809a0513900d82f5bd859338 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 7fb45a689543be75809a0513900d82f5bd859338
sim/opcodes: Allow use of out of tree cgen source directory
When configuring with '--enbale-cgen-maint' the default for both the
opcodes/ and sim/ directories is to assume that the cgen source is
within the binutils-gdb source tree as binutils-gdb/cgen/.
In the old cvs days, this worked well, as cgen was just another
sub-module of the single cvs repository and could easily be checked
out within the binutils-gdb directory, and managed by cvs in the
normal way.
Now that binutils-gdb is in git, while cgen is still in cvs, placing
the cgen respository within the binutils-gdb tree is more troublesome,
and it would be nice if the two tools could be kept separate.
Luckily there is already some initial code in the configure.ac files
for both opcodes/ and sim/ to support having cgen be located outside
of the binutils-gdb tree, however, this was speculative code written
imagining a future where cgen would be built and installed to some
location.
Right now there is no install support for cgen, and so the configure
code in opcodes/ and sim/ doesn't really do anything useful. In this
commit I repurpose this code to allow binutils-gdb to be configured so
that it can make use of a cgen source directory that is outside of the
binutils-gdb tree.
With this commit applied it is now possible to configure and build
binutils-gdb like this:
/path/to/binutils-gdb/src/configure --enable-cgen-maint=/path/to/cgen/src/cgen/
make all-opcodes
make -C opcodes run-cgen-all
Just in case anyone is still using cgen inside the binutils-gdb tree,
I have left the default behaviour of '--enable-cgen-maint' (with no
parameter) unchanged, that is it looks for the cgen directory as
'binutils-gdb/cgen/'.
opcodes/ChangeLog:
* configure.ac (enable-cgen-maint): Support passing path to cgen
source tree.
* configure: Regenerate.
sim/ChangeLog:
* common/acinclude.m4 (enable-cgen-maint): Support passing path to
cgen source tree.
* cris/configure: Regenerate.
* frv/configure: Regenerate.
* iq2000/configure: Regenerate.
* lm32/configure: Regenerate.
* m32r/configure: Regenerate.
* or1k/configure: Regenerate.
* sh64/configure: Regenerate.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] sim/cris: Fix references to cgen cpu directory
@ 2018-12-06 13:02 sergiodj+buildbot
2018-12-06 15:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-06 13:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 23ebf37881dda7fcf9dd86125705a30b6e2084ce ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 23ebf37881dda7fcf9dd86125705a30b6e2084ce
sim/cris: Fix references to cgen cpu directory
Don't assume that cgen is located within the binutils-gdb tree. We
already have CGEN_CPU_DIR and CPU_DIR defined, these are the cpu/
directory within cgen, and the cpu/ directory within binutils-cpu.
The cris target tries to find CPU_DIR relative to the cgen source
tree, which can be wrong when building with an out of tree cgen.
sim/cris/ChangeLog:
* Makefile.in: Replace uses of CGEN_CPU_DIR with CPU_DIR, and
remove the definition of CGEN_CPU_DIR.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR23952, memory leak in _bfd_generic_read_minisymbols
@ 2018-12-07 14:46 sergiodj+buildbot
2018-12-07 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 14:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c2f5dc30afa34696f2da0081c4ac50b958ecb0e9 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c2f5dc30afa34696f2da0081c4ac50b958ecb0e9
PR23952, memory leak in _bfd_generic_read_minisymbols
bfd/
PR 23952
* syms.c (_bfd_generic_read_minisymbols): Free syms before
returning with zero symcount.
binutils/
* nm.c (display_rel_file): Use xrealloc to increase minisyms
for synthetic symbols.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix a (one shot small) leak in language.c
@ 2018-12-07 16:37 sergiodj+buildbot
2018-12-07 17:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 16:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4a8110007bf58be329f108374e00ef8ddc1fe3ec ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 4a8110007bf58be329f108374e00ef8ddc1fe3ec
Fix a (one shot small) leak in language.c
Valgrind detects the following leak:
==28395== VALGRIND_GDB_ERROR_BEGIN
==28395== 5 bytes in 1 blocks are definitely lost in loss record 20 of 2,770
==28395== at 0x4C2BE2D: malloc (vg_replace_malloc.c:299)
==28395== by 0x41D9E7: xmalloc (common-utils.c:44)
==28395== by 0x78BF39: xstrdup (xstrdup.c:34)
==28395== by 0x51F1AC: _initialize_language() (language.c:1175)
==28395== by 0x6B3356: initialize_all_files() (init.c:308)
==28395== by 0x66D194: gdb_init(char*) (top.c:2159)
==28395== by 0x554C11: captured_main_1 (main.c:863)
==28395== by 0x554C11: captured_main (main.c:1167)
==28395== by 0x554C11: gdb_main(captured_main_args*) (main.c:1193)
==28395== by 0x29D837: main (gdb.c:32)
==28395==
==28395== VALGRIND_GDB_ERROR_END
This is a very small leak (1 block/5 bytes), happening only once
per GDB startup as far as I can see. But this fix make the nr of leaking
GDB in the testsuite decreasing from 628 to 566.
It is unclear why a xstrdup-ed value is assigned to 'language'
at initialization time, while a static "auto" string is assigned
as part of the set_language_command.
So, that shows that it is ok to initialize 'language' directly
with "auto".
Also, I cannot find any place where 'language' is xfree-d.
No leak was detected for 'range' and 'case_sensitive', but
similarly, no indication why a static string cannot be assigned.
Regression-tested on debian/x86_64.
Also, full testsuite run under valgrind, less tests leaking,
and no dangling pointer problem detected.
gdb/ChangeLog
2018-12-05 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* language.c (_initialize_language): Fix leak by assigning
a static string to language. Same for range and case_sensitive,
even if no leak is detected for these variables.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] elf: Report property change when merging properties
@ 2018-12-07 16:59 sergiodj+buildbot
2018-12-07 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 16:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d2ef37ebd9f771d06edf1fdea37970f60b242b2d ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: d2ef37ebd9f771d06edf1fdea37970f60b242b2d
elf: Report property change when merging properties
With merging properties, report property change in linker map file, like
Merging program properties
Removed property 0xc0010000 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (0x0) and /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o (0x0)
Removed property 0xc0000002 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (0x3) and x.o (not found)
Removed property 0xc0000000 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (not found) and /usr/lib64/libc_nonshared.a(elf-init.oS) (0x0)
Removed property 0xc0000001 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (not found) and /usr/lib64/libc_nonshared.a(elf-init.oS) (0x0)
bfd/
* elf-properties.c (elf_find_and_remove_property): Add a
bfd_boolean argument to indicate if the property should be
removed.
(elf_merge_gnu_property_list): Updated. Report
property change in linker map file.
(elf_get_gnu_property_section_size): Skip property_remove
properties.
(elf_write_gnu_properties): Likewise.
(_bfd_elf_link_setup_gnu_properties): Report property merge
in linker map file. Pass abfd to elf_merge_gnu_property_list.
include/
* bfdlink.h (bfd_link_info): Add has_map_file.
ld/
* NEWS: Updated for property change report.
* ld.texi: Document property change report.
* ldmain.c (main): Set link_info.has_map_file to TRUE when
linker map file is used.
* testsuite/ld-scripts/rgn-over1.d: Updated.
* testsuite/ld-scripts/rgn-over2.d: Likewise.
* testsuite/ld-scripts/rgn-over3.d: Likewise.
* testsuite/ld-scripts/rgn-over4.d: Likewise.
* testsuite/ld-scripts/rgn-over5.d: Likewise.
* testsuite/ld-scripts/rgn-over6.d: Likewise.
* testsuite/ld-scripts/rgn-over7.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt1a-x32.d: Check linker map
file.
* testsuite/ld-x86-64/property-x86-ibt1a.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt1a.map: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd
@ 2018-12-07 20:48 sergiodj+buildbot
2018-12-07 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 20:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8bebfcda34f2ea883fa6b87e748ad8a5f72b352f ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 8bebfcda34f2ea883fa6b87e748ad8a5f72b352f
Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd
Building for x86_64/-m32 with --enable-64-bit-bfd, compilation fails
with:
src/gdb/dwarf2read.c: In instantiation of gdb::array_view<const unsigned char> get_gdb_index_contents_from_section(objfile*, T*) [with T = dwarf2_per_objfile]:
src/gdb/dwarf2read.c:6266:54: required from here
src/gdb/dwarf2read.c:6192:37: error: narrowing conversion of section->dwarf2_section_info::size from bfd_size_type {aka long long unsigned int} to size_t {aka unsigned int} inside { } [-Werror=narrowing]
return {section->buffer, section->size};
~~~~~~~~~^~~~
This fixes it.
gdb/ChangeLog:
2018-12-07 Pedro Alves <palves@redhat.com>
* dwarf2read.c (get_gdb_index_contents_from_section): Use
gdb::make_array_view.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/or1k: Add linux debugging support
@ 2018-12-07 22:49 sergiodj+buildbot
2018-12-08 0:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 22:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 42e151bf4cc66b8781f2b139c6da320095f9a045 ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: 42e151bf4cc66b8781f2b139c6da320095f9a045
gdb/or1k: Add linux debugging support
Up until now OpenRISC GDB only has supported bare metal debugging. This
patch adds linux userspace debugging and core dump analysis support.
The changes are loosely based on nios2 and riscv implementations.
This was tested with linux 4.20 core dumps for executables linked
against musl libc.
bfd/ChangeLog:
* elf32-or1k.c (or1k_grok_prstatus): New function.
(or1k_grok_psinfo): Likewise.
gdb/ChangeLog:
* Makefile.in (ALL_TARGET_OBS): Add or1k-linux-tdep.o.
* configure.tgt: Add or1k*-*-linux*.
* or1k-linux-tdep.c: New file.
* or1k-tdep.c (or1k_gdbarch_init): Call gdbarch_init_osabi.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/emacs/dir-locals: Update settings for c++-mode
@ 2018-12-08 0:24 sergiodj+buildbot
2018-12-08 1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-08 0:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d9c859da9fff9de47a33f52d75a6fef2495b3fc1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: d9c859da9fff9de47a33f52d75a6fef2495b3fc1
gdb/emacs/dir-locals: Update settings for c++-mode
The current .dir-locals file for GDB causes files that would usually
open in c-mode (for example, files ending in .c) to open in c++-mode.
However, all of the other settings applied for c-mode appear to get
reset when the file is switched over to c++-mode.
For example, we currently say:
(c-mode . ((c-file-style . "GNU")
(mode . c++)
(indent-tabs-mode . t)
(tab-width . 8)
(c-basic-offset . 2)
(eval . (c-set-offset 'innamespace 0))
))
(c++-mode . ((eval . (when (fboundp 'c-toggle-comment-style)
(c-toggle-comment-style 1)))))
So, when we enter c++-mode `indent-tabs-mode` is reset to its global
value, as are all of the other settings listed for c-mode.
This commit copies all of the settings (except the `mode` setting)
from the c-mode list to the c++-mode list.
The emacs documentation doesn't mention that `mode` causes this
resetting behaviour, so, in case this is an emacs bug, I'm using emacs
version 26.1. Having the settings duplicated shouldn't cause any
problems except for a slight maintenance overhead.
gdb/ChangeLog:
* .dir-locals.el: Copy most of the settings from c-mode over to
c++-mode.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Merge forward-search/reverse-search, use gdb::def_vector, remove limit
@ 2018-12-08 16:16 sergiodj+buildbot
2018-12-08 16:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-08 16:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 73e8dc90a8a94bc52e29596b1cc176b882fbbc8e ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 73e8dc90a8a94bc52e29596b1cc176b882fbbc8e
Merge forward-search/reverse-search, use gdb::def_vector, remove limit
Back in:
commit 85ae1317add94adef4817927e89cff80b92813dd
Author: Stan Shebs <shebs@codesourcery.com>
AuthorDate: Thu Dec 8 02:27:47 1994 +0000
* source.c: Various cosmetic changes.
(forward_search_command): Handle very long source lines correctly.
a buffer with a hard limit was converted to a heap buffer:
@@ -1228,15 +1284,26 @@ forward_search_command (regex, from_tty)
stream = fdopen (desc, FOPEN_RT);
clearerr (stream);
while (1) {
-/* FIXME!!! We walk right off the end of buf if we get a long line!!! */
- char buf[4096]; /* Should be reasonable??? */
- register char *p = buf;
+ static char *buf = NULL;
+ register char *p;
+ int cursize, newsize;
+
+ cursize = 256;
+ buf = xmalloc (cursize);
+ p = buf;
However, reverse_search_command has the exact same problem, and that
wasn't fixed. We still have that "we walk right off" comment...
Recently, the xmalloc above was replaced with a xrealloc, because as
can be seen above, that 'buf' variable above was a static local,
otherwise we'd be leaking. This commit replaces that and the
associated manual buffer growing with a gdb::def_vector<char>. I
don't think there's much point in reusing the buffer across command
invocations.
While doing this, I realized that reverse_search_command is almost
identical to forward_search_command. So this commit factors out a
common helper function instead of duplicating a lot of code.
There are some tests for "forward-search" in gdb.base/list.exp, but
since they use the "search" alias, they were a bit harder to find than
expected. That's now fixed, both by testing both variants, and by
adding some commentary. Also, there are no tests for the
"reverse-search" command, so this commit adds some for that too.
gdb/ChangeLog:
2018-12-08 Pedro Alves <palves@redhat.com>
* source.c (forward_search_command): Rename to ...
(search_command_helper): ... this. Add 'forward' parameter.
Tweak to use a gdb::def_vector<char> instead of a xrealloc'ed
buffer. Handle backward searches too.
(forward_search_command, reverse_search_command): Reimplement by
calling search_command_helper.
gdb/testsuite/ChangeLog:
2018-12-08 Pedro Alves <palves@redhat.com>
* gdb.base/list.exp (test_forward_search): Rename to ...
(test_forward_reverse_search): ... this. Also test reverse-search
and the forward-search alias.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix leak by using td_ta_delete() to deregister target process and deallocate internal process handle.
@ 2018-12-08 17:30 sergiodj+buildbot
2018-12-08 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-08 17:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a2419b98d90e89acbef47dbc7a9047f4580fe99d ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: a2419b98d90e89acbef47dbc7a9047f4580fe99d
Fix leak by using td_ta_delete() to deregister target process and deallocate internal process handle.
Valgrind reports the below leak:
==25327== VALGRIND_GDB_ERROR_BEGIN
==25327== 672 bytes in 1 blocks are definitely lost in loss record 2,759 of 3,251
==25327== at 0x4C2E07C: calloc (vg_replace_malloc.c:752)
==25327== by 0x7FDCB3E: ???
==25327== by 0x532A7A: try_thread_db_load_1 (linux-thread-db.c:828)
==25327== by 0x532A7A: try_thread_db_load(char const*, int) (linux-thread-db.c:997)
==25327== by 0x53354D: try_thread_db_load_from_sdir (linux-thread-db.c:1074)
==25327== by 0x53354D: thread_db_load_search (linux-thread-db.c:1129)
==25327== by 0x53354D: thread_db_load() (linux-thread-db.c:1187)
==25327== by 0x611AF1: operator() (functional:2127)
==25327== by 0x611AF1: notify (observable.h:106)
==25327== by 0x611AF1: symbol_file_add_with_addrs(bfd*, char const*, enum_flags<symfile_add_flag>, std::vector<other_sections, std::allocator<other_sections> >*, enum_flags<objfile_flag>, objfile*) (symfile.c:1158)
==25327== by 0x5F5C4A: solib_read_symbols(so_list*, enum_flags<symfile_add_flag>) (solib.c:691)
==25327== by 0x5F6A8B: solib_add(char const*, int, int) (solib.c:1003)
==25327== by 0x5F6BF7: handle_solib_event() (solib.c:1281)
==25327== by 0x3D0A94: bpstat_stop_status(address_space const*, unsigned long, thread_info*, target_waitstatus const*, bpstats*) (breakpoint.c:5417)
==25327== by 0x4FF133: handle_signal_stop(execution_control_state*) (infrun.c:5874)
==25327== by 0x502C29: handle_inferior_event_1 (infrun.c:5300)
==25327== by 0x502C29: handle_inferior_event(execution_control_state*) (infrun.c:5335)
==25327== by 0x5041DB: fetch_inferior_event(void*) (infrun.c:3868)
==25327== by 0x4A1E7C: gdb_wait_for_event(int) (event-loop.c:859)
...
This leak is created because a call to td_ta_new allocates some resources
that must be freed with td_ta_delete, and that was missing.
With this patch, the nr of GDB executions leaking during regression tests
decreases further from 566 to 380.
Note that the gdbserver equivalent code is properly calling
td_ta_delete: see thread_db_mourn in thread-db.c.
Tests run natively on debian/amd64, and run under valgrind.
gdb/ChangeLog
2018-12-08 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* linux-thread-db.c (struct thread_db_info): Add td_ta_delete_p.
(thread_db_err_str): Forward declare.
(delete_thread_db_info): Call td_ta_delete_p if available.
(try_thread_db_load_1): Acquire td_ta_delete address.
* nat/gdb_thread_db.h (td_ta_delete_ftype): Declare.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix tid-reuse sometimes blocks for a very long (infinite?) time.
@ 2018-12-09 16:26 sergiodj+buildbot
2018-12-09 16:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-09 16:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7a81c1e2d44c6eb11b2ea24dc71ee959ab3a5acd ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 7a81c1e2d44c6eb11b2ea24dc71ee959ab3a5acd
Fix tid-reuse sometimes blocks for a very long (infinite?) time.
A failure that seems to cause a long/infinite time is the following:
For a not clear reason, tid-reuse.c spawner thread sometimes gets an error:
tid-reuse: /bd/home/philippe/gdb/git/build_moreaa/gdb/testsuite/../../../moreaa/gdb/testsuite/gdb.threads/tid-reuse.c:58: spawner_thread_func: Assertion `rc == 0' failed.
which causes a SIGABRT to be trapped by gdb, and tid-reuse does not reach the
after_count breakpoint:
Thread 2 "tid-reuse" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff7518700 (LWP 10368)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) FAIL: gdb.threads/tid-reuse.exp: continue to breakpoint: after_count
After that, tid-reuse.exp gets the value of reuse_time, but this one kept its
initial value of -1 (as unsigned) :
print reuse_time
$1 = 4294967295
(gdb) PASS: gdb.threads/tid-reuse.exp: get reuse_time
tid-reuse then dies, and the .exp script continues (with some FAIL)
till it executes:
set timeout [expr $reuse_time * 2]
leading to the error:
(gdb) ERROR: integer value too large to represent as non-long integer
while executing
"expect {
-i exp8 -timeout 8589934590
-re ".*A problem internal to GDB has been detected" {
fail "$message (GDB internal error)"
gdb_intern..."
("uplevel" body line 1)
invoked from within
"uplevel $body" ARITH IOVERFLOW {integer value too large to represent as non-long integer} integer value too large to represent as non-long integer
ERROR: GDB process no longer exists
and then everything blocks.
This last 'GDB process no longer exists' is strange, as I still see the gdb
when this all blocks, e.g.
philippe 16058 31085 0 20:30 pts/15 00:00:00 /bin/bash -c rootme=`pwd`; export rootme; srcdir=../../../binutils-gdb/gdb/testsuite ; export srcdir ; EXPECT=`if [
philippe 16386 16058 0 20:30 pts/15 00:00:00 expect -- /usr/share/dejagnu/runtest.exp --status GDB_PARALLEL=yes --outdir=outputs/gdb.threads/tid-reuse gdb.thre
philippe 24848 16386 0 20:30 pts/20 00:00:00 /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /bd/home/philip
This patch gives a default value of 60, so that if ever something wrong happens
in tid-reuse, then the value retrieved by the .exp script stays in a reasonable
range.
Simon verified the patch by:
"I replaced the pthread_create call with the value 1 to simulate a
failure, and the test succeeds to fail quickly with your patch applied.
Without your patch, I get the infinite hang that you describe."
Compared to V1:
As suggested by Pedro, this version checks the pthread calls return
code (in particular of pthread_create) and reports the failure reason,
instead of just aborting.
gdb/testsuite/ChangeLog
2018-12-09 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.threads/tid-reuse.c (REUSE_TIME_CAP): Declare as 60.
(reuse_time): Initialize to REUSE_TIME_CAP.
(check_rc): New function.
(main): Use REUSE_TIME_CAP instead of hardcoded 60.
Check pthread_create rc.
(spawner_thread_func): Check pthread_create and pthread_join rc.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Remove whitespace before #include line
@ 2018-12-10 11:31 sergiodj+buildbot
2018-12-10 12:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-10 11:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 69cb29528eaf96ed82c25283586a8cc914130439 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 69cb29528eaf96ed82c25283586a8cc914130439
gdb/riscv: Remove whitespace before #include line
This fixes an ARI warning in riscv-tdep.c that whitespace before a
gdb/ChangeLog:
* riscv-tdep.c (riscv_register_name): Fix ARI warning by removing
leading whitespace before #include line.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Update test to handle targets without an fpu
@ 2018-12-11 12:18 sergiodj+buildbot
2018-12-11 13:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 12:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 99e1a184a791d30c09a86d6eca4528dc146c2c79 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 99e1a184a791d30c09a86d6eca4528dc146c2c79
gdb/riscv: Update test to handle targets without an fpu
The FPU is optional on RISC-V. The gdb.base/float.exp test currently
assumes that an fpu is always available on RISC-V. Update the test so
that this is not the case.
gdb/testsuite/ChangeLog:
* gdb.base/float.exp: Handle RISC-V targets without an FPU.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix a failure in the libiberty testsuite by increasing the recursion limit to 2048.
@ 2018-12-11 12:53 sergiodj+buildbot
2018-12-11 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 12:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 69799d67e8872dcd3feee81ed2ff0fc47beb52d7 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 69799d67e8872dcd3feee81ed2ff0fc47beb52d7
Fix a failure in the libiberty testsuite by increasing the recursion limit to 2048.
PR 88409
include * demangle.h (DEMANGLE_RECURSION_LIMIT): Increase to 2048.
binutils* NEWS: Note that recursion limit has increased to 2048.
* doc/binutils.texi: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PATCH/OBVIOUS Remove various trailing spaces in linux-osdata.c
@ 2018-12-11 22:25 sergiodj+buildbot
2018-12-11 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 22:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 326b0c1289f97a25f3846f1d1d8d32811bbd1789 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 326b0c1289f97a25f3846f1d1d8d32811bbd1789
PATCH/OBVIOUS Remove various trailing spaces in linux-osdata.c
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] bfd: xtensa: ignore overflow in hight part of const16 relocation
@ 2018-12-11 23:16 sergiodj+buildbot
2018-12-12 2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-11 23:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 00863b8e40a0afd0daf0925acf3f7c794dfd9c73 ***
Author: Max Filippov <jcmvbkbc@gmail.com>
Branch: master
Commit: 00863b8e40a0afd0daf0925acf3f7c794dfd9c73
bfd: xtensa: ignore overflow in hight part of const16 relocation
32-bit constants loaded by two const16 opcodes that involve relocation
(e.g. calculated as a sum of a symbol and a constant) may overflow,
resulting in linking error with the following message:
dangerous relocation: const16: cannot encode: (_start+0x70000000)
They should wrap around instead. Limit const16 opcode immediate field to
16 least significant bits to implement this wrap around.
bfd/
2018-12-11 Max Filippov <jcmvbkbc@gmail.com>
* elf32-xtensa.c (elf_xtensa_do_reloc): Limit const16 opcode
immediate field to 16 least significant bits.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Handle passing variadic floating point arguments
@ 2018-12-12 15:16 sergiodj+buildbot
2018-12-12 16:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 15:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4de3d8d06673d130e256a6ad81e5df2e412934c1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4de3d8d06673d130e256a6ad81e5df2e412934c1
gdb/riscv: Handle passing variadic floating point arguments
This commit fixes some test failures in gdb.base/varargs.exp when
running on targets with floating point hardware. Floating point
unnamed (variadic) arguments should be passed in integer registers
according to the abi.
After this commit I see no failures in gdb.base/varargs.exp on 32 or
64 bit targets with floating point hardware.
gdb/ChangeLog:
* riscv-tdep.c (riscv_call_arg_scalar_float): Unnamed (variadic)
arguments are passed in integer registers.
(riscv_call_arg_complex_float): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Update test pattern to deal with native-extended-gdbserver
@ 2018-12-12 18:45 sergiodj+buildbot
2018-12-12 20:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 18:45 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b001de2320446ec803b4ee5e0b9710b025b84469 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b001de2320446ec803b4ee5e0b9710b025b84469
gdb: Update test pattern to deal with native-extended-gdbserver
When running the test gdb.base/annota1.exp with:
make check-gdb RUNTESTFLAGS="--target_board=native-extended-gdbserver gdb.base/annota1.exp"
I would see a failure due to some unexpected lines in GDB's output.
The extra lines (when compared with a native run) were about file
transfer from the remote back to GDB.
This commit extends the regexp for this test to allow for these extra
lines, and also splits the rather long regexp up into a list of parts.
With this change in place I see no failures for gdb.base/annota1.exp
when using the native-extended-gdbserver target board, nor with a
native run on X86-64/Linux.
gdb/testsuite/ChangeLog:
* gdb.base/annota1.exp: Update a test regexp.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/infcall: Make infcall_suspend_state into a class
@ 2018-12-12 18:57 sergiodj+buildbot
2018-12-12 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 18:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6bf78e29a1dea7121f050c6ee4990298eec679dd ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 6bf78e29a1dea7121f050c6ee4990298eec679dd
gdb/infcall: Make infcall_suspend_state into a class
I ran into a situation where attempting to make an inferior function
call would trigger an assertion, like this:
(gdb) call some_inferior_function ()
../../src/gdb/regcache.c:310: internal-error: void regcache::restore(readonly_detached_regcache*): Assertion `src != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
The problem that triggers the assertion is that in the function
save_infcall_suspend_state, we basically did this:
1. Create empty infcall_suspend_state object.
2. Fill fields of infcall_suspend_state object.
The problem is causes is that if filling any of the fields triggered
an exception then the infcall_suspend_state object would be deleted
while in a partially filled in state.
In the specific case I encountered, I had a remote RISC-V target that
claimed in its target description to support floating point registers.
However, this was not true, and when GDB tried to read a floating
point register the remote sent back an error. This error would cause
an exception to be thrown while creating the
readonly_detached_regcache, which in turn caused GDB to try and delete
an infcall_suspend_state which didn't have any register state, and
this triggered the assertion.
To prevent this problem we have two possibilities, either, rewrite the
restore code the handle partially initialised infcall_suspend_state
objects, or, prevent partially initialised infcall_suspend_state
objects from existing. The second of these seems like a better
solution.
So, in this patch, I move the filling in of the different
infcall_suspend_state fields within a new constructor for
infcall_suspend_state. Now, if generating one of those fields fails
the destructor for infcall_suspend_state will not be executed and GDB
will not try to restore the partially saved state.
With this patch in place GDB now behaves like this:
(gdb) call some_inferior_function ()
Could not fetch register "ft0"; remote failure reply 'E99'
(gdb)
The inferior function call is aborted due to the error.
This has been tested against x86-64/Linux native, native-gdbserver,
and native-extended-gdbserver with no regressions. I've manually
tested this against my baddly behaving target and confirmed the
inferior function call is aborted as described above.
gdb/ChangeLog:
* infrun.c (infcall_suspend_state::infcall_suspend_state): New.
(infcall_suspend_state::registers): New.
(infcall_suspend_state::restore): New.
(infcall_suspend_state::thread_suspend): Rename to...
(infcall_suspend_state::m_thread_suspend): ...this.
(infcall_suspend_state::registers): Rename to...
(infcall_suspend_state::m_registers): ...this.
(infcall_suspend_state::siginfo_gdbarch): Rename to...
(infcall_suspend_state::m_siginfo_gdbarch): ...this.
(infcall_suspend_state::siginfo_data): Rename to...
(infcall_suspend_state::m_siginfo_data): ...this.
(save_infcall_suspend_state): Rewrite to use infcall_suspend_state
constructor.
(restore_infcall_suspend_state): Rewrite to use
infcall_suspend_state::restore method.
(get_infcall_suspend_state_regcache): Use
infcall_suspend_state::registers method.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] OBVIOUS: Forward declare linux_xfer_osdata_info_os_types on one line to fix ARI warning.
@ 2018-12-12 21:31 sergiodj+buildbot
2018-12-12 22:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 21:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c8749e5810115ad822ae22db8a8da4c92b0f285d ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: c8749e5810115ad822ae22db8a8da4c92b0f285d
OBVIOUS: Forward declare linux_xfer_osdata_info_os_types on one line to fix ARI warning.
2018-12-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* nat/linux-osdata.c (linux_xfer_osdata_info_os_types): Forward
declare on one line to fix ARI warning.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Update NEWS for OpenRISC Linux support
@ 2018-12-12 22:57 sergiodj+buildbot
2018-12-12 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-12 22:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66ac1ae906fc09806e827c8a06303fa7bed221eb ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: 66ac1ae906fc09806e827c8a06303fa7bed221eb
gdb: Update NEWS for OpenRISC Linux support
gdb/ChangeLog:
* NEWS(New targets): Add or1k*-*-linux*.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Correct printing of MSTATUS and MISA.
@ 2018-12-13 19:51 sergiodj+buildbot
2018-12-13 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 19:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b7c8601a7f2874de1bbe0dc38ef86ea053593ad8 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: b7c8601a7f2874de1bbe0dc38ef86ea053593ad8
RISC-V: Correct printing of MSTATUS and MISA.
* riscv-tdep.c (riscv_print_one_register_info): For MSTATUS, add
comment for SD field, and correct xlen calculation. For MISA, add
comment for MXL field, add call to register_size, and correct base
calculation.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Change get_syscalls_by_group to append to an existing vector of integers.
@ 2018-12-13 20:28 sergiodj+buildbot
2018-12-13 22:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 20:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4794efbfdc4b1497c1f47397b2a2c43382e3de78 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 4794efbfdc4b1497c1f47397b2a2c43382e3de78
Change get_syscalls_by_group to append to an existing vector of integers.
This removes the need for the caller to explicitly manage the memory
for the returned system call list. The sole caller only needed the
system call numbers rather than the full syscall structures.
get_syscalls_by_group now uses a boolean return value to indicate if
the requested group exists.
gdb/ChangeLog:
* break-catch-syscall.c (catch_syscall_split_args): Pass 'result'
to get_syscalls_by_group.
* xml-syscall.c [!HAVE_LIBEXPAT] (get_syscalls_by_group): Return
false.
[HAVE_LIBEXPAT] (xml_list_syscalls_by_group): Append syscall
numbers to an existing vector of integers and return a bool.
(get_syscalls_by_group): Accept pointer to vector of integers
and change return type to bool.
* xml-syscall.h (get_syscalls_by_group): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add an optional "alias" attribute to syscall entries.
@ 2018-12-13 20:49 sergiodj+buildbot
2018-12-13 23:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 20:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e9076973c822e6df7f84bb8bc0b69aa42dd29eb3 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: e9076973c822e6df7f84bb8bc0b69aa42dd29eb3
Add an optional "alias" attribute to syscall entries.
When setting a syscall catchpoint by name, catch syscalls whose name
or alias matches the requested string.
When the ABI of a system call is changed in the FreeBSD kernel, this
is implemented by leaving a compatibility system call using the old
ABI at the existing "slot" and allocating a new system call for the
version using the new ABI. For example, new fields were added to the
'struct kevent' used by the kevent() system call in FreeBSD 12. The
previous kevent() system call in FreeBSD 12 kernels is now called
freebsd11_kevent() and is still used by older binaries compiled
against the older ABI. The freebsd11_kevent() system call can be
tagged with an "alias" attribute of "kevent" permitting 'catch syscall
kevent' to catch both system calls and providing the expected user
behavior for both old and new binaries. It also provides the expected
behavior if GDB is compiled on an older host (such as a FreeBSD 11
host).
gdb/ChangeLog:
* NEWS: Add entry documenting system call aliases.
* break-catch-syscall.c (catch_syscall_split_args): Pass 'result'
to get_syscalls_by_name.
* gdbarch.sh (UNKNOWN_SYSCALL): Remove.
* gdbarch.h: Regenerate.
* syscalls/gdb-syscalls.dtd (syscall): Add alias attribute.
* xml-syscall.c [!HAVE_LIBEXPAT] (get_syscalls_by_name): Rename
from get_syscall_by_name. Now accepts a pointer to a vector of
integers and returns a bool.
[HAVE_LIBEXPAT] (struct syscall_desc): Add alias member.
(syscall_create_syscall_desc): Add alias parameter and pass it to
syscall_desc constructor.
(syscall_start_syscall): Handle alias attribute.
(syscall_attr): Add alias attribute.
(xml_get_syscalls_by_name): Rename from xml_get_syscall_number.
Now accepts a pointer to a vector of integers and returns a
bool. Add syscalls whose alias or name matches the requested
name.
(get_syscalls_by_name): Rename from get_syscall_by_name. Now
accepts a pointer to a vector of integers and returns a bool.
* xml-syscall.h (get_syscalls_by_name): Likewise.
gdb/doc/ChangeLog:
* gdb.texinfo (Set Catchpoints): Add an anchor for 'catch syscall'.
(Native): Add a FreeBSD subsection.
(FreeBSD): Document use of system call aliases for compatibility
system calls.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Update the FreeBSD system call table to match FreeBSD 12.0.
@ 2018-12-13 23:40 sergiodj+buildbot
2018-12-14 0:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-13 23:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 64fdde094a2747e9aa729dfa4f1568c3d24ab80b ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: 64fdde094a2747e9aa729dfa4f1568c3d24ab80b
Update the FreeBSD system call table to match FreeBSD 12.0.
Add a script to generate the FreeBSD XML system call table from the
sys/sys/syscall.h file in the kernel source tree. For ABI
compatiblity system calls used by older binaries (such as
freebsd11_kevent()), the original system call name is used as an
alias.
Run this script against the current syscall.h file in FreeBSD's head
branch which is expected to be the file used in 12.0 (head is
currently in code freeze as part of the 12.0 release process).
gdb/ChangeLog:
* syscalls/update-freebsd.sh: New file.
* syscalls/freebsd.xml: Regenerate.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Minor gdb/Makefile.in cleanups
@ 2018-12-15 2:55 sergiodj+buildbot
2018-12-15 3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-15 2:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7ff6138b00d245b765266ccaa238e51f906f5356 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7ff6138b00d245b765266ccaa238e51f906f5356
Minor gdb/Makefile.in cleanups
This removes an IMO not very useful comment in gdb/Makefile.in about
"alloca". It also removes INFOFILES, which I think probably has not
been useful since whenever the manual was moved into a subdirectory.
gdb/ChangeLog
2018-12-14 Tom Tromey <tom@tromey.com>
* Makefile.in: Remove "alloca" comment.
(INFOFILES): Remove.
(local-maintainer-clean): Don't use INFOFILES.
^ permalink raw reply [flat|nested] 4390+ 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 22:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR23994, libbfd integer overflow
@ 2018-12-17 3:31 sergiodj+buildbot
2018-12-17 3:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 11:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Fix the gdb build with musl libc
@ 2018-12-17 11:40 sergiodj+buildbot
2018-12-17 12:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR23980, powerpc64 ld segfault
@ 2018-12-17 23:32 sergiodj+buildbot
2018-12-18 0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 3:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix build with latest GCC 9.0 tree
@ 2018-12-19 16:51 sergiodj+buildbot
2018-12-19 18:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 22:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-21 0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix compile error with clang 3.8
@ 2018-12-21 17:28 sergiodj+buildbot
2018-12-21 18:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 21:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Workaround a FreeBSD kernel bug resulting in spurious SIGTRAP events.
@ 2018-12-21 18:54 sergiodj+buildbot
2018-12-22 0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Add gdb to dwarf register number mapping
@ 2018-12-22 10:50 sergiodj+buildbot
2018-12-22 11:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 13:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Prevent buffer overflow in riscv_return_value
@ 2018-12-22 11:59 sergiodj+buildbot
2018-12-22 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] i386: Remove the unused bfd pointer argument
@ 2018-12-23 18:40 sergiodj+buildbot
2018-12-23 19:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 14:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Simplify dwarf2_find_containing_comp_unit
@ 2018-12-24 17:54 sergiodj+buildbot
2018-12-24 18:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Extend the comments in c-exp.y
@ 2018-12-24 19:34 sergiodj+buildbot
2018-12-24 19:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-24 19:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b6c95c0cc5bd60e2de86d611120bf6191f99860a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b6c95c0cc5bd60e2de86d611120bf6191f99860a
gdb: Extend the comments in c-exp.y
In an attempt to fix PR gdb/13368 this commit adds some comments to
c-exp.y which hopefully makes the type parsing code a little clearer.
There are no code changes here, so there should be no user visible
changes after this commit.
gdb/ChangeLog:
PR gdb/13368
* c-exp.y (typebase): Extend the comment.
(ident_tokens): Likewise.
^ permalink raw reply [flat|nested] 4390+ 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:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 11:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 14:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Improve gdb.ada/rename_subscript_param.exp by using more unique names.
@ 2018-12-27 12:28 sergiodj+buildbot
2018-12-27 12:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-27 12:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT afcfda091e15beb9580398709235c1866a4c79e1 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: afcfda091e15beb9580398709235c1866a4c79e1
Improve gdb.ada/rename_subscript_param.exp by using more unique names.
With old compilers, the test fails because no debug info is generated
for 'B' and GDB finds some 'b' in atnat.h:
(gdb) print b
Multiple matches for b
[0] cancel
[1] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[2] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[3] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> FAIL: gdb.ada/rename_subscript_param.exp: print b before changing its value (timeout)
Avoid the timeout by renaming 'b' to rename_subscript_param_b.
Also, change 'before' to 'after' in the gdb_test message that prints
the value after changing it.
The test still fails with old compilers that do not properly
generate debug info for this renaming:
(gdb) print rename_subscript_param_b
No definition of "rename_subscript_param_b" in current context.
(gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value
Note: if the compiler would generate the correct debug info, the test should
succeed with the name B. However, waiting for this fix, changing the name
ensures that the test fails directly, instead of causing a timeout.
2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
PR ada/23381
* gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
Rename_Subscript_Param_B. All users updated.
gdb.ada/rename_subscript_param.exp: Test names made unique.
Note that PR ada/23381 is only fully fixed when using a recent
compiler.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use DISABLE_COPY_AND_ASSIGN in minimal_symbol_reader
@ 2018-12-27 20:08 sergiodj+buildbot
2018-12-27 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove gdbtypes special case from init.c rule
@ 2018-12-27 20:58 sergiodj+buildbot
2018-12-28 0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make init.c depend on source files
@ 2018-12-27 21:10 sergiodj+buildbot
2018-12-28 1:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Build gdb "nat" files in subdirectory
@ 2018-12-27 21:27 sergiodj+buildbot
2018-12-28 2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Consolidate some Python exception-printing functions
@ 2018-12-27 21:53 sergiodj+buildbot
2018-12-28 5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Translate PyExc_KeyboardInterrupt to gdb "quit"
@ 2018-12-27 22:36 sergiodj+buildbot
2018-12-28 6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24028, PPC_INT_FMT
@ 2018-12-28 7:24 sergiodj+buildbot
2018-12-28 8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 7:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d1a3c973fa1c0d7eead585e82e02db11daeb36cf ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: d1a3c973fa1c0d7eead585e82e02db11daeb36cf
PR24028, PPC_INT_FMT
PPC_INT_FMT is redundant now that bfd.h pulls in inttypes.h if
available. Apparently MacOS Mojave defines int64_t as long long even
though long is also 64 bits, which confuses the logic selecting
PPC_INT_FMT (and BFD_PRI64 too). Hopefully inttypes.h is available on
Mojave.
PR 24028
include/
* opcode/ppc.h (PPC_INT_FMT): Delete.
opcodes/
* ppc-dis.c (print_insn_powerpc): Replace PPC_INT_FMT uses with
PRId64/PRIx64.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR24015, glibc-2.28 on little-endian mips32 broken
@ 2018-12-28 10:24 sergiodj+buildbot
2018-12-28 11:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-28 10:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0e41bebb938dbe9eae7063f5321429194bfc5ab7 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0e41bebb938dbe9eae7063f5321429194bfc5ab7
PR24015, glibc-2.28 on little-endian mips32 broken
Commit 2bf2bf23da exposed a bug on targets that create common sections
other than the standard ELF SHN_COMMON. If these are output by ld -r,
then their type becomes SHT_PROGBITS unless the target handles them
specially (eg. by elf_backend_special_sections), and if they are
merged into .bss/.sbss by ld -r then that section becomes SHT_PROGBITS.
Worse, if they are output by ld -r, then their size is increased by
bfd_generic_define_common_symbol during final link, which leads to
bogus file contents being copied to output.
For mips, it seems to me that the .scommon section should not be
output for ld -r, but I haven't made that change in this patch.
PR 24015
* elf.c (bfd_elf_get_default_section_type): Make common sections
SHT_NOBITS.
* linker.c (bfd_generic_define_common_symbol): Clear
SEC_HAS_CONTENTS.
^ permalink raw reply [flat|nested] 4390+ 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 19:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change wrap buffering to use a std::string
@ 2018-12-28 21:27 sergiodj+buildbot
2018-12-28 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change gdb test suite's TERM setting
@ 2018-12-28 22:14 sergiodj+buildbot
2018-12-29 2:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add output styles to gdb
@ 2018-12-28 22:24 sergiodj+buildbot
2018-12-29 4:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Reset terminal styles
@ 2018-12-28 22:26 sergiodj+buildbot
2018-12-29 5:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Style variable names
@ 2018-12-28 22:37 sergiodj+buildbot
2018-12-29 6:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Style print_address_symbolic
@ 2018-12-28 23:02 sergiodj+buildbot
2018-12-29 9:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Style the "Reading symbols" message
@ 2018-12-28 23:25 sergiodj+buildbot
2018-12-29 12:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce ui_file_style
@ 2018-12-29 0:31 sergiodj+buildbot
2018-12-29 1:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-29 0:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT eedeedd2a50d121af466ddfa9e897212defbf079 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: eedeedd2a50d121af466ddfa9e897212defbf079
Introduce ui_file_style
This introduces the new ui_file_style class and various helpers. This
class represents a terminal style and provides methods for parsing and
emitting the corresponding ANSI terminal escape sequences.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* unittests/style-selftests.c: New file.
* ui-style.c: New file.
* ui-style.h: New file.
* ui-file.h: Include ui-style.h.
* Makefile.in (COMMON_SFILES): Add ui-style.c.
(HFILES_NO_SRCDIR): Add ui-style.h.
(SUBDIR_UNITTESTS_SRCS): Add style-selftests.c.
^ permalink raw reply [flat|nested] 4390+ 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 18:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make ANSI terminal escape sequences work in TUI
@ 2018-12-29 14:34 sergiodj+buildbot
2018-12-29 14:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-29 14:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1d1d0bf76f3bc3056a1456e53c066f40ca4d0837 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1d1d0bf76f3bc3056a1456e53c066f40ca4d0837
Make ANSI terminal escape sequences work in TUI
PR tui/14126 notes that ANSI terminal escape sequences don't affect
the colors shown in the TUI. A simple way to see this is to try the
extended-prompt example from the gdb manual.
Curses does not pass escape sequences through to the terminal.
Instead, it replaces non-printable characters with a visible
representation, for example "^[" for the ESC character.
This patch fixes the problem by adding a simple ANSI terminal sequence
parser to gdb. These sequences are decoded and those that are
recognized are turned into the appropriate curses calls.
The curses approach to color handling is unusual and so there are some
oddities in the implementation.
Standard curses has no notion of the default colors of the terminal.
So, if you set the foreground color, it is not possible to reset it --
you have to pick some other color. ncurses provides an extension to
handle this, so this patch updates configure and uses it when
available.
Second, in curses, colors always come in pairs: you cannot set just
the foreground. This patch handles this by tracking actually-used
pairs of colors and keeping a table of these for reuse.
Third, there are a limited number of such pairs available. In this
patch, if you try to use too many color combinations, gdb will just
ignore some color changes.
Finally, in addition to limiting the number of color pairs, curses
also limits the number of colors. This means that, when using
extended 8- or 24-bit color sequences, it may be possible to exhaust
the curses color table.
I am very sour on the curses design now.
I do not know how to write a test for this, so I did not.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
PR tui/14126:
* tui/tui.c (tui_enable): Call start_color and
use_default_colors.
* tui/tui-io.c (struct color_pair): New.
(color_pair_map, last_color_pair, last_style): New globals.
(tui_setup_io): Clean up color map when shutting down.
(curses_colors): New constant.
(get_color_pair, apply_ansi_escape): New functions.
(tui_write): Rewrite.
(tui_puts_internal): New function, from tui_puts. Add "height"
parameter.
(tui_puts): Use tui_puts_internal.
(tui_redisplay_readline): Use tui_puts_internal.
(_initialize_tui_io): New function.
(color_map): New globals.
(get_color): New function.
* configure.ac: Check for use_default_colors.
* config.in, configure: Rebuild.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix 'help set/show style' strange layouts/results.
@ 2018-12-30 9:50 sergiodj+buildbot
2018-12-30 16:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [PowerPC64] Nop out ld 2, 24(1) after old-style __tls_get_addr
@ 2018-12-31 7:25 sergiodj+buildbot
2018-12-31 8:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-31 7:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c96e057398b599a343cdff68325251346b71594e ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c96e057398b599a343cdff68325251346b71594e
[PowerPC64] Nop out ld 2,24(1) after old-style __tls_get_addr
When optimising inline plt calls to __tls_get_addr without tls marker
relocs, ld should zap any toc restore insn after the bctrl, to stop a
load-hit-store stall.
* elf64-ppc.c (ppc64_elf_relocate_section <tls_ldgd_opt>): When
editing an old-style __tls_get_addr call, replace a toc restore
insn with a nop.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Update copyright year range in all GDB files.
@ 2019-01-01 6:42 sergiodj+buildbot
2019-01-01 8:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] rotate gdb/ChangeLog
@ 2019-01-01 6:54 sergiodj+buildbot
2019-01-01 7:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 6:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5bbd631dca26b37b1cc7164d4499949826b8a102 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 5bbd631dca26b37b1cc7164d4499949826b8a102
rotate gdb/ChangeLog
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] update copyright year printed by gdb, gdbserver and gdbreplay
@ 2019-01-01 6:54 sergiodj+buildbot
2019-01-01 10:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update year range in copyright notice of binutils files
@ 2019-01-01 12:27 sergiodj+buildbot
2019-01-01 12:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 12:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 827041555ac443bd57340060f3e034fd7b199dd8 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 827041555ac443bd57340060f3e034fd7b199dd8
Update year range in copyright notice of binutils files
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix leak in print_one_catch_syscall.
@ 2019-01-01 19:54 sergiodj+buildbot
2019-01-01 20:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-01 19:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5b38f9c16e5b3f5f4b5d7772bfef59b1c97e2d05 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 5b38f9c16e5b3f5f4b5d7772bfef59b1c97e2d05
Fix leak in print_one_catch_syscall.
The last text produced was not freed, causing the below leak
(e.g. in gdb.base/catch-syscall.exp):
==24970== 56 bytes in 12 blocks are definitely lost in loss record 626 of 3,289
==24970== at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
==24970== by 0x66B9C3F: __vasprintf_chk (vasprintf_chk.c:80)
==24970== by 0x405181: vasprintf (stdio2.h:210)
==24970== by 0x405181: xstrvprintf(char const*, __va_list_tag*) (common-utils.c:122)
==24970== by 0x40524B: xstrprintf(char const*, ...) (common-utils.c:113)
==24970== by 0x3B49DB: print_one_catch_syscall(breakpoint*, bp_location**) (break-catch-syscall.c:275)
==24970== by 0x3C698F: print_one_breakpoint_location(breakpoint*, bp_location*, int, bp_location**, int) (breakpoint.c:6076)
==24970== by 0x3C75B1: print_one_breakpoint(breakpoint*, bp_location**, int) (breakpoint.c:6373)
==24970== by 0x3C7D0E: breakpoint_1(char const*, int, int (*)(breakpoint const*)) (breakpoint.c:6571)
==24970== by 0x3C822C: info_breakpoints_command(char const*, int) (breakpoint.c:6625)
2019-01-01 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* break-catch-syscall.c (print_one_catch_syscall): xfree
the last text.
^ permalink raw reply [flat|nested] 4390+ 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 23:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix year range in unittests/.../char/empty.cc copyright header
@ 2019-01-02 6:29 sergiodj+buildbot
2019-01-02 7:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-02 6:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4ada3dfd5c07f0f1045a721a28fc905918ffbdfd ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 4ada3dfd5c07f0f1045a721a28fc905918ffbdfd
Fix year range in unittests/.../char/empty.cc copyright header
The year range in the copyright header of that file was incorrect:
// Copyright (C) 3 Free Software Foundation, Inc.
Tracing the origin of this file down, I found that it was copied
from GCC's libstdc++-v3 testsuite:
Adapt and integrate string_view tests
https://www.sourceware.org/ml/gdb-patches/2018-04/msg00113.html
Looking at the version in GCC, I found the same issue, so sent
a fix there:
https://gcc.gnu.org/ml/gcc-patches/2019-01/msg00000.html
Now that the fix is in GCC, this commit applies the same fix
to our copy.
gdb/ChangeLog:
* unittests/basic_string_view/element_access/char/empty.cc:
Fix year range in copyright header.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Style improvements in gdb/python
@ 2019-01-02 16:47 sergiodj+buildbot
2019-01-02 17:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix search of debug files for remote debuggee
@ 2019-01-02 20:08 sergiodj+buildbot
2019-01-02 21:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 22:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Place displaced step data directly in inferior structure
@ 2019-01-02 22:46 sergiodj+buildbot
2019-01-02 23:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change inferior_to_inferior_object to return a gdbpy_ref
@ 2019-01-02 23:46 sergiodj+buildbot
2019-01-03 1:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove cleanups from linespec.c
@ 2019-01-02 23:59 sergiodj+buildbot
2019-01-03 2:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add 'extern C' if simulator is written in C++
@ 2019-01-03 14:58 sergiodj+buildbot
2019-01-03 15:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] S12Z: opcodes: Separate the decoding of operations from their display.
@ 2019-01-03 18:01 sergiodj+buildbot
2019-01-03 18:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-03 18:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ef1ad42b8b5f2c43d74582d2e629841c39962c18 ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: ef1ad42b8b5f2c43d74582d2e629841c39962c18
S12Z: opcodes: Separate the decoding of operations from their display.
This change adds an abstraction layer between the decoding of machine
operations and their disassembled textual representation. This allows
the decoding routines to be re-used for other purposes (at the expense)
of slightly slower running time.
ChangeLog: opcodes/
* s12z-opc.c: New file.
* s12z-opc.h: New file.
* s12z-dis.c: Removed all code not directly related to display
of instructions. Used the interface provided by the new files
instead.
* Makefile.am (TARGET_LIBOPCODES_CFILES) Add s12z-opc.c.
* Makefile.in: regenerate.
* configure.ac (bfd_s12z_arch): Correct the dependencies.
* configure: regenerate.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/remote: Remove a cleanup in remote_check_symbols
@ 2019-01-03 21:41 sergiodj+buildbot
2019-01-03 22:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Remove a cleanup from find_overload_match
@ 2019-01-03 21:54 sergiodj+buildbot
2019-01-03 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Simplify gdbpy_stop_recording
@ 2019-01-03 23:17 sergiodj+buildbot
2019-01-04 7:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 13:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Remove cleanup from linux_nat_target::follow_fork
@ 2019-01-04 3:18 sergiodj+buildbot
2019-01-04 3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 3:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 169bb27bce3dc43b2bb5f6abf7fc21c19de5454a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 169bb27bce3dc43b2bb5f6abf7fc21c19de5454a
gdb: Remove cleanup from linux_nat_target::follow_fork
Remove cleanup from linux_nat_target::follow_fork, instead add a new
unique_ptr specialisation for holding lwp_info pointers and use this
to ensure the pointer is cleaned up when needed.
gdb/ChangeLog:
* linux-nat.c (delete_lwp_cleanup): Delete.
(struct lwp_deleter): New struct.
(lwp_info_up): New typedef.
(linux_nat_target::follow_fork): Delete cleanup, and make use of
lwp_info_up.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Avoid questionable casts in py-symtab.c
@ 2019-01-04 10:32 sergiodj+buildbot
2019-01-04 10:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-04 10:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7c711119166fc1c60c756059f39c6703d57eedbf ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7c711119166fc1c60c756059f39c6703d57eedbf
Avoid questionable casts in py-symtab.c
py-symtab.c has some questionable casts of Py_None to symtab_object*.
This patch avoids these casts by instead using downcasts at the
appropriate places.
gdb/ChangeLog
2019-01-03 Tom Tromey <tom@tromey.com>
* python/py-symtab.c (salpy_str): Update.
(struct salpy_sal_object) <symtab>: Now a PyObject.
(salpy_dealloc): Update.
(del_objfile_sal): Use gdbpy_ref.
^ permalink raw reply [flat|nested] 4390+ 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 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use upper case for more metasyntactic variables in gdb
@ 2019-01-04 21:57 sergiodj+buildbot
2019-01-04 22:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] GDB crash re-running program on Windows (native)
@ 2019-01-05 8:10 sergiodj+buildbot
2019-01-05 9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] RX: include - Add RXv3 support.
@ 2019-01-05 14:07 sergiodj+buildbot
2019-01-05 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use std::vector in type stacks
@ 2019-01-06 17:00 sergiodj+buildbot
2019-01-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove string-related cleanup from c-exp.y
@ 2019-01-06 20:15 sergiodj+buildbot
2019-01-06 20:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-06 20:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c65bac3846567a8068fe4aa5cfa79da5b193a1af ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: c65bac3846567a8068fe4aa5cfa79da5b193a1af
Remove string-related cleanup from c-exp.y
This removes a string-related cleanup from c-exp.y, by adding a new
member to c_parse_state to store the strings.
gdb/ChangeLog
2019-01-06 Tom Tromey <tom@tromey.com>
* c-exp.y (struct c_parse_state) <strings>: New member.
(operator_stoken): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove remaining cleanups from c-exp.y
@ 2019-01-06 21:39 sergiodj+buildbot
2019-01-06 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-06 21:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9d30e1fd7cfc742b03b7d973e511f7bfe5cfc295 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9d30e1fd7cfc742b03b7d973e511f7bfe5cfc295
Remove remaining cleanups from c-exp.y
This removes the remaining cleanups from c-exp.y by moving some
globals into c_parse_state, and changing expansion_obstack to be an
auto_obstack.
gdb/ChangeLog
2019-01-06 Tom Tromey <tom@tromey.com>
* c-exp.y (struct c_parse_state) <macro_original_text,
expansion_obstack>: New member.
(macro_original_text, expansion_obstack): Remove globals.
(scan_macro_expansion, scanning_macro_expansion)
(finished_macro_expansion): Update.
(scan_macro_cleanup): Remove.
(yylex, c_parse): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] s12z regen
@ 2019-01-07 4:49 sergiodj+buildbot
2019-01-07 5:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-08 0:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24065, 32-bit objcopy fails with 64-bit address ... out of range
@ 2019-01-08 12:32 sergiodj+buildbot
2019-01-08 13:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 12:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a9859e01726d085db79cff88550fdb38e2434e42 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a9859e01726d085db79cff88550fdb38e2434e42
PR24065, 32-bit objcopy fails with 64-bit address ... out of range
PR 23699
PR 24065
* ihex.c (ihex_write_object_contents): Properly check 32-bit
address range.
^ permalink raw reply [flat|nested] 4390+ 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 14:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Handle requests to print source lines backward
@ 2019-01-08 12:49 sergiodj+buildbot
2019-01-08 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Move declarations from symtab.h to source.h
@ 2019-01-08 13:01 sergiodj+buildbot
2019-01-08 17:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix build failure with macOS bison
@ 2019-01-08 18:21 sergiodj+buildbot
2019-01-08 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-08 18:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cfeadda545c4961877969e6a66be79278696e012 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: cfeadda545c4961877969e6a66be79278696e012
Fix build failure with macOS bison
PR gdb/24060 points out a compilation failure of the C, Fortran and Pascal
parsers when they are built using the macOS system bison. The bug is a name
clash between the VARIABLE token name and the VARIABLE enumerator in ui-out.h.
This patch renames VARIABLE in c-exp.y, f-exp.y and p-exp.y to DOLLAR_VARIABLE
to avoid the clash. It also renames similar variables in other .y files so
that all languages use the same name.
gdb/ChangeLog
2019-01-07 Tom Tromey <tom@tromey.com>
2019-01-07 Simon Marchi <simon.marchi@ericsson.com>
PR gdb/24060:
* ada-exp.y (DOLLAR_VARIABLE): Rename from SPECIAL_VARIABLE.
* ada-lex.l (DOLLAR_VARIABLE): Likewise.
* c-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
* f-exp.y (DOLLAR_VARIABLE): Likewise.
* m2-exp.y (DOLLAR_VARIABLE): Rename from INTERNAL_VAR.
* p-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Adjust bfd/warning.m4 egrep patterns
@ 2019-01-09 3:39 sergiodj+buildbot
2019-01-09 4:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 11:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Remove support for old mangling schemes
@ 2019-01-09 18:33 sergiodj+buildbot
2019-01-09 19:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-09 18:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 041be52673949e5b6cc2b507e55a379a54ab8ee0 ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 041be52673949e5b6cc2b507e55a379a54ab8ee0
gdb: Remove support for old mangling schemes
An upcoming sync with gcc's libiberty [1] will remove support for old
mangling schemes (GNU v2, Lucid, ARM, HP and EDG). It will remove the
cplus_demangle_opname function, so we need to get rid of its usages in
GDB (it's a GNU v2 specific function).
I think the changes are mostly relatively obvious, some hacks that were
necessary to support overloaded operators with GNU v2 mangling are not
needed anymore.
The change in stabsread.c is perhaps less obvious. I think we could get
rid of more code in that region that is specific to old mangling
schemes, but I chose to do only the minimal changes required to remove
the cplus_demangle_opname uses. There is also a detailed comment just
above that explaining how GNU v2 and v3 mangled symbols are handled, I
decided to leave it as-is, since I wasn't sure which part to remove,
change or leave there.
[1] The commit "Remove support for demangling GCC 2.x era mangling
schemes.", specifically.
gdb/ChangeLog:
* gdbtypes.c (check_stub_method_group): Remove handling of old
mangling schemes.
* linespec.c (find_methods): Likewise.
* stabsread.c (read_member_functions): Likewise.
* valops.c (search_struct_method): Likewise.
(value_struct_elt_for_reference): Likewise.
* NEWS: Mention this change.
gdb/testsuite/ChangeLog:
* gdb.cp/demangle.exp (test_gnu_style_demangling): Rename to...
(test_gnuv3_style_demangling): ... this.
(test_lucid_style_demangling): Remove.
(test_arm_style_demangling): Remove.
(test_hp_style_demangling): Remove.
(do_tests): Remove calls to the above.
gdb/doc/ChangeLog:
* gdb.texinfo (Print Settings): Remove mention of specific
demangle-style values, just refer to the in-process help.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] S12Z: Don't crash when disassembling invalid instructions.
@ 2019-01-09 20:05 sergiodj+buildbot
2019-01-09 21:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove ALL_PSPACE_OBJFILES
@ 2019-01-10 2:24 sergiodj+buildbot
2019-01-10 4:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove most uses of ALL_OBJFILES
@ 2019-01-10 2:36 sergiodj+buildbot
2019-01-10 5:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS
@ 2019-01-10 2:59 sergiodj+buildbot
2019-01-10 8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove ALL_COMPUNIT_FILETABS
@ 2019-01-10 3:56 sergiodj+buildbot
2019-01-10 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove ALL_OBJFILE_PSYMTABS
@ 2019-01-10 4:42 sergiodj+buildbot
2019-01-10 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move some declarations to mdebugread.h
@ 2019-01-10 14:26 sergiodj+buildbot
2019-01-10 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove ALL_OBJFILE_FILETABS
@ 2019-01-10 14:57 sergiodj+buildbot
2019-01-10 16:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-10 14:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d5da8b3c0d99e71c27832a4e9b60c61eebf9767c ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d5da8b3c0d99e71c27832a4e9b60c61eebf9767c
Remove ALL_OBJFILE_FILETABS
This removes ALL_OBJFILE_FILETABS, replacing its uses with ranged for
loops.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symmisc.c (print_objfile_statistics, dump_objfile)
(maintenance_print_symbols): Use compunit_filetabs.
* source.c (forget_cached_source_info_for_objfile): Use
compunit_filetabs.
* objfiles.h (ALL_OBJFILE_FILETABS): Remove.
(ALL_FILETABS): Use compunit_filetabs.
* objfiles.c (objfile_relocate1): Use compunit_filetabs.
* coffread.c (coff_symtab_read): Use compunit_filetabs.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Change add_psymbol_to_list to use an enum
@ 2019-01-10 15:05 sergiodj+buildbot
2019-01-11 3:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-11 6:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce objfile::reset_psymtabs
@ 2019-01-10 16:06 sergiodj+buildbot
2019-01-11 9:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Allocate the address map on the psymtab obstack
@ 2019-01-10 16:18 sergiodj+buildbot
2019-01-11 11:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move more allocations to psymtab obstack
@ 2019-01-10 16:31 sergiodj+buildbot
2019-01-11 12:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add psymtab_storage::allocate_dependencies
@ 2019-01-10 16:43 sergiodj+buildbot
2019-01-11 13:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move psymtabs to their own obstack
@ 2019-01-10 17:09 sergiodj+buildbot
2019-01-11 16:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix tracepoint.c:parse_tracepoint_definition leak (and one more)
@ 2019-01-10 18:44 sergiodj+buildbot
2019-01-11 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/23712: Introduce multidictionary's
@ 2019-01-10 22:27 sergiodj+buildbot
2019-01-11 23:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/23712: Use new multidictionary API
@ 2019-01-10 22:39 sergiodj+buildbot
2019-01-12 0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/23712: Remove dw2_add_symbol_to_list
@ 2019-01-10 23:02 sergiodj+buildbot
2019-01-12 8:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Replace inf_threads_iterator with next_iterator
@ 2019-01-10 23:27 sergiodj+buildbot
2019-01-12 11:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make psymtab_storage::free_psymtabs private
@ 2019-01-11 14:49 sergiodj+buildbot
2019-01-11 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-11 14:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b596a3c77da2387d7e5a3855717d65ce33bdfb58 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: b596a3c77da2387d7e5a3855717d65ce33bdfb58
Make psymtab_storage::free_psymtabs private
This adds a new psymtab allocation method to psymtab_storage and
changes the free_psymtabs member to be private. While not strictly
necessary, this seems like a decent cleanup, and also makes it simpler
to move psymtabs off of obstacks entirely, should that prove
desirable.
gdb/ChangeLog
2019-01-10 Tom Tromey <tom@tromey.com>
* psymtab.h (psymtab_storage::allocate_psymtab): New method.
<free_psymtabs>: Now private.
* psymtab.c (psymtab_storage::allocate_psymtab): Implement.
(allocate_psymtab): Use new method.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Fix incorrect variable name in scoped_switch_fork_info
@ 2019-01-11 17:34 sergiodj+buildbot
2019-01-11 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-11 17:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT da584958006fd0a3f3dccd25a0a54fa79a0976bc ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: da584958006fd0a3f3dccd25a0a54fa79a0976bc
gdb: Fix incorrect variable name in scoped_switch_fork_info
The previous commit:
commit 1ef8573cc77c91feeef3edab74d383d20809eb33
Date: Wed Jan 9 14:02:39 2019 +0000
gdb: Improve scoped_switch_fork_info class
contained a bug, an incorrect variable name was used. Fixed in this
commit.
gdb/ChangeLog:
* linux-fork.c (scoped_switch_fork_info)
<~scoped_switch_fork_info>: Fix incorrect variable name.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/23712: Cleanup/Remove temporary dictionary functions
@ 2019-01-12 1:32 sergiodj+buildbot
2019-01-12 2:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 1:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 63a20375b401e24c30987367a10b47b289612e1c ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: 63a20375b401e24c30987367a10b47b289612e1c
gdb/23712: Cleanup/Remove temporary dictionary functions
Now that multidictionary's are being used, there is no longer any need
to retain the four temporary functions introduced in the beginning of
this series.
This patch removes them.
As an additional cleanup, since the single-language dictionaries are
no longer used outside dictionary.c, make all of those functions
static.
gdb/ChangeLog:
PR gdb/23712
PR symtab/23010
* dictionary.c (pending_to_vector): Remove.
(dict_create_hashed_1, dict_create_linear_1, dict_add_pending_1):
Remove _1 suffix, replacing functions of the same name. Update
all callers.
(dict_create_hashed, dict_create_hashed_expandable)
(dict_create_linear, dict_create_linear_expandable, dict_free)
(dict_add_symbol, dict_add_pending, dict_size, dict_empty):
Make functions static.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/23712: Test case for multidictionary
@ 2019-01-12 9:25 sergiodj+buildbot
2019-01-12 9:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 9:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b56f80d8b27dffd0f8c02b8b11068b71b9fec375 ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: b56f80d8b27dffd0f8c02b8b11068b71b9fec375
gdb/23712: Test case for multidictionary
This is a test derived from one of the reproducers in symtab/23010.
The DIE tree used here is typical of compilations with LTO, where an
artificial parent DIE of language C99 imports DIEs of other languages.
gdb/testsuite/ChangeLog:
PR gdb/23712
PR symtab/23010
* gdb.dwarf2/multidictionary.exp: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] expand a bit the in-GDB help for the "catch exception" help text
@ 2019-01-12 15:21 sergiodj+buildbot
2019-01-12 15:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-12 15:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 60a90376792474224f3d22b1d9813844a3b3589a ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 60a90376792474224f3d22b1d9813844a3b3589a
expand a bit the in-GDB help for the "catch exception" help text
One of our users remarked that the help doesn't mention the fact that
the "catch exception" supports the special argument "unhandled" to catch
exceptions which do not have a handler. This patch changes the output
of...
| (gdb) help catch exception
| Catch Ada exceptions, when raised.
| With an argument, catch only exceptions with the given name.
... to ...
| (gdb) help catch exception
| Catch Ada exceptions, when raised.
| Usage: catch exception [ ARG ]
|
| Without any argument, stop when any Ada exception is raised.
| If ARG is "unhandled" (without the quotes), only stop when the exception
| being raised does not have a handler (and will therefore lead to the task's
| termination).
| Otherwise, the catchpoint only stops when the name of the exception being
| raised is the same as ARG.
gdb/ChangeLog:
* ada-lang.c (_initialize_ada_language): Expand the help text
for the "catch exception" command.
Tested on x86_64-linux, no regression.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add RXv3 instructions.
@ 2019-01-12 16:44 sergiodj+buildbot
2019-01-12 17:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: xtensa: fix register counters for xtensa-linux
@ 2019-01-13 21:50 sergiodj+buildbot
2019-01-13 22:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Sync config.guess, config.sub from GCC
@ 2019-01-14 15:04 sergiodj+buildbot
2019-01-14 16:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 23:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix placement of output in TUI mode
@ 2019-01-14 23:32 sergiodj+buildbot
2019-01-15 0:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Constify some remote-notif functions
@ 2019-01-15 1:15 sergiodj+buildbot
2019-01-15 4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] sim: Fix definition of SIM_ARANGE_INLINE
@ 2019-01-15 23:04 sergiodj+buildbot
2019-01-16 1:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 14:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce dwarf2_cu::get_builder
@ 2019-01-16 19:54 sergiodj+buildbot
2019-01-16 20:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] RISC-V: Merge ELF attribute for ld.
@ 2019-01-16 21:51 sergiodj+buildbot
2019-01-17 1:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-17 3:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] RISC-V: Support ELF attribute for gas and readelf.
@ 2019-01-16 22:52 sergiodj+buildbot
2019-01-16 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-16 22:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2dc8dd17cd595bd7a1b0824c83380af52e633fc1 ***
Author: Jim Wilson <jimw@sifive.com>
Branch: master
Commit: 2dc8dd17cd595bd7a1b0824c83380af52e633fc1
RISC-V: Support ELF attribute for gas and readelf.
2019-01-16 Kito Cheng <kito@andestech.com>
Nelson Chu <nelson@andestech.com>
bfd/
* elfnn-riscv.c (riscv_elf_obj_attrs_arg_type): New.
(elf_backend_obj_attrs_vendor): Define.
(elf_backend_obj_attrs_section_type): Likewise.
(elf_backend_obj_attrs_section): Likewise.
(elf_backend_obj_attrs_arg_type): Define as
riscv_elf_obj_attrs_arg_type.
* elfxx-riscv.c (riscv_estimate_digit): New.
(riscv_estimate_arch_strlen1): Likewise.
(riscv_estimate_arch_strlen): Likewise.
(riscv_arch_str1): Likewise.
(riscv_arch_str): Likewise.
* elfxx-riscv.h (riscv_arch_str): Declare.
binutils/
* readelf.c (get_riscv_section_type_name): New function.
(get_section_type_name): Add handler for RISC-V.
(riscv_attr_tag_t): Declare.
(riscv_attr_tag): New.
(display_riscv_attribute): New function.
(process_attributes): Add handler for RISC-V.
* testsuite/binutils-all/strip-3.d: Remove .riscv.attribute
section.
gas/
* config/tc-riscv.c (DEFAULT_RISCV_ATTR): Define to 0 if not defined.
(riscv_set_options): Add `arch_attr` field.
(riscv_opts): Set default value for arch_attr.
(riscv_write_out_arch_attr): New.
(riscv_set_public_attributes): Likewise.
(riscv_md_end): Likewise.
(riscv_convert_symbolic_attribute): Likewise.
(s_riscv_attribute): Likewise.
(explicit_arch_attr): Likewise.
(riscv_pseudo_table): Add .attribute to the table.
(options): Add OPTION_ARCH_ATTR and OPTION_NO_ARCH_ATTR
enumeration constants.
(md_longopts): Add `march-attr' and `mno-arch-attr' options.
(md_parse_option): Handle the new options.
(md_show_usage): Document the `march-attr' option.
* config/tc-riscv.h (md_end): Define as riscv_md_end
(riscv_md_end): Declare.
(CONVERT_SYMBOLIC_ATTRIBUTE): Define as
riscv_convert_symbolic_attribute.
(riscv_convert_symbolic_attribute): Declare.
(start_assemble): Declare.
* testsuite/gas/elf/elf.exp: Adjust test case for section2.e.
* testsuite/gas/elf/section2.e-riscv: New.
* testsuite/gas/riscv/attribute-01.d: New test
* testsuite/gas/riscv/attribute-02.d: Likewise.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-04.d: Likewise.
* testsuite/gas/riscv/attribute-04.s: Likewise.
* testsuite/gas/riscv/attribute-05.d: Likewise.
* testsuite/gas/riscv/attribute-05.s: Likewise.
* testsuite/gas/riscv/attribute-06.d: Likewise.
* testsuite/gas/riscv/attribute-06.s: Likewise.
* testsuite/gas/riscv/attribute-07.d: Likewise.
* testsuite/gas/riscv/attribute-07.s: Likewise.
* testsuite/gas/riscv/attribute-08.d: Likewise.
* testsuite/gas/riscv/attribute-08.s: Likewise.
* testsuite/gas/riscv/attribute-unknown.d: Likewise.
* testsuite/gas/riscv/attribute-unknown.s: Likewise.
* testsuite/gas/riscv/empty.l: Likewise.
* doc/c-riscv.texi (.attribute): Add documentation.
* configure.ac (--enable-default-riscv-attribute): New options.
* configure: Re-generate.
* config.in: Re-generate.
include/
* elf/riscv.h (SHT_RISCV_ATTRIBUTES): Define.
(Tag_RISCV_arch): Likewise.
(Tag_RISCV_priv_spec): Likewise.
(Tag_RISCV_priv_spec_minor): Likewise.
(Tag_RISCV_priv_spec_revision): Likewise.
(Tag_RISCV_unaligned_access): Likewise.
(Tag_RISCV_stack_align): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Replace "the the" with "the"
@ 2019-01-17 17:38 sergiodj+buildbot
2019-01-17 18:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-01-17 17:38 [binutils-gdb] Replace "the the" with "the" sergiodj+buildbot
@ 2019-01-17 18:33 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-17 18:33 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7290>
Commit(s) tested:
6471e7d23de333a63a119220d59b920c6aaef562
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Replace "the the" with "the"
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/64/6471e7d23de333a63a119220d59b920c6aaef562/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.reverse/pipe-reverse.exp: check pipe record
PASS -> FAIL: gdb.reverse/pipe-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/pipe-reverse.exp: reverse to marker1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 33
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 34
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 35
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 36
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 37
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 38
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 39
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 40
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 41
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 42
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 43
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 44
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 45
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 46
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 47
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 48
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 49
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 50
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 51
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 52
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 53
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 54
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 55
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 56
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 57
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 58
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 59
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 60
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 61
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 62
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to 63
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to ALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to BUS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to CHLD
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to CONT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to DANGER
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to EMT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to FPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to GRANT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to HUP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to ILL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to IO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to LOST
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to LWP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to MSG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to PHONE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to PIPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to POLL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to PRIO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to PROF
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to PWR
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to QUIT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to RETRACT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to SAK
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to SEGV
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to SOUND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to SYS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to TERM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to TSTP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to TTIN
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to TTOU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to URG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to USR1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to USR2
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to VTALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to WAITING
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to WINCH
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to WIND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to XCPU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: advance to XFSZ
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_33
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_34
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_35
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_36
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_37
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_38
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_39
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_40
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_41
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_42
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_43
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_44
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_45
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_46
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_47
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_48
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_49
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_50
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_51
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_52
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_53
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_54
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_55
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_56
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_57
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_58
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_59
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_60
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_61
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_62
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_63
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_ALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_BUS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_CHLD
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_CONT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_DANGER
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_EMT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_FPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_GRANT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_HUP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_ILL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_IO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_LOST
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_LWP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_MSG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_PHONE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_PIPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_POLL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_PRIO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_PROF
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_PWR
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_QUIT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_RETRACT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_SAK
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_SEGV
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_SOUND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_SYS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_TERM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_TSTP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_TTIN
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_TTOU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_URG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_USR1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_USR2
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_VTALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_WAITING
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_WINCH
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_WIND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_XCPU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b gen_XFSZ
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_33
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_34
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_35
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_36
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_37
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_38
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_39
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_40
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_41
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_42
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_43
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_44
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_45
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_46
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_47
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_48
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_49
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_50
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_51
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_52
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_53
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_54
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_55
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_56
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_57
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_58
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_59
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_60
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_61
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_62
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_63
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_ABRT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_ALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_BUS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_CHLD
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_CONT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_DANGER
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_EMT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_FPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_GRANT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_HUP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_ILL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_IO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_LOST
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_LWP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_MSG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_PHONE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_PIPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_POLL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_PRIO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_PROF
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_PWR
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_QUIT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_RETRACT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_SAK
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_SEGV
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_SOUND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_SYS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_TERM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_TSTP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_TTIN
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_TTOU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_URG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_USR1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_USR2
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_VTALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_WAITING
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_WINCH
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_WIND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_XCPU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: b handle_XFSZ
PASS -> FAIL: gdb.reverse/sigall-precsave.exp: breakpoint at end of main
new FAIL: gdb.reverse/sigall-precsave.exp: continue
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: continue to sigall exit
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 33
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 34
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 35
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 36
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 37
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 38
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 39
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 40
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 41
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 42
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 43
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 44
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 45
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 46
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 47
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 48
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 49
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 50
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 51
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 52
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 53
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 54
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 55
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 56
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 57
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 58
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 59
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 60
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 61
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 62
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal 63
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal ABRT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal ALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal BUS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal CHLD
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal CONT
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal DANGER
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal EMT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal FPE
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal GRANT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal HUP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal ILL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal IO
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal LOST
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal LWP
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal MSG
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal PHONE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal PIPE
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal POLL
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal PRIO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal PROF
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal PWR
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal QUIT
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal RETRACT
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal SAK
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal SEGV
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal SOUND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal SYS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal TERM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal TSTP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal TTIN
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal TTOU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal URG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal USR1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal USR2
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal VTALRM
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal WAITING
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal WINCH
new UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal WIND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal XCPU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: get signal XFSZ
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG33 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG34 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG35 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG36 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG37 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG38 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG39 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG40 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG41 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG42 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG43 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG44 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG45 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG46 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG47 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG48 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG49 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG50 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG51 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG52 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG53 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG54 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG55 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG56 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG57 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG58 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG59 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG60 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG61 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG62 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIG63 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGABRT stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGALRM stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGBUS stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGCHLD stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGCONT stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGDANGER stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGEMT stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGFPE stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGGRANT stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGHUP stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGILL stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGIO stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGLOST stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGLWP stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGMSG stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGPHONE stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGPIPE stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGPOLL stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGPRIO stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGPROF stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGPWR stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGQUIT stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGRETRACT stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGSAK stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGSEGV stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGSOUND stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGSYS stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGTERM stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGTSTP stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGTTIN stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGTTOU stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGURG stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGUSR1 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGUSR2 stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGVTALRM stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGWAITING stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGWINCH stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGWIND stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGXCPU stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle SIGXFSZ stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: handle all stop print
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reload precord save file
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_33
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_34
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_35
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_36
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_37
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_38
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_39
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_40
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_41
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_42
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_43
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_44
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_45
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_46
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_47
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_48
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_49
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_50
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_51
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_52
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_53
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_54
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_55
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_56
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_57
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_58
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_59
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_60
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_61
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_62
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_63
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_ABRT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_ALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_BUS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_CHLD
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_CONT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_DANGER
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_EMT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_FPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_GRANT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_HUP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_ILL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_IO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_LOST
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_LWP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_MSG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_PHONE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_PIPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_POLL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_PRIO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_PROF
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_PWR
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_QUIT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_RETRACT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_SAK
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_SEGV
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_SOUND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_SYS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_TERM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_TSTP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_TTIN
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_TTOU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_URG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_USR1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_USR2
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_VTALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_WAITING
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_WINCH
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_WIND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_XCPU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to gen_XFSZ
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 33
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 34
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 35
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 36
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 37
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 38
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 39
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 40
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 41
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 42
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 43
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 44
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 45
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 46
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 47
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 48
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 49
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 50
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 51
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 52
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 53
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 54
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 55
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 56
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 57
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 58
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 59
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 60
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 61
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 62
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of 63
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of ABRT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of ALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of BUS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of CHLD
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of CONT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of DANGER
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of EMT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of FPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of GRANT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of HUP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of ILL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of IO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of LOST
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of LWP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of MSG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of PHONE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of PIPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of POLL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of PRIO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of PROF
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of PWR
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of QUIT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of RETRACT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of SAK
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of SEGV
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of SOUND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of SYS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of TERM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of TSTP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of TTIN
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of TTOU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of URG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of USR1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of USR2
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of VTALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of WAITING
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of WINCH
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of WIND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of XCPU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: reverse to handler of XFSZ
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 33
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 34
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 35
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 36
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 37
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 38
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 39
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 40
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 41
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 42
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 43
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 44
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 45
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 46
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 47
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 48
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 49
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 50
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 51
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 52
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 53
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 54
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 55
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 56
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 57
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 58
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 59
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 60
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 61
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 62
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal 63
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal ABRT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal ALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal BUS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal CHLD
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal CONT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal DANGER
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal EMT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal FPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal GRANT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal HUP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal ILL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal IO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal LOST
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal LWP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal MSG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal PHONE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal PIPE
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal POLL
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal PRIO
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal PROF
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal PWR
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal QUIT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal RETRACT
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal SAK
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal SEGV
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal SOUND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal SYS
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal TERM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal TSTP
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal TTIN
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal TTOU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal URG
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal USR1
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal USR2
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal VTALRM
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal WAITING
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal WINCH
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal WIND
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal XCPU
PASS -> UNRESOLVED: gdb.reverse/sigall-precsave.exp: send signal XFSZ
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: advance to factorial
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: advance to marker2
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: finish to main
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: reload core file
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: reverse-advance to final return of factorial
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: reverse-advance to marker2
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: reverse-finish from marker2
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: reverse-until to entry of factorial
PASS -> FAIL: gdb.reverse/until-precsave.exp: run to end of main
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: set reverse execution
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: until factorial, recursive function
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: until func, not called by current frame
PASS -> UNRESOLVED: gdb.reverse/until-precsave.exp: until line number
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 -> 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=808ebe15>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=808ebe15>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove cleanups from solib-target.c
@ 2019-01-17 17:50 sergiodj+buildbot
2019-01-17 19:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-18 0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add compunits range adapter to objfile
@ 2019-01-18 0:03 sergiodj+buildbot
2019-01-18 3:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make psymtab range adapter a method on objfile
@ 2019-01-18 0:16 sergiodj+buildbot
2019-01-18 4:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make minimal symbol range adapter a method on objfile
@ 2019-01-18 0:41 sergiodj+buildbot
2019-01-18 7:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change all_objfiles_safe adapter to be a method on program_space
@ 2019-01-18 1:13 sergiodj+buildbot
2019-01-18 1:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-18 1:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7e955d83c4128ec773d84b92487ed1cdfed09938 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7e955d83c4128ec773d84b92487ed1cdfed09938
Change all_objfiles_safe adapter to be a method on program_space
This changes the all_objfiles_safe range adapter to be a method on the
program space, and fixes up all the users.
gdb/ChangeLog
2019-01-15 Tom Tromey <tom@tromey.com>
* progspace.h (program_space) <objfiles_safe_range>: New
typedef.
<objfiles_safe>: New method.
* objfiles.h (class all_objfiles_safe): Remove.
* objfiles.c (free_all_objfiles, objfile_purge_solibs): Update.
* jit.c (jit_inferior_exit_hook): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Simplify minsym iteration
@ 2019-01-18 5:48 sergiodj+buildbot
2019-01-18 6:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-18 5:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 604b1bfb46e62d561698397cb5499b487eb0db34 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 604b1bfb46e62d561698397cb5499b487eb0db34
Simplify minsym iteration
This simplifies the minimal symbol iterator, by using
minimal_symbol_count and just doing a somewhat ordinary array-like
iteration. array_view is nearly usable, except that it is more
convenient for this iterator to return pointers rather than
references.
gdb/ChangeLog
2019-01-16 Tom Tromey <tom@tromey.com>
* objfiles.h (class objfile_msymbols) <iterator>: Change argument
type. Remove no-argument constructor.
<iterator::operator++>: Simplify.
<begin>: Update.
<end>: Use minimal_symbol_count.
^ permalink raw reply [flat|nested] 4390+ 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 18:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [MIPS] fix typo in mips_arch_choices.
@ 2019-01-20 2:52 sergiodj+buildbot
2019-01-20 3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix spelling mistakes in BFD library.
@ 2019-01-21 12:52 sergiodj+buildbot
2019-01-21 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove duplicate or commented-out #includes
@ 2019-01-21 18:41 sergiodj+buildbot
2019-01-21 19:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove the EXTERN define from stabsread.h
@ 2019-01-22 23:15 sergiodj+buildbot
2019-01-23 0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Include compile-internal.h in gcc-c-plugin.h
@ 2019-01-23 4:20 sergiodj+buildbot
2019-01-23 5:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 4:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 951d1049fab99c36b2ea827e4eaf954ee1869794 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 951d1049fab99c36b2ea827e4eaf954ee1869794
Include compile-internal.h in gcc-c-plugin.h
gcc-c-plugin.h refers to some types defined in compile-internal.h.
This patch changes the former to include the latter.
gdb/ChangeLog
2019-01-22 Tom Tromey <tom@tromey.com>
* compile/gcc-c-plugin.h: Include compile-internal.h.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Do not include py-ref.h in most files
@ 2019-01-23 4:41 sergiodj+buildbot
2019-01-23 9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove a comment in compile/compile-cplus-types.c
@ 2019-01-23 5:55 sergiodj+buildbot
2019-01-23 6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 5:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7af7e9b5d8f9dd8f994d59923158d24d77a54bbe ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 7af7e9b5d8f9dd8f994d59923158d24d77a54bbe
Remove a comment in compile/compile-cplus-types.c
The include sorter can't handle multi-line comments on the same line
as a #include. This patch removes the only such comment.
In general I think these sorts of comments do not provide much value:
more often than not, I find that the comment is obsolete in one way or
another, and so the include sorter removes them in most cases.
gdb/ChangeLog
2019-01-22 Tom Tromey <tom@tromey.com>
* compile/compile-cplus-types.c: Remove a comment by #include.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] AArch64: Ensure lwp info is created zeroed
@ 2019-01-23 12:06 sergiodj+buildbot
2019-01-23 18:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Updated translations for some of the binutils subdirectory.
@ 2019-01-23 16:32 sergiodj+buildbot
2019-01-23 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-23 16:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d99386305c5420754e84b9e6073cb061922f4a27 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: d99386305c5420754e84b9e6073cb061922f4a27
Updated translations for some of the binutils subdirectory.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove a warning from symtab.c
@ 2019-01-23 17:48 sergiodj+buildbot
2019-01-23 19:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Rename ESC -> ESC_PARENS
@ 2019-01-23 19:30 sergiodj+buildbot
2019-01-23 20:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce forward_scope_exit
@ 2019-01-23 19:52 sergiodj+buildbot
2019-01-23 23:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove remaining cleanup from gdb/breakpoint.c
@ 2019-01-23 20:56 sergiodj+buildbot
2019-01-24 4:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove make_bpstat_clear_actions_cleanup
@ 2019-01-23 21:21 sergiodj+buildbot
2019-01-24 7:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove cleanup_delete_std_terminate_breakpoint
@ 2019-01-23 21:33 sergiodj+buildbot
2019-01-24 8:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update an obsolete cleanup comment
@ 2019-01-23 22:51 sergiodj+buildbot
2019-01-24 15:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update cleanup comment in ui-out.h
@ 2019-01-23 23:02 sergiodj+buildbot
2019-01-24 16:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use SCOPE_EXIT in gdbarch-selftest.c
@ 2019-01-24 1:46 sergiodj+buildbot
2019-01-24 2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-24 1:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e587ef421eb7e009c6a69da55c269e9df45093e4 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: e587ef421eb7e009c6a69da55c269e9df45093e4
Use SCOPE_EXIT in gdbarch-selftest.c
Replace the custom local class with a SCOPE_EXIT.
gdb/ChangeLog:
2019-01-23 Pedro Alves <palves@redhat.com>
* gdbarch-selftests.c (struct on_exit): Use SCOPE_EXIT.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] AArch64 AAPCS: Ignore static members
@ 2019-01-24 8:41 sergiodj+buildbot
2019-01-24 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-01-24 8:41 [binutils-gdb] AArch64 AAPCS: Ignore static members sergiodj+buildbot
@ 2019-01-24 19:20 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-24 19:20 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7339>
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/Debian-s390x-native-gdbserver-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
============================
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=ee0c6fa0>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=ee0c6fa0>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] target_pass_signals/target_program_signals: Use gdb::array_view
@ 2019-01-24 21:28 sergiodj+buildbot
2019-01-24 21:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-24 21:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT adc6a863a9c6c828425d63b12d553f0e8f21e350 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: adc6a863a9c6c828425d63b12d553f0e8f21e350
target_pass_signals/target_program_signals: Use gdb::array_view
This replaces the pointer and length parameters of target_pass_signals
and target_program_signals with a gdb::array_view parameter, and fixes
the fallout.
In infrun.c, the signal_stop, signal_print, signal_program,
signal_catch, signal_pass globals are currently pointers to
heap-allocated memory. I see no point in that, so I converted them to
arrays. This allows simplifying the calls to
target_pass_signals/target_program_signals, since we can pass the
array directly, which can implicitly convert to gdb::array_view.
gdb/ChangeLog:
2019-01-24 Pedro Alves <palves@redhat.com>
* infrun.c (signal_stop, signal_print, signal_program)
(signal_catch, signal_pass): Now arrays instead of pointers.
(update_signals_program_target, do_target_resume)
(signal_catch_update, handle_command, _initialize_infrun): Adjust.
* linux-nat.c (linux_nat_target::pass_signals)
(linux_nat_target::create_inferior, linux_nat_target::attach):
Adjust.
* linux-nat.h (linux_nat_target::pass_signals): Adjust.
* nto-procfs.c (nto_procfs_target::pass_signals): Adjust.
* procfs.c (procfs_target::pass_signals): Adjust.
* record-full.c (record_full_target::resume): Adjust.
* remote.c (remote_target::pass_signals)
(remote_target::program_signals): Adjust.
* target-debug.h (target_debug_print_signals): Now takes a
gdb::array_view as parameter. Adjust.
* target.h (target_ops) <pass_signals, program_signals>: Replace
pointer and length parameters with gdb::array_view.
(target_pass_signals, target_program_signals): Likewise.
* target-delegates.c: Regenerate.
^ permalink raw reply [flat|nested] 4390+ 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 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Add new STZGM instruction for Armv8.5-A Memory Tagging Extension.
@ 2019-01-25 17:11 sergiodj+buildbot
2019-01-25 17:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 17:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 20a4ca5524b9bde2f5dfb19661570c25a3b05e5d ***
Author: Sudi Das <sudi.das@arm.com>
Branch: master
Commit: 20a4ca5524b9bde2f5dfb19661570c25a3b05e5d
AArch64: Add new STZGM instruction for 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 adds the new STZGM instruction.
STGZM Xt, [<Xn|SP>]
Committed on behalf of Sudakshina Das.
*** gas/ChangeLog ***
* testsuite/gas/aarch64/armv8_5-a-memtag.d: New tests for stzgm.
* 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-asm-2.c: Regenerated.
* aarch64-dis-2.c: Likewise.
* aarch64-opc-2.c: Likewise.
* aarch64-tbl.h (aarch64_opcode): Add new stzgm.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Update create-version.sh to use common/version.h
@ 2019-01-25 23:52 sergiodj+buildbot
2019-01-25 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-25 23:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2f5c153e0ce1b0d3aa0c12724cbc8c3b11d4095f ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 2f5c153e0ce1b0d3aa0c12724cbc8c3b11d4095f
Update create-version.sh to use common/version.h
This changes create-version.sh to have the generated file use
common/version.h as the file name.
gdb/ChangeLog
2019-01-25 Tom Tromey <tom@tromey.com>
* common/create-version.sh: Use common/version.h.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Normalize includes to use common/
@ 2019-01-26 1:11 sergiodj+buildbot
2019-01-26 1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-26 1:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0747795c085d3b2a35da6bb474f32c58ce1b70c8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 0747795c085d3b2a35da6bb474f32c58ce1b70c8
Normalize includes to use common/
This changes all includes to use the form "common/filename.h" rather
than just "filename.h". This was written by a script.
gdb/ChangeLog
2019-01-25 Tom Tromey <tom@tromey.com>
* xtensa-linux-nat.c: Fix common/ includes.
* xml-support.h: Fix common/ includes.
* xml-support.c: Fix common/ includes.
* x86-linux-nat.c: Fix common/ includes.
* windows-nat.c: Fix common/ includes.
* varobj.h: Fix common/ includes.
* varobj.c: Fix common/ includes.
* value.c: Fix common/ includes.
* valops.c: Fix common/ includes.
* utils.c: Fix common/ includes.
* unittests/xml-utils-selftests.c: Fix common/ includes.
* unittests/utils-selftests.c: Fix common/ includes.
* unittests/unpack-selftests.c: Fix common/ includes.
* unittests/tracepoint-selftests.c: Fix common/ includes.
* unittests/style-selftests.c: Fix common/ includes.
* unittests/string_view-selftests.c: Fix common/ includes.
* unittests/scoped_restore-selftests.c: Fix common/ includes.
* unittests/scoped_mmap-selftests.c: Fix common/ includes.
* unittests/scoped_fd-selftests.c: Fix common/ includes.
* unittests/rsp-low-selftests.c: Fix common/ includes.
* unittests/parse-connection-spec-selftests.c: Fix common/
includes.
* unittests/optional-selftests.c: Fix common/ includes.
* unittests/offset-type-selftests.c: Fix common/ includes.
* unittests/observable-selftests.c: Fix common/ includes.
* unittests/mkdir-recursive-selftests.c: Fix common/ includes.
* unittests/memrange-selftests.c: Fix common/ includes.
* unittests/memory-map-selftests.c: Fix common/ includes.
* unittests/lookup_name_info-selftests.c: Fix common/ includes.
* unittests/function-view-selftests.c: Fix common/ includes.
* unittests/environ-selftests.c: Fix common/ includes.
* unittests/copy_bitwise-selftests.c: Fix common/ includes.
* unittests/common-utils-selftests.c: Fix common/ includes.
* unittests/cli-utils-selftests.c: Fix common/ includes.
* unittests/array-view-selftests.c: Fix common/ includes.
* ui-file.c: Fix common/ includes.
* tui/tui-io.c: Fix common/ includes.
* tracepoint.h: Fix common/ includes.
* tracepoint.c: Fix common/ includes.
* tracefile-tfile.c: Fix common/ includes.
* top.h: Fix common/ includes.
* top.c: Fix common/ includes.
* thread.c: Fix common/ includes.
* target/waitstatus.h: Fix common/ includes.
* target/waitstatus.c: Fix common/ includes.
* target.h: Fix common/ includes.
* target.c: Fix common/ includes.
* target-memory.c: Fix common/ includes.
* target-descriptions.c: Fix common/ includes.
* symtab.h: Fix common/ includes.
* symfile.c: Fix common/ includes.
* stap-probe.c: Fix common/ includes.
* spu-linux-nat.c: Fix common/ includes.
* sparc-nat.c: Fix common/ includes.
* source.c: Fix common/ includes.
* solib.c: Fix common/ includes.
* solib-target.c: Fix common/ includes.
* ser-unix.c: Fix common/ includes.
* ser-tcp.c: Fix common/ includes.
* ser-pipe.c: Fix common/ includes.
* ser-base.c: Fix common/ includes.
* selftest-arch.c: Fix common/ includes.
* s12z-tdep.c: Fix common/ includes.
* rust-exp.y: Fix common/ includes.
* rs6000-aix-tdep.c: Fix common/ includes.
* riscv-tdep.c: Fix common/ includes.
* remote.c: Fix common/ includes.
* remote-notif.h: Fix common/ includes.
* remote-fileio.h: Fix common/ includes.
* remote-fileio.c: Fix common/ includes.
* regcache.h: Fix common/ includes.
* regcache.c: Fix common/ includes.
* record-btrace.c: Fix common/ includes.
* python/python.c: Fix common/ includes.
* python/py-type.c: Fix common/ includes.
* python/py-inferior.c: Fix common/ includes.
* progspace.h: Fix common/ includes.
* producer.c: Fix common/ includes.
* procfs.c: Fix common/ includes.
* proc-api.c: Fix common/ includes.
* printcmd.c: Fix common/ includes.
* ppc-linux-nat.c: Fix common/ includes.
* parser-defs.h: Fix common/ includes.
* osdata.c: Fix common/ includes.
* obsd-nat.c: Fix common/ includes.
* nat/x86-linux.c: Fix common/ includes.
* nat/x86-linux-dregs.c: Fix common/ includes.
* nat/x86-dregs.h: Fix common/ includes.
* nat/x86-dregs.c: Fix common/ includes.
* nat/ppc-linux.c: Fix common/ includes.
* nat/mips-linux-watch.h: Fix common/ includes.
* nat/mips-linux-watch.c: Fix common/ includes.
* nat/linux-waitpid.c: Fix common/ includes.
* nat/linux-ptrace.h: Fix common/ includes.
* nat/linux-ptrace.c: Fix common/ includes.
* nat/linux-procfs.c: Fix common/ includes.
* nat/linux-personality.c: Fix common/ includes.
* nat/linux-osdata.c: Fix common/ includes.
* nat/linux-namespaces.c: Fix common/ includes.
* nat/linux-btrace.h: Fix common/ includes.
* nat/linux-btrace.c: Fix common/ includes.
* nat/fork-inferior.c: Fix common/ includes.
* nat/amd64-linux-siginfo.c: Fix common/ includes.
* nat/aarch64-sve-linux-ptrace.c: Fix common/ includes.
* nat/aarch64-linux.c: Fix common/ includes.
* nat/aarch64-linux-hw-point.h: Fix common/ includes.
* nat/aarch64-linux-hw-point.c: Fix common/ includes.
* namespace.h: Fix common/ includes.
* mips-linux-tdep.c: Fix common/ includes.
* minsyms.c: Fix common/ includes.
* mi/mi-parse.h: Fix common/ includes.
* mi/mi-main.c: Fix common/ includes.
* mi/mi-cmd-env.c: Fix common/ includes.
* memrange.h: Fix common/ includes.
* memattr.c: Fix common/ includes.
* maint.h: Fix common/ includes.
* maint.c: Fix common/ includes.
* main.c: Fix common/ includes.
* machoread.c: Fix common/ includes.
* location.c: Fix common/ includes.
* linux-thread-db.c: Fix common/ includes.
* linux-nat.c: Fix common/ includes.
* linux-fork.c: Fix common/ includes.
* inline-frame.c: Fix common/ includes.
* infrun.c: Fix common/ includes.
* inflow.c: Fix common/ includes.
* inferior.h: Fix common/ includes.
* inferior.c: Fix common/ includes.
* infcmd.c: Fix common/ includes.
* inf-ptrace.c: Fix common/ includes.
* inf-child.c: Fix common/ includes.
* ia64-linux-nat.c: Fix common/ includes.
* i387-tdep.c: Fix common/ includes.
* i386-tdep.c: Fix common/ includes.
* i386-linux-tdep.c: Fix common/ includes.
* i386-linux-nat.c: Fix common/ includes.
* i386-go32-tdep.c: Fix common/ includes.
* i386-fbsd-tdep.c: Fix common/ includes.
* i386-fbsd-nat.c: Fix common/ includes.
* guile/scm-type.c: Fix common/ includes.
* guile/guile.c: Fix common/ includes.
* go32-nat.c: Fix common/ includes.
* gnu-nat.c: Fix common/ includes.
* gdbthread.h: Fix common/ includes.
* gdbarch-selftests.c: Fix common/ includes.
* gdb_usleep.c: Fix common/ includes.
* gdb_select.h: Fix common/ includes.
* gdb_bfd.c: Fix common/ includes.
* gcore.c: Fix common/ includes.
* fork-child.c: Fix common/ includes.
* findvar.c: Fix common/ includes.
* fbsd-nat.c: Fix common/ includes.
* event-top.c: Fix common/ includes.
* event-loop.c: Fix common/ includes.
* dwarf2read.c: Fix common/ includes.
* dwarf2loc.c: Fix common/ includes.
* dwarf2-frame.c: Fix common/ includes.
* dwarf-index-cache.c: Fix common/ includes.
* dtrace-probe.c: Fix common/ includes.
* disasm-selftests.c: Fix common/ includes.
* defs.h: Fix common/ includes.
* csky-tdep.c: Fix common/ includes.
* cp-valprint.c: Fix common/ includes.
* cp-support.h: Fix common/ includes.
* cp-support.c: Fix common/ includes.
* corelow.c: Fix common/ includes.
* completer.h: Fix common/ includes.
* completer.c: Fix common/ includes.
* compile/compile.c: Fix common/ includes.
* compile/compile-loc2c.c: Fix common/ includes.
* compile/compile-cplus-types.c: Fix common/ includes.
* compile/compile-cplus-symbols.c: Fix common/ includes.
* command.h: Fix common/ includes.
* cli/cli-dump.c: Fix common/ includes.
* cli/cli-cmds.c: Fix common/ includes.
* charset.c: Fix common/ includes.
* build-id.c: Fix common/ includes.
* btrace.h: Fix common/ includes.
* btrace.c: Fix common/ includes.
* breakpoint.h: Fix common/ includes.
* breakpoint.c: Fix common/ includes.
* ax.h:
(enum agent_op): Fix common/ includes.
* ax-general.c (struct aop_map): Fix common/ includes.
* ax-gdb.c: Fix common/ includes.
* auxv.c: Fix common/ includes.
* auto-load.c: Fix common/ includes.
* arm-tdep.c: Fix common/ includes.
* arch/riscv.c: Fix common/ includes.
* arch/ppc-linux-common.c: Fix common/ includes.
* arch/i386.c: Fix common/ includes.
* arch/arm.c: Fix common/ includes.
* arch/arm-linux.c: Fix common/ includes.
* arch/arm-get-next-pcs.c: Fix common/ includes.
* arch/amd64.c: Fix common/ includes.
* arch/aarch64.c: Fix common/ includes.
* arch/aarch64-insn.c: Fix common/ includes.
* arch-utils.c: Fix common/ includes.
* amd64-windows-tdep.c: Fix common/ includes.
* amd64-tdep.c: Fix common/ includes.
* amd64-sol2-tdep.c: Fix common/ includes.
* amd64-obsd-tdep.c: Fix common/ includes.
* amd64-nbsd-tdep.c: Fix common/ includes.
* amd64-linux-tdep.c: Fix common/ includes.
* amd64-linux-nat.c: Fix common/ includes.
* amd64-fbsd-tdep.c: Fix common/ includes.
* amd64-fbsd-nat.c: Fix common/ includes.
* amd64-dicos-tdep.c: Fix common/ includes.
* amd64-darwin-tdep.c: Fix common/ includes.
* agent.c: Fix common/ includes.
* ada-lang.h: Fix common/ includes.
* ada-lang.c: Fix common/ includes.
* aarch64-tdep.c: Fix common/ includes.
gdb/gdbserver/ChangeLog
2019-01-25 Tom Tromey <tom@tromey.com>
* win32-low.c: Fix common/ includes.
* win32-i386-low.c: Fix common/ includes.
* tracepoint.c: Fix common/ includes.
* thread-db.c: Fix common/ includes.
* target.h: Fix common/ includes.
* symbol.c: Fix common/ includes.
* spu-low.c: Fix common/ includes.
* server.h: Fix common/ includes.
* server.c: Fix common/ includes.
* remote-utils.c: Fix common/ includes.
* regcache.h: Fix common/ includes.
* regcache.c: Fix common/ includes.
* nto-x86-low.c: Fix common/ includes.
* notif.h: Fix common/ includes.
* mem-break.h: Fix common/ includes.
* lynx-low.c: Fix common/ includes.
* lynx-i386-low.c: Fix common/ includes.
* linux-x86-tdesc-selftest.c: Fix common/ includes.
* linux-x86-low.c: Fix common/ includes.
* linux-low.c: Fix common/ includes.
* inferiors.h: Fix common/ includes.
* i387-fp.c: Fix common/ includes.
* hostio.c: Fix common/ includes.
* hostio-errno.c: Fix common/ includes.
* gdbthread.h: Fix common/ includes.
* gdbreplay.c: Fix common/ includes.
* fork-child.c: Fix common/ includes.
* event-loop.c: Fix common/ includes.
* ax.c:
(enum gdb_agent_op): Fix common/ includes.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Replace contribution list in CONTRIBUTE file with link
@ 2019-01-28 10:30 sergiodj+buildbot
2019-01-28 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate
@ 2019-01-28 16:17 sergiodj+buildbot
2019-01-28 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-28 16:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 453f8e1e4918171bc12e4d03aab7ee8360dfcfef ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 453f8e1e4918171bc12e4d03aab7ee8360dfcfef
Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate
Fedora Rawhide has just switched to GCC9, and now GDB doesn't compile
because of a BFD warning:
BUILDSTDERR: ../../bfd/elf32-arm.c: In function 'elf32_arm_final_link_relocate':
BUILDSTDERR: ../../bfd/elf32-arm.c:10907:10: error: absolute value function 'labs' given an argument of type 'bfd_signed_vma' {aka 'long long int'} but has parameter of type 'long int' which may cause truncation of value [-Werror=absolute-value]
BUILDSTDERR: 10907 | value = labs (relocation);
BUILDSTDERR: | ^~~~
You can take a look at the full build log here:
https://kojipkgs.fedoraproject.org//work/tasks/4828/32174828/build.log
The fix is (apparently) simple: instead of using 'labs', we should use
'llabs', since we're passing a 'bfd_signed_vma' to it, which is at
least a 'long long int', as far as I have checked. This is what this
patch does.
bfd/ChangeLog:
2019-01-25 Sergio Durigan Junior <sergiodj@redhat.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
of 'labs' (and fix GCC warning).
^ permalink raw reply [flat|nested] 4390+ 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 19:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [PR gdb/23985] Fix libinproctrace.so build
@ 2019-01-30 18:16 sergiodj+buildbot
2019-01-30 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] S/390: Implement instruction set extensions
@ 2019-01-31 17:04 sergiodj+buildbot
2019-01-31 17:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-31 17:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fc60b8c806a641cc2260c8b26f389f2abdc99dda ***
Author: Andreas Krebbel <krebbel@linux.ibm.com>
Branch: master
Commit: fc60b8c806a641cc2260c8b26f389f2abdc99dda
S/390: Implement instruction set extensions
opcodes/ChangeLog:
2019-01-31 Andreas Krebbel <krebbel@linux.ibm.com>
* s390-mkopc.c (main): Accept arch13 as cpu string.
* s390-opc.c: Add new instruction formats and instruction opcode
masks.
* s390-opc.txt: Add new arch13 instructions.
include/ChangeLog:
2019-01-31 Andreas Krebbel <krebbel@linux.ibm.com>
* opcode/s390.h (enum s390_opcode_cpu_val): Add
S390_OPCODE_ARCH13.
gas/ChangeLog:
2019-01-31 Andreas Krebbel <krebbel@linux.ibm.com>
* config/tc-s390.c (s390_parse_cpu): New entry for arch13.
* doc/c-s390.texi: Document arch13 march option.
* testsuite/gas/s390/s390.exp: Run the arch13 related tests.
* testsuite/gas/s390/zarch-arch13.d: New test.
* testsuite/gas/s390/zarch-arch13.s: New test.
* testsuite/gas/s390/zarch-z13.d: Expect the renamed mnemonics
also for z13.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Readline: Cleanup some warnings
@ 2019-01-31 18:19 sergiodj+buildbot
2019-01-31 18:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-01-31 18:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 16bfc2f9705b40a11052f465b83fea2ec0904ce5 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 16bfc2f9705b40a11052f465b83fea2ec0904ce5
Readline: Cleanup some warnings
Cleanup the readline warnings that gdb buildbot complains about.
To prevent wcwidth missing declaration warnings, add the SOURCE /
EXTENSION macros to config.in that have already checked for in
configure.
Ensure pid is a long before printing as one. Also fix GNU style.
Check the return value of write the same way as history_do_write ().
These changes are consistent with upstream readline.
readline/ChangeLog.gdb:
* config.h.in: Add SOURCE/EXTENSION macros.
* histfile.c (history_truncate_file): Check return of write.
* util.c (_rl_tropen): Ensure pid is long.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Hoist assertion in target_stack::unpush
@ 2019-02-05 13:58 sergiodj+buildbot
2019-02-05 14:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix leak of identifier in macro definition.
@ 2019-02-06 20:21 sergiodj+buildbot
2019-02-06 21:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Factorize macro definition code in macrotab.c
@ 2019-02-06 20:32 sergiodj+buildbot
2019-02-06 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Normalize include guards in gdb
@ 2019-02-07 11:00 sergiodj+buildbot
2019-02-07 11:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 11:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1a5c25988eabb35e0e40ea484b1eea029d9b7f53 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1a5c25988eabb35e0e40ea484b1eea029d9b7f53
Normalize include guards in gdb
While working on my other scripts to deal with gdb headers, I noticed
that some files were missing include guards. I wrote a script to add
the missing ones, but found that using the obvious names for the
guards ran into clashes -- for example, gdb/nat/linux-nat.h used
"LINUX_NAT_H", but this was also the script's choice for
gdb/linux-nat.h.
So, I changed the script to normalize all include guards in gdb. This
patch is the result.
As usual the script is available here:
https://github.com/tromey/gdb-refactoring-scripts
Tested by rebuilding; I also ran it through "Fedora-x86_64-m64" on the
buildbot.
gdb/ChangeLog
2019-02-07 Tom Tromey <tom@tromey.com>
* yy-remap.h: Add include guard.
* xtensa-tdep.h: Add include guard.
* xcoffread.h: Rename include guard.
* varobj-iter.h: Add include guard.
* tui/tui.h: Rename include guard.
* tui/tui-winsource.h: Rename include guard.
* tui/tui-wingeneral.h: Rename include guard.
* tui/tui-windata.h: Rename include guard.
* tui/tui-win.h: Rename include guard.
* tui/tui-stack.h: Rename include guard.
* tui/tui-source.h: Rename include guard.
* tui/tui-regs.h: Rename include guard.
* tui/tui-out.h: Rename include guard.
* tui/tui-layout.h: Rename include guard.
* tui/tui-io.h: Rename include guard.
* tui/tui-hooks.h: Rename include guard.
* tui/tui-file.h: Rename include guard.
* tui/tui-disasm.h: Rename include guard.
* tui/tui-data.h: Rename include guard.
* tui/tui-command.h: Rename include guard.
* tic6x-tdep.h: Add include guard.
* target/waitstatus.h: Rename include guard.
* target/wait.h: Rename include guard.
* target/target.h: Rename include guard.
* target/resume.h: Rename include guard.
* target-float.h: Rename include guard.
* stabsread.h: Add include guard.
* rs6000-tdep.h: Add include guard.
* riscv-fbsd-tdep.h: Add include guard.
* regformats/regdef.h: Rename include guard.
* record.h: Rename include guard.
* python/python.h: Rename include guard.
* python/python-internal.h: Rename include guard.
* python/py-stopevent.h: Rename include guard.
* python/py-ref.h: Rename include guard.
* python/py-record.h: Rename include guard.
* python/py-record-full.h: Rename include guard.
* python/py-record-btrace.h: Rename include guard.
* python/py-instruction.h: Rename include guard.
* python/py-events.h: Rename include guard.
* python/py-event.h: Rename include guard.
* procfs.h: Add include guard.
* proc-utils.h: Add include guard.
* p-lang.h: Add include guard.
* or1k-tdep.h: Rename include guard.
* observable.h: Rename include guard.
* nto-tdep.h: Rename include guard.
* nat/x86-linux.h: Rename include guard.
* nat/x86-linux-dregs.h: Rename include guard.
* nat/x86-gcc-cpuid.h: Add include guard.
* nat/x86-dregs.h: Rename include guard.
* nat/x86-cpuid.h: Rename include guard.
* nat/ppc-linux.h: Rename include guard.
* nat/mips-linux-watch.h: Rename include guard.
* nat/linux-waitpid.h: Rename include guard.
* nat/linux-ptrace.h: Rename include guard.
* nat/linux-procfs.h: Rename include guard.
* nat/linux-osdata.h: Rename include guard.
* nat/linux-nat.h: Rename include guard.
* nat/linux-namespaces.h: Rename include guard.
* nat/linux-btrace.h: Rename include guard.
* nat/glibc_thread_db.h: Rename include guard.
* nat/gdb_thread_db.h: Rename include guard.
* nat/gdb_ptrace.h: Rename include guard.
* nat/fork-inferior.h: Rename include guard.
* nat/amd64-linux-siginfo.h: Rename include guard.
* nat/aarch64-sve-linux-sigcontext.h: Rename include guard.
* nat/aarch64-sve-linux-ptrace.h: Rename include guard.
* nat/aarch64-linux.h: Rename include guard.
* nat/aarch64-linux-hw-point.h: Rename include guard.
* mn10300-tdep.h: Add include guard.
* mips-linux-tdep.h: Add include guard.
* mi/mi-parse.h: Rename include guard.
* mi/mi-out.h: Rename include guard.
* mi/mi-main.h: Rename include guard.
* mi/mi-interp.h: Rename include guard.
* mi/mi-getopt.h: Rename include guard.
* mi/mi-console.h: Rename include guard.
* mi/mi-common.h: Rename include guard.
* mi/mi-cmds.h: Rename include guard.
* mi/mi-cmd-break.h: Rename include guard.
* m2-lang.h: Add include guard.
* location.h: Rename include guard.
* linux-record.h: Rename include guard.
* linux-nat.h: Add include guard.
* linux-fork.h: Add include guard.
* i386-darwin-tdep.h: Rename include guard.
* hppa-linux-offsets.h: Add include guard.
* guile/guile.h: Rename include guard.
* guile/guile-internal.h: Rename include guard.
* gnu-nat.h: Rename include guard.
* gdb-stabs.h: Rename include guard.
* frv-tdep.h: Add include guard.
* f-lang.h: Add include guard.
* event-loop.h: Add include guard.
* darwin-nat.h: Rename include guard.
* cp-abi.h: Rename include guard.
* config/sparc/nm-sol2.h: Rename include guard.
* config/nm-nto.h: Rename include guard.
* config/nm-linux.h: Add include guard.
* config/i386/nm-i386gnu.h: Rename include guard.
* config/djgpp/nl_types.h: Rename include guard.
* config/djgpp/langinfo.h: Rename include guard.
* compile/gcc-cp-plugin.h: Add include guard.
* compile/gcc-c-plugin.h: Add include guard.
* compile/compile.h: Rename include guard.
* compile/compile-object-run.h: Rename include guard.
* compile/compile-object-load.h: Rename include guard.
* compile/compile-internal.h: Rename include guard.
* compile/compile-cplus.h: Rename include guard.
* compile/compile-c.h: Rename include guard.
* common/xml-utils.h: Rename include guard.
* common/x86-xstate.h: Rename include guard.
* common/version.h: Rename include guard.
* common/vec.h: Rename include guard.
* common/tdesc.h: Rename include guard.
* common/selftest.h: Rename include guard.
* common/scoped_restore.h: Rename include guard.
* common/scoped_mmap.h: Rename include guard.
* common/scoped_fd.h: Rename include guard.
* common/safe-iterator.h: Rename include guard.
* common/run-time-clock.h: Rename include guard.
* common/refcounted-object.h: Rename include guard.
* common/queue.h: Rename include guard.
* common/ptid.h: Rename include guard.
* common/print-utils.h: Rename include guard.
* common/preprocessor.h: Rename include guard.
* common/pathstuff.h: Rename include guard.
* common/observable.h: Rename include guard.
* common/netstuff.h: Rename include guard.
* common/job-control.h: Rename include guard.
* common/host-defs.h: Rename include guard.
* common/gdb_wait.h: Rename include guard.
* common/gdb_vecs.h: Rename include guard.
* common/gdb_unlinker.h: Rename include guard.
* common/gdb_unique_ptr.h: Rename include guard.
* common/gdb_tilde_expand.h: Rename include guard.
* common/gdb_sys_time.h: Rename include guard.
* common/gdb_string_view.h: Rename include guard.
* common/gdb_splay_tree.h: Rename include guard.
* common/gdb_setjmp.h: Rename include guard.
* common/gdb_ref_ptr.h: Rename include guard.
* common/gdb_optional.h: Rename include guard.
* common/gdb_locale.h: Rename include guard.
* common/gdb_assert.h: Rename include guard.
* common/filtered-iterator.h: Rename include guard.
* common/filestuff.h: Rename include guard.
* common/fileio.h: Rename include guard.
* common/environ.h: Rename include guard.
* common/common-utils.h: Rename include guard.
* common/common-types.h: Rename include guard.
* common/common-regcache.h: Rename include guard.
* common/common-inferior.h: Rename include guard.
* common/common-gdbthread.h: Rename include guard.
* common/common-exceptions.h: Rename include guard.
* common/common-defs.h: Rename include guard.
* common/common-debug.h: Rename include guard.
* common/cleanups.h: Rename include guard.
* common/buffer.h: Rename include guard.
* common/btrace-common.h: Rename include guard.
* common/break-common.h: Rename include guard.
* cli/cli-utils.h: Rename include guard.
* cli/cli-style.h: Rename include guard.
* cli/cli-setshow.h: Rename include guard.
* cli/cli-script.h: Rename include guard.
* cli/cli-interp.h: Rename include guard.
* cli/cli-decode.h: Rename include guard.
* cli/cli-cmds.h: Rename include guard.
* charset-list.h: Add include guard.
* buildsym-legacy.h: Rename include guard.
* bfin-tdep.h: Add include guard.
* ax.h: Rename include guard.
* arm-linux-tdep.h: Add include guard.
* arm-fbsd-tdep.h: Add include guard.
* arch/xtensa.h: Rename include guard.
* arch/tic6x.h: Add include guard.
* arch/i386.h: Add include guard.
* arch/arm.h: Rename include guard.
* arch/arm-linux.h: Rename include guard.
* arch/arm-get-next-pcs.h: Rename include guard.
* arch/amd64.h: Add include guard.
* arch/aarch64-insn.h: Rename include guard.
* arch-utils.h: Rename include guard.
* annotate.h: Add include guard.
* amd64-darwin-tdep.h: Rename include guard.
* aarch64-linux-tdep.h: Add include guard.
* aarch64-fbsd-tdep.h: Add include guard.
* aarch32-linux-nat.h: Add include guard.
gdb/gdbserver/ChangeLog
2019-02-07 Tom Tromey <tom@tromey.com>
* x86-tdesc.h: Rename include guard.
* x86-low.h: Add include guard.
* wincecompat.h: Rename include guard.
* win32-low.h: Add include guard.
* utils.h: Rename include guard.
* tracepoint.h: Rename include guard.
* tdesc.h: Rename include guard.
* target.h: Rename include guard.
* server.h: Rename include guard.
* remote-utils.h: Rename include guard.
* regcache.h: Rename include guard.
* nto-low.h: Rename include guard.
* notif.h: Add include guard.
* mem-break.h: Rename include guard.
* lynx-low.h: Add include guard.
* linux-x86-tdesc.h: Add include guard.
* linux-s390-tdesc.h: Add include guard.
* linux-ppc-tdesc-init.h: Add include guard.
* linux-low.h: Add include guard.
* linux-aarch64-tdesc.h: Add include guard.
* linux-aarch32-low.h: Add include guard.
* inferiors.h: Rename include guard.
* i387-fp.h: Rename include guard.
* hostio.h: Rename include guard.
* gdbthread.h: Rename include guard.
* gdb_proc_service.h: Rename include guard.
* event-loop.h: Rename include guard.
* dll.h: Rename include guard.
* debug.h: Rename include guard.
* ax.h: Rename include guard.
^ permalink raw reply [flat|nested] 4390+ 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 15:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 17:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdbserver: When attaching, add process before lwps
@ 2019-02-07 15:06 sergiodj+buildbot
2019-02-07 18:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-08 0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Updated Swedish translation for the opcodes sub-directory
@ 2019-02-07 19:10 sergiodj+buildbot
2019-02-07 19:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 19:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4a83b61091168f7df0f58009dda67b9e36f8a5f7 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: 4a83b61091168f7df0f58009dda67b9e36f8a5f7
Updated Swedish translation for the opcodes sub-directory
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] SPARC: fix PR ld/18841
@ 2019-02-07 21:52 sergiodj+buildbot
2019-02-07 23:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 21:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b2abe1bd8149dd9ad64432f620c3a034bf23a5fe ***
Author: Eric Botcazou <ebotcazou@gcc.gnu.org>
Branch: master
Commit: b2abe1bd8149dd9ad64432f620c3a034bf23a5fe
SPARC: fix PR ld/18841
This fixes the last ld failures on SPARC64/Linux:
FAIL: Run pr18841 with libpr18841b.so
FAIL: Run pr18841 with libpr18841c.so
FAIL: Run pr18841 with libpr18841bn.so (-z now)
FAIL: Run pr18841 with libpr18841cn.so (-z now)
by mimicing what has been done on x86-64 and Aarch64 to fix the PR.
bfd/
PR ld/18841
* elf32-sparc.c (elf32_sparc_reloc_type_class): Return
reloc_class_ifunc for ifunc symbols.
* elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-02-07 21:52 [binutils-gdb] SPARC: fix PR ld/18841 sergiodj+buildbot
@ 2019-02-07 23:00 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-07 23:00 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7375>
Commit(s) tested:
b2abe1bd8149dd9ad64432f620c3a034bf23a5fe
Author(s) (in the same order as the commits):
Eric Botcazou <ebotcazou@gcc.gnu.org>
Subject:
SPARC: fix PR ld/18841
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/b2/b2abe1bd8149dd9ad64432f620c3a034bf23a5fe/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function -qualified: cmd complete "b -function argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function -qualified: cmd complete "b -function argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function -qualified: cmd complete "b -function argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function -qualified: tab complete "b -function argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function -qualified: tab complete "b -function argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function -qualified: tab complete "b -function argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: cmd complete "b -function -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: cmd complete "b -function argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: cmd complete "b -function argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: cmd complete "b -function argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: cmd complete "b -function thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: tab complete "b -function -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: tab complete "b -function argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: tab complete "b -function argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: tab complete "b -function argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -function: tab complete "b -function thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label -qualified: cmd complete "b -label argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label -qualified: cmd complete "b -label argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label -qualified: cmd complete "b -label argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label -qualified: tab complete "b -label argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label -qualified: tab complete "b -label argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label -qualified: tab complete "b -label argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: cmd complete "b -label -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: cmd complete "b -label argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: cmd complete "b -label argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: cmd complete "b -label argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: cmd complete "b -label thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: tab complete "b -label -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: tab complete "b -label argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: tab complete "b -label argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: tab complete "b -label argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -label: tab complete "b -label thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line +10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line +10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line +10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line -10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line -10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line -10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line 10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line 10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line 10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: cmd complete "b -line argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line +10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line +10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line +10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line -10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line -10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line -10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line 10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line 10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line 10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line -qualified: tab complete "b -line argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line +10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line +10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line +10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line -10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line -10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line -10 thr"
PASS -> FAIL: 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 10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line 10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line 10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: cmd complete "b -line thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line +10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line +10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line +10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line -10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line -10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line -10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line 10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line 10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line 10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -line: tab complete "b -line thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function -qualified: cmd complete "b -qualified -function argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function -qualified: cmd complete "b -qualified -function argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function -qualified: cmd complete "b -qualified -function argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function -qualified: tab complete "b -qualified -function argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function -qualified: tab complete "b -qualified -function argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function -qualified: tab complete "b -qualified -function argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: cmd complete "b -qualified -function -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: cmd complete "b -qualified -function argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: cmd complete "b -qualified -function argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: cmd complete "b -qualified -function argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: cmd complete "b -qualified -function thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: tab complete "b -qualified -function -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: tab complete "b -qualified -function argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: tab complete "b -qualified -function argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: tab complete "b -qualified -function argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -function: tab complete "b -qualified -function thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label -qualified: cmd complete "b -qualified -label argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label -qualified: cmd complete "b -qualified -label argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label -qualified: cmd complete "b -qualified -label argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label -qualified: tab complete "b -qualified -label argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label -qualified: tab complete "b -qualified -label argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label -qualified: tab complete "b -qualified -label argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: cmd complete "b -qualified -label -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: cmd complete "b -qualified -label argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: cmd complete "b -qualified -label argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: cmd complete "b -qualified -label argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: cmd complete "b -qualified -label thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: tab complete "b -qualified -label -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: tab complete "b -qualified -label argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: tab complete "b -qualified -label argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: tab complete "b -qualified -label argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -label: tab complete "b -qualified -label thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line +10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line +10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line +10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line -10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line -10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line -10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line 10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line 10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line 10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: cmd complete "b -qualified -line argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line +10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line +10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line +10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line -10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line -10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line -10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line 10 -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line 10 -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line 10 -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line -qualified: tab complete "b -qualified -line argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line +10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line +10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line +10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line 10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line 10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line 10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: cmd complete "b -qualified -line thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line +10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line +10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line +10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line -10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line -10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line -10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line 10 "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line 10 -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line 10 thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -line: tab complete "b -qualified -line thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: cmd complete "b -qualified -source argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: cmd complete "b -qualified -source argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: cmd complete "b -qualified -source argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: tab complete "b -qualified -source argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: tab complete "b -qualified -source argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source -qualified: tab complete "b -qualified -source argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: cmd complete "b -qualified -source thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: tab complete "b -qualified -source -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: tab complete "b -qualified -source argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: tab complete "b -qualified -source argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: tab complete "b -qualified -source argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -qualified -source: tab complete "b -qualified -source thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source -qualified: cmd complete "b -source argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source -qualified: cmd complete "b -source argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source -qualified: cmd complete "b -source argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source -qualified: tab complete "b -source argument -qualified -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source -qualified: tab complete "b -source argument -qualified thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source -qualified: tab complete "b -source argument -qualified "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source argument -fun"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source argument thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source argument "
PASS -> FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source thr"
PASS -> FAIL: gdb.linespec/explicit.exp: complete label name with no function: cmd complete "break -label to"
new FAIL: gdb.linespec/explicit.exp: complete label name with no function: compare "break -label top" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/explicit.exp: complete label name with no function: compare "break -label top" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/explicit.exp: complete label name with no function: compare "break -label top" completion list with bp location list: matches
new FAIL: gdb.linespec/explicit.exp: complete label name with no function: compare "break -label top" completion list with bp location list: set breakpoint
PASS -> FAIL: gdb.linespec/explicit.exp: complete label name with no function: tab complete "break -label to"
PASS -> FAIL: gdb.linespec/explicit.exp: complete label name with source file but no function: cmd complete "break -source explicit.c -label to"
new FAIL: gdb.linespec/explicit.exp: complete label name with source file but no function: compare "break -source explicit.c -label top" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/explicit.exp: complete label name with source file but no function: compare "break -source explicit.c -label top" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/explicit.exp: complete label name with source file but no function: compare "break -source explicit.c -label top" completion list with bp location list: matches
new FAIL: gdb.linespec/explicit.exp: complete label name with source file but no function: compare "break -source explicit.c -label top" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete label name with source file but no function: tab complete "break -source explicit.c -label to"
new FAIL: gdb.linespec/explicit.exp: complete label name with wrong source file: "break -source explicit2.c -function myfunction -label top" creates no bp locations: delete all breakpoints in delete_breakpoints
PASS -> FAIL: gdb.linespec/explicit.exp: complete label name with wrong source file: "break -source explicit2.c -function myfunction -label top" creates no bp locations: matches
new FAIL: gdb.linespec/explicit.exp: complete label name with wrong source file: "break -source explicit2.c -function myfunction -label top" creates no bp locations: set breakpoint
PASS -> FAIL: gdb.linespec/explicit.exp: complete label name with wrong source file: cmd complete "break -source explicit2.c -function myfunction -label to"
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: complete label name with wrong source file: tab complete "break -source explicit2.c -function myfunction -label to"
PASS -> FAIL: gdb.linespec/explicit.exp: complete non-unique label name: cmd complete "b -function myfunction -label "
PASS -> FAIL: gdb.linespec/explicit.exp: complete non-unique label name: tab complete "b -function myfunction -label "
PASS -> FAIL: gdb.linespec/explicit.exp: complete unique label name reversed: cmd complete "b -label top -function myfunction"
PASS -> FAIL: gdb.linespec/explicit.exp: complete unique label name reversed: tab complete "b -label top -function myfunction"
PASS -> FAIL: gdb.linespec/explicit.exp: complete unique label name with source file: cmd complete "break -source explicit.c -function myfunction -label to"
PASS -> FAIL: gdb.linespec/explicit.exp: complete unique label name with source file: tab complete "break -source explicit.c -function myfunction -label to"
PASS -> FAIL: gdb.linespec/explicit.exp: complete with no arguments
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: nosharedlibrary
PASS -> FAIL: gdb.linespec/explicit.exp: set max-completions unlimited
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=4205eb66>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=4205eb66>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Arm: Backport hlt to all architectures.
@ 2019-02-08 1:07 sergiodj+buildbot
2019-02-08 1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-08 1:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f7dd2fb2e2b750f0fb9dedaf885c17bc6beef1f7 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: f7dd2fb2e2b750f0fb9dedaf885c17bc6beef1f7
Arm: Backport hlt to all architectures.
The software trap instruction HLT that was introduced in Armv8-a is used
as the semihosting trap instruction in AArch64. In order to allow systems
configured to run AArch64 code to also run AArch32 with semihosting it was
decided that AArch32 should also use HLT in the case of the "mixed mode"
environment. This requires that HLT also be backported to all earlier
architectures. The instruction is in the undefined encoding space earlier
architectures but must trigger a semihosting trap [3].
The Arm Architectural Reference Manual [1] doesn't explicitly mention this
however this is an explicit requirement in the Semihosting-v2 protocol [2].
[1] https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile
[2] https://developer.arm.com/docs/100863/latest/the-semihosting-interface
[3] https://github.com/qemu/qemu/commit/19a6e31c9d2701ef648b70ddcfc3bf64cec8c37e
gas/ChangeLog:
* config/tc-arm.c (insns): Redefine THUMB_VARIANT and ARM_VARIANT for
hlt to armv1.
* testsuite/gas/arm/armv8a-automatic-hlt.d: Update TAGs
* testsuite/gas/arm/hlt.d: New test.
* testsuite/gas/arm/hlt.s: New test.
opcodes/ChangeLog:
* arm-dis.c (arm_opcodes): Redefine hlt to armv1.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Compress 3-operand beq/bne against x0.
@ 2019-02-08 21:33 sergiodj+buildbot
2019-02-08 22:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] RISC-V: Add FP register core file support.
@ 2019-02-08 21:44 sergiodj+buildbot
2019-02-08 23:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix type_stack leaks in c expression parsing.
@ 2019-02-10 12:29 sergiodj+buildbot
2019-02-10 16:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Detect exit from execve syscall
@ 2019-02-11 17:01 sergiodj+buildbot
2019-02-11 17:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 14:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make symtab.c better styled.
@ 2019-02-12 22:15 sergiodj+buildbot
2019-02-12 22:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-12 22:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1ed9f74e85b7ace7debad5ade4775684a1fa99f9 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 1ed9f74e85b7ace7debad5ade4775684a1fa99f9
Make symtab.c better styled.
Note that print_msymbol_info does not (yet?) print data msymbol
using variable_name_style, as otherwise 'info variables'
would show the non debugging symbols in variable name style,
but 'real' variables would be not styled.
2019-02-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* symtab.h (struct minimal_symbol data_p): New const method.
(struct minimal_symbol text_p): Likewise.
* symtab.c (output_source_filename): Use file name style
to print file name.
(print_symbol_info): Likewise.
(print_msymbol_info): Use address style to print addresses.
Use function name style to print executable text symbols.
(expand_symtab_containing_pc): Use data_p.
(find_pc_sect_compunit_symtab): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add a new function child_path.
@ 2019-02-12 22:22 sergiodj+buildbot
2019-02-13 4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use child_path to determine if an object file is under a sysroot.
@ 2019-02-13 3:05 sergiodj+buildbot
2019-02-13 5:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-13 3:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cd4b78483c3b0e4bd7737b67ed5074b7c252faa4 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: cd4b78483c3b0e4bd7737b67ed5074b7c252faa4
Use child_path to determine if an object file is under a sysroot.
This fixes the case where the sysroot happens to end in a trailing
'/'. Note that the path returned from child_path always skips over
the directory separator at the start of the base path, so a separator
must always be explicitly added before the base path.
gdb/ChangeLog:
* symfile.c (find_separate_debug_file): Use child_path to
determine if an object file is under a sysroot.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Adding a test case
@ 2019-02-13 6:14 sergiodj+buildbot
2019-02-13 8:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-13 6:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 01c7ae818bd6c0b5d797091ec1664bcaed705d40 ***
Author: Weimin Pan <weimin.pan@oracle.com>
Branch: master
Commit: 01c7ae818bd6c0b5d797091ec1664bcaed705d40
Adding a test case
gdb/testsuite/ChangeLog
2019-02-12 Weimin Pan <weimin.pan@oracle.com>
PR breakpoints/21870
* gdb.arch/aarch64-dbreg-contents.exp: New file.
* gdb.arch/aarch64-dbreg-contents.c: New file.
^ permalink raw reply [flat|nested] 4390+ 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 23:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] (riscv/ada) fix error when calling functions with range argument
@ 2019-02-14 4:51 sergiodj+buildbot
2019-02-14 5:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 4:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2988d01ea5fcc474a9b714d2148bab5fcf4e4be8 ***
Author: KONRAD Frederic <konrad@adacore.com>
Branch: master
Commit: 2988d01ea5fcc474a9b714d2148bab5fcf4e4be8
(riscv/ada) fix error when calling functions with range argument
Using the gdb.ada/call_pn.exp testcase, and running it by hand on
riscv64-elf, we get the following error:
(gdb) call pn(55)
Could not compute alignment of type
The problem occurs because the parameter's type is a TYPE_CODE_RANGE,
and that type code is not handled by riscv_type_alignment. So this patch
fixes the issue by handling TYPE_CODE_RANGE the same way we handle other
integral types.
gdb/ChangeLog:
* riscv-rdep.c (riscv_type_alignment): Handle TYPE_CODE_RANGE.
Tested on riscv64-elf using AdaCore's testsuite.
^ permalink raw reply [flat|nested] 4390+ 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 17:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 18:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 21:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb, hurd] Adjust to Hurd "proc" interface changes
@ 2019-02-14 16:49 sergiodj+buildbot
2019-02-14 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb, hurd] Repair build after "Share fork_inferior et al with gdbserver" changes
@ 2019-02-14 19:25 sergiodj+buildbot
2019-02-14 19:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-14 19:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6c6ef69fb4e95d991fa5462d067d3f71a73fedce ***
Author: Thomas Schwinge <thomas@codesourcery.com>
Branch: master
Commit: 6c6ef69fb4e95d991fa5462d067d3f71a73fedce
[gdb, hurd] Repair build after "Share fork_inferior et al with gdbserver" changes
..., that is commit 2090129c36c7e582943b7d300968d19b46160d84 causing:
[...]/gdb/gnu-nat.c: In function 'void gnu_ptrace_me()':
[...]/gdb/gnu-nat.c:2133:5: error: 'trace_start_error_with_name' was not declared in this scope
trace_start_error_with_name ("ptrace");
^~~~~~~~~~~~~~~~~~~~~~~~~~~
[...]/gdb/gnu-nat.c:2133:5: note: suggested alternative: 'throw_perror_with_name'
trace_start_error_with_name ("ptrace");
^~~~~~~~~~~~~~~~~~~~~~~~~~~
throw_perror_with_name
[...]/gdb/gnu-nat.c: In function 'void gnu_create_inferior(target_ops*, const char*, const string&, char**, int)':
[...]/gdb/gnu-nat.c:2147:9: error: 'fork_inferior' was not declared in this scope
pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
^~~~~~~~~~~~~
[...]/gdb/gnu-nat.c:2147:9: note: suggested alternative: 'exit_inferior'
pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
^~~~~~~~~~~~~
exit_inferior
[...]/gdb/gnu-nat.c:2174:30: error: 'START_INFERIOR_TRAPS_EXPECTED' was not declared in this scope
gdb_startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: gnu-nat.o: in function `gnu_ptrace_me()':
[...]/gdb/gnu-nat.c:2134: undefined reference to `trace_start_error_with_name(char const*)'
/usr/bin/ld: gnu-nat.o: in function `gnu_create_inferior(target_ops*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char**, int)':
[...]/gdb/gnu-nat.c:2148: undefined reference to `fork_inferior(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char**, void (*)(), void (*)(int), void (*)(), char const*, void (*)(char const*, char* const*, char* const*))'
/usr/bin/ld: fork-child.o: in function `gdb_startup_inferior(int, int)':
[...]/gdb/fork-child.c:136: undefined reference to `startup_inferior(int, int, target_waitstatus*, ptid_t*)'
collect2: error: ld returned 1 exit status
gdb/
* configure.nat [gdb_host == i386gnu] (NATDEPFILES): Add
'nat/fork-inferior.o'.
* gnu-nat.c: #include "nat/fork-inferior.h".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Updating test case
@ 2019-02-14 22:41 sergiodj+buildbot
2019-02-15 2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] C++-ify bp_location
@ 2019-02-15 20:41 sergiodj+buildbot
2019-02-15 21:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix memory leak in create_ada_exception_catchpoint
@ 2019-02-15 20:53 sergiodj+buildbot
2019-02-15 22:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Exception safety in ravenscar-thread.c
@ 2019-02-15 21:22 sergiodj+buildbot
2019-02-16 1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Minor C++-ification in ravenscar-thread.c
@ 2019-02-15 22:17 sergiodj+buildbot
2019-02-16 5:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add push_target overload
@ 2019-02-15 22:29 sergiodj+buildbot
2019-02-16 6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make the ravenscar thread target multi-target-ready
@ 2019-02-15 22:41 sergiodj+buildbot
2019-02-16 8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Special-case wildcard requests in ravenscar-thread.c
@ 2019-02-15 22:54 sergiodj+buildbot
2019-02-16 9:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix some typos in ravenscar-thread.c
@ 2019-02-15 23:42 sergiodj+buildbot
2019-02-16 0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-15 23:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e397fd39c62c70900306fa206ebcae1a4853db8b ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: e397fd39c62c70900306fa206ebcae1a4853db8b
Fix some typos in ravenscar-thread.c
This fixes some typos I noticed in ravenscar-thread.c.
gdb/ChangeLog
2019-02-15 Tom Tromey <tromey@adacore.com>
* ravenscar-thread.c: Fix some typos.
^ permalink raw reply [flat|nested] 4390+ 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 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24225, nios2 buffer overflow
@ 2019-02-18 6:37 sergiodj+buildbot
2019-02-18 6:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-18 6:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a31b8bd9a054b494fd6ab18f14d84a2f0690f8a1 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: a31b8bd9a054b494fd6ab18f14d84a2f0690f8a1
PR24225, nios2 buffer overflow
PR 24225
* elf32-nios2.c (nios2_elf32_relocate_section): Use asprintf and
PRIx64 to generate warning messages. Print local sym names too.
^ permalink raw reply [flat|nested] 4390+ 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-19 0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24235, Read memory violation in pei-x86_64.c
@ 2019-02-19 12:37 sergiodj+buildbot
2019-02-19 13:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24236, Heap buffer overflow in _bfd_archive_64_bit_slurp_armap
@ 2019-02-20 1:53 sergiodj+buildbot
2019-02-20 2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 1:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8abac8031ed369a2734b1cdb7df28a39a54b4b49 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 8abac8031ed369a2734b1cdb7df28a39a54b4b49
PR24236, Heap buffer overflow in _bfd_archive_64_bit_slurp_armap
PR 24236
* archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
sentinel NUL to string buffer nearer to loop where it is used.
Don't go past sentinel when scanning strings, and don't write
NUL again.
* archive.c (do_slurp_coff_armap): Simplify string handling to
archive64.c style.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Check asprintf return value
@ 2019-02-20 8:48 sergiodj+buildbot
2019-02-20 10:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd: xtensa: fix callx relaxation
@ 2019-02-20 11:09 sergiodj+buildbot
2019-02-20 13:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Add default reggroups
@ 2019-02-20 13:53 sergiodj+buildbot
2019-02-20 14:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-20 13:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0ef8a082c32f34827479f2df8fbd431e08acd2d8 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 0ef8a082c32f34827479f2df8fbd431e08acd2d8
AArch64: Add default reggroups
AArch64 does not define any reggroups. This causes "maintenance print
reggroups" to dump the default set (which is ok).
However, if a new group is added via an xml file, then this now becomes
the only group.
Fixes gdb.xml/tdesc-regs.exp on AArch64.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_add_reggroups): New function
(aarch64_gdbarch_init): Call aarch64_add_reggroups.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use upper case for metasyntactic variables in "help find"
@ 2019-02-20 15:46 sergiodj+buildbot
2019-02-20 16:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix typos in symtab_symbol_info
@ 2019-02-20 19:48 sergiodj+buildbot
2019-02-20 20:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Disable styling when running in batch mode
@ 2019-02-21 13:50 sergiodj+buildbot
2019-02-21 14:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-21 13:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ee2bcb0c356d86d7bd2ff525b84a7602bb2bc816 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: ee2bcb0c356d86d7bd2ff525b84a7602bb2bc816
Disable styling when running in batch mode
The GCC Guality testsuite within GCC compiles C/C++ files in GCC at
various optimization levels then debugs them in GDB, checking that
program values can be read. This is done within the dejagnu framework.
The new style options in GDB have broken many of the tests due to the
testsuite being unable to process the new control characters. The fix
in Guality is to either to improve the string matching or to disable
styling on the cli or init file (after checking gdb is recent enough
to support styling).
This fix will also need making an any other testsuites in the wild
that use GDB.
An alternative would be to automatically disable styling when using GDB
in batch mode. The reasoning here is that batch mode is only used when
automating GDB and any output will be processed later either with text
processing tools or viewed in text editors, many of these will not
correctly handle the control characters by default. This ensures GDB
continues to work as expected. Anyone who explicitly wants styling in
batch mode can enable it either in the init file or adding to the batch
file - but that would not be the standard use case.
Patch simply disables style after reading the batch command flag, before
reading in the init file or batch file.
gdb/ChangeLog:
* main.c (captured_main_1): Disable styling in batch mode.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Document style behavior in batch mode.
@ 2019-02-21 18:38 sergiodj+buildbot
2019-02-21 19:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix symtab/23853: symlinked default symtab
@ 2019-02-22 20:22 sergiodj+buildbot
2019-02-22 21:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-22 20:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bb995d00b3eef2f48d0be895c3509a7ddd8280a1 ***
Author: Keith Seitz <keiths@redhat.com>
Branch: master
Commit: bb995d00b3eef2f48d0be895c3509a7ddd8280a1
Fix symtab/23853: symlinked default symtab
This patch attempts to fix a bug dealing with setting breakpoints
in default symtabs that are symlinks. For example:
(gdb) list
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program. If not, see <http://www.gnu.org/licenses/>. */
15
16 static int
17 foo (void)
18 {
19 return 0; /* break here */
20 }
(gdb)
21
22 int
23 main (void)
24 {
25 return foo ();
26 }
(gdb) b 19
No line 19 in the current file.
Make breakpoint pending on future shared library load? (y or [n])
The problem here is that when create_sals_line_offset sets the default
symtab, it immediately calls symtab_to_fullname, passing that fullname
to collect_symtabs_from_filename to find all matching symtabs. This
fails because we end up looking for a symtab with the name of the
actual file on disk (which is different in this case because of the
symlink) instead of the one stored in the debug info.
Since we already have the lookup name of the default symtab, use it
instead of the fullname. [This fullname thing was originally added
in 2007 in a series dealing with *displaying* absolute file names.
Clearly, this instance has nothing to do with the display of file names.]
gdb/ChangeLog
PR symtab/23853
* linespec.c (create_sals_line_offset): Search for the default
symtab's filename instead of its fullname.
gdb/testsuite/ChangeLog
PR symtab/23853
* gdb.base/symlink-sourcefile.c: New file.
* gdb.base/symlink-sourcefile.exp: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Update copyright year range generated by gdbarch.sh
@ 2019-02-22 20:33 sergiodj+buildbot
2019-02-22 22:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 23:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update my email address
@ 2019-02-23 1:12 sergiodj+buildbot
2019-02-23 1:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-23 1:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 04dcda9cb0c79b2f27a2f38aedec63da51538ad0 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: 04dcda9cb0c79b2f27a2f38aedec63da51538ad0
Update my email address
Since this is my last day at Ericsson, I am changing my email for my
personal one in the MAINTAINERS file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR24144, pdp11-ld overwriting section data with zeros
@ 2019-02-24 11:25 sergiodj+buildbot
2019-02-24 11:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-24 11:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f616c36b79d0776e51213b177e45a0f5d386cc58 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: f616c36b79d0776e51213b177e45a0f5d386cc58
PR24144, pdp11-ld overwriting section data with zeros
bfd/
PR 24144
* pdp11.c (set_section_contents): Revert 2015-02-24 change.
gas/
PR 24144
* config/obj-aout.c (obj_aout_frob_file_before_fix): Write to end
of section to ensure file contents cover aligned section size.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix BFD leak in solib-darwin.c
@ 2019-02-25 16:02 sergiodj+buildbot
2019-02-25 16:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-25 16:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cd5a152cebb201e98f3dbeca510aa39e838a1f62 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: cd5a152cebb201e98f3dbeca510aa39e838a1f62
Fix BFD leak in solib-darwin.c
commit 192b62ce0b4bb5c61188f570e127a26d2c32f716 ("Use class to manage
BFD reference counts") changed darwin_get_dyld_bfd to use:
+ dyld_bfd.release ();
rather than
- do_cleanups (cleanup);
However, using release here leaks the BFD. Instead, simply assigning
"sub" to "dyld_bfd" achieves what was meant.
gdb/ChangeLog
2019-02-25 Tom Tromey <tromey@adacore.com>
* solib-darwin.c (darwin_get_dyld_bfd): Don't release dyld_bfd.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix crash when loading dwp files
@ 2019-02-25 21:09 sergiodj+buildbot
2019-02-25 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix BFD leak in dwarf2_get_dwz_file.
@ 2019-02-25 22:54 sergiodj+buildbot
2019-02-26 0:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add tests for gdb.Value(bufobj, type) constructor
@ 2019-02-26 18:09 sergiodj+buildbot
2019-02-26 23:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Define gdb.Value(bufobj, type) constructor
@ 2019-02-26 19:28 sergiodj+buildbot
2019-02-26 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-26 19:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fe07eca59d0544eb6c56c3559da9ceece23cae6e ***
Author: Kevin Buettner <kevinb@redhat.com>
Branch: master
Commit: fe07eca59d0544eb6c56c3559da9ceece23cae6e
Define gdb.Value(bufobj, type) constructor
Provided a buffer BUFOBJ and a type TYPE, construct a gdb.Value object
with type TYPE, where the value's contents are taken from BUFOBJ.
E.g...
(gdb) python import struct
(gdb) python unsigned_int_type=gdb.lookup_type('unsigned int')
(gdb) python b=struct.pack('=I',0xdeadbeef)
(gdb) python v=gdb.Value(b, unsigned_int_type) ; print("%#x" % v)
0xdeadbeef
This two argument form of the gdb.Value constructor may also be used
to obtain gdb values from selected portions of buffers read with
Inferior.read_memory(). The test case (which is in a separate patch)
demonstrates this use case.
gdb/ChangeLog:
* python/py-value.c (convert_buffer_and_type_to_value): New
function.
(valpy_new): Parse arguments via gdb_PyArg_ParseTupleAndKeywords.
Add support for handling an optional second argument. Call
convert_buffer_and_type_to_value as appropriate.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix new py-value.exp test case
@ 2019-02-26 19:57 sergiodj+buildbot
2019-02-27 2:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update NEWS post GDB 8.3 branch creation.
@ 2019-02-27 5:47 sergiodj+buildbot
2019-02-27 11:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Restructure type_align and gdbarch_type_align
@ 2019-02-27 11:28 sergiodj+buildbot
2019-02-27 17:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Handle alignment for C++ structures with static members
@ 2019-02-27 11:40 sergiodj+buildbot
2019-02-27 18:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/alpha: Use default gdbarch methods where possible
@ 2019-02-27 15:21 sergiodj+buildbot
2019-02-27 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/arm: Use default gdbarch methods where possible
@ 2019-02-27 15:43 sergiodj+buildbot
2019-02-28 2:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/csky: Use default gdbarch methods where possible
@ 2019-02-27 16:18 sergiodj+buildbot
2019-02-28 6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/ft32: Use default gdbarch methods where possible
@ 2019-02-27 16:53 sergiodj+buildbot
2019-02-28 10:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/h8300: Use default gdbarch methods where possible
@ 2019-02-27 17:04 sergiodj+buildbot
2019-02-28 11:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use Python 2.[67] / 3.X / PEP 3118 buffer protocol
@ 2019-02-27 18:29 sergiodj+buildbot
2019-02-28 14:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove Python 2.4 and 2.5 support
@ 2019-02-27 19:00 sergiodj+buildbot
2019-02-28 17:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make 'show width/height' display "unlimited" when capped for readline
@ 2019-02-27 19:25 sergiodj+buildbot
2019-02-28 21:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Test "set width/height -1"
@ 2019-02-27 19:37 sergiodj+buildbot
2019-02-28 22:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Handle \r\n in gdbreplay
@ 2019-02-27 20:01 sergiodj+buildbot
2019-03-01 1:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] x86-64: Skip protected check on symbol defined by linker
@ 2019-02-27 20:22 sergiodj+buildbot
2019-03-01 2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/arc: Use default gdbarch methods where possible
@ 2019-02-28 0:52 sergiodj+buildbot
2019-02-28 1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 0:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f8278c3c7e0212e810fa7d65f6202b607c9cf3ca ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: f8278c3c7e0212e810fa7d65f6202b607c9cf3ca
gdb/arc: 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. The
only difference is that the old ARC specific methods had additional
debugging, however, this was discussed on the mailing list[1] and it
was agreed these methods could be removed.
[1] https://sourceware.org/ml/gdb-patches/2018-12/msg00386.html
gdb/ChangeLog:
* gdb/arc-tdep.c (arc_dummy_id): Delete.
(arc_unwind_pc): Delete.
(arc_unwind_sp): Delete.
(arc_gdbarch_init): Don't register deleted functions with gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/cris: Use default gdbarch methods where possible
@ 2019-02-28 4:51 sergiodj+buildbot
2019-02-28 5:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 4:51 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8010f576414759bf5bdcfeaa64226bf03586b763 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 8010f576414759bf5bdcfeaa64226bf03586b763
gdb/cris: 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/cris-tdep.c (cris_dummy_id): Delete.
(cris_unwind_pc): Delete.
(cris_unwind_sp): Delete.
(cris_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] (gdb/sim) Move Mike Frysinger to past maintainers section
@ 2019-02-28 7:38 sergiodj+buildbot
2019-03-01 5:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Use default gdbarch methods where possible
@ 2019-02-28 7:58 sergiodj+buildbot
2019-02-28 7:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 7:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 76055cbe88cc6623f88c8ae43ed8b8ae6883df9e ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 76055cbe88cc6623f88c8ae43ed8b8ae6883df9e
gdb/riscv: 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.
This change has been tested with no regressions.
gdb/ChangeLog:
* gdb/riscv-tdep.c (riscv_dummy_id): Delete.
(riscv_unwind_pc): Delete.
(riscv_unwind_sp): Delete.
(riscv_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/frv: Use default gdbarch methods where possible
@ 2019-02-28 8:46 sergiodj+buildbot
2019-02-28 9:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 8:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2fbe7ad059d9ec2a8a378a5c2b973a1188677422 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 2fbe7ad059d9ec2a8a378a5c2b973a1188677422
gdb/frv: 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/frv-tdep.c (frv_dummy_id): Delete.
(frv_unwind_pc): Delete.
(frv_unwind_sp): Delete.
(frv_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-02-28 8:46 [binutils-gdb] gdb/frv: Use default gdbarch methods where possible sergiodj+buildbot
@ 2019-02-28 9:16 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 9:16 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7489>
Commit(s) tested:
2fbe7ad059d9ec2a8a378a5c2b973a1188677422
Author(s) (in the same order as the commits):
Andrew Burgess <andrew.burgess@embecosm.com>
Subject:
gdb/frv: Use default gdbarch methods where possible
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/2f/2fbe7ad059d9ec2a8a378a5c2b973a1188677422/>
*** Diff to previous build ***
============================
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
============================
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=d8ad0e02>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=d8ad0e02>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/hppa: Use default gdbarch method default_dummy_id.
@ 2019-02-28 12:41 sergiodj+buildbot
2019-02-28 13:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-02-28 12:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f4bc7d2cde9189249d41ac9c63235c128da4d2f2 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: f4bc7d2cde9189249d41ac9c63235c128da4d2f2
gdb/hppa: Use default gdbarch method default_dummy_id.
Make use of the default gdbarch method for gdbarch_dummy_id.
I have not tested this change but, by inspecting the code, I believe
the default method is equivalent to the code being deleted.
gdb/ChangeLog:
* gdb/hppa-tdep.c (hppa_dummy_id): Delete.
(hppa_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ 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-03-01 6:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 10:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Can't interrupt process without controlling terminal on Solaris (PR gdb/8527)
@ 2019-03-01 7:20 sergiodj+buildbot
2019-03-01 7:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-01 7:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 92137da015d301fec4b7878467d053d379a2f489 ***
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Branch: master
Commit: 92137da015d301fec4b7878467d053d379a2f489
Can't interrupt process without controlling terminal on Solaris (PR gdb/8527)
If gdb attaches to a process that either has no controlling terminal,
or the controlling terminal differs from the one gdb is running under,
break/^C doesn't interrupt the debugged process on Solaris.
Fixed as follows, analogous to what all all other targets do. Patch from
the PR, recently re-submitted by Brian Vandenberg.
Tested on amd64-pc-solaris2.11, sparcv9-sun-solaris2.11, and
x86_64-pc-linux-gnu.
2019-02-28 Brian Vandenberg <phantall@gmail.com>
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
gdb:
PR gdb/8527
* procfs.c (proc_wait_for_stop): Wrap write of PCWSTOP in
set_sigint_trap, clear_sigint_trap.
gdb/testsuite:
PR gdb/8527
* gdb.base/interrupt-daemon-attach.c,
gdb.base/interrupt-daemon-attach.exp: New test.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Binutils: Always skip only 1 byte for CIE version 1's return address register.
@ 2019-03-01 12:46 sergiodj+buildbot
2019-03-01 12:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-01 12:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4ffd290906608e72fd98d627a24aa2c2b6ecf4ce ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 4ffd290906608e72fd98d627a24aa2c2b6ecf4ce
Binutils: Always skip only 1 byte for CIE version 1's return address register.
According to the specification for the CIE entries, when the CIE version is 1 then
the return address register field is always 1 byte. Readelf does this correctly in
read_cie in dwarf.c but ld does this incorrectly and always tries to read a
skip_leb128. If the value here has the top bit set then ld will incorrectly read
at least another byte, causing either an assert failure or an incorrect address to
be used in eh_frame.
I'm not sure how to generate a generic test for this as I'd need to write assembly,
and it's a bit hard to trigger. Essentially the relocated value needs to start with
something that & 0x70 != 0x10 while trying to write a personality.
bfd/ChangeLog:
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct CIE parse.
^ permalink raw reply [flat|nested] 4390+ 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 16:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix GDB compilation on MinGW (PR gdb/24292)
@ 2019-03-02 13:35 sergiodj+buildbot
2019-03-02 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdbserver short-circuit-argument-list failures
@ 2019-03-04 15:25 sergiodj+buildbot
2019-03-04 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce ATTRIBUTE_UNUSED_RESULT and use it
@ 2019-03-05 16:13 sergiodj+buildbot
2019-03-05 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 16:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 18cb7c9f3add62ff598f0551a767af8aaa04b07e ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 18cb7c9f3add62ff598f0551a767af8aaa04b07e
Introduce ATTRIBUTE_UNUSED_RESULT and use it
This introduces the new ATTRIBUTE_UNUSED_RESULT define, and applies it
to gdb_argv::release.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* utils.h (class gdb_argv) <release>: Add
ATTRIBUTE_UNUSED_RESULT.
* common/common-defs.h (ATTRIBUTE_UNUSED_RESULT): Define.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_fd
@ 2019-03-05 16:26 sergiodj+buildbot
2019-03-05 19:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap
@ 2019-03-05 16:37 sergiodj+buildbot
2019-03-05 21:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to macro_buffer
@ 2019-03-05 16:49 sergiodj+buildbot
2019-03-05 22:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_remote_fd::release
@ 2019-03-05 17:03 sergiodj+buildbot
2019-03-05 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release
@ 2019-03-05 17:17 sergiodj+buildbot
2019-03-06 1:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove excess calls to gdb_flush
@ 2019-03-05 17:29 sergiodj+buildbot
2019-03-06 2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to parser_state
@ 2019-03-05 17:35 sergiodj+buildbot
2019-03-05 18:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-05 17:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 41e3300aa7d31ddb3618e160c6b7e61351ee2af5 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 41e3300aa7d31ddb3618e160c6b7e61351ee2af5
Add ATTRIBUTE_UNUSED_RESULT to parser_state
This applies ATTRIBUTE_UNUSED_RESULT to parser_state::release.
gdb/ChangeLog
2019-03-05 Tom Tromey <tromey@adacore.com>
* parser-defs.h (struct parser_state) <release>: Add
ATTRIBUTE_UNUSED_RESULT.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Change the_dummy_target to be a global
@ 2019-03-05 21:27 sergiodj+buildbot
2019-03-06 6:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fortran function calls with arguments
@ 2019-03-06 8:50 sergiodj+buildbot
2019-03-06 9:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 11:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Remove some duplicate tests
@ 2019-03-06 18:28 sergiodj+buildbot
2019-03-06 19:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-07 4:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Add support for the ABS intrinsic function
@ 2019-03-06 20:20 sergiodj+buildbot
2019-03-07 7:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Handle older TYPE*SIZE typenames
@ 2019-03-06 20:33 sergiodj+buildbot
2019-03-07 9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] linux-fork.c: rewrite inf_has_multiple_threads
@ 2019-03-06 21:11 sergiodj+buildbot
2019-03-07 14:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Simplify handling of Fortran dot operations and keywords
@ 2019-03-06 21:33 sergiodj+buildbot
2019-03-06 22:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-06 21:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c8f9160408315deceee5e8776f0b1c4d9cba4398 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: c8f9160408315deceee5e8776f0b1c4d9cba4398
gdb/fortran: Simplify handling of Fortran dot operations and keywords
Use strncasecmp to compare Fortran dot operations (like .AND.) and for
the keywords list. This allows for some duplication to be removed
from the token arrays. I've also performed whitespace cleanup around
the code I've changed.
I have added some tests to ensure that upper and lowercase dot
operations are correctly tested. The keywords list remains always
lowercase for now.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* f-exp.y (struct token): Add comments.
(dot_ops): Remove uppercase versions and the end marker.
(f77_keywords): Likewise.
(yylex): Use ARRAY_SIZE to iterate over dot_ops, assert all
entries in the dot_ops array are case insensitive, and use
strncasecmp to compare strings. Also some whitespace cleanup in
this area. Similar for the f77_keywords array, except entries in
this list might be case sensitive.
gdb/testsuite/ChangeLog:
* gdb.fortran/dot-ops.exp: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove last cleanup from gdbserver
@ 2019-03-07 0:13 sergiodj+buildbot
2019-03-08 0:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove cleanup from solib-svr4.c
@ 2019-03-07 0:25 sergiodj+buildbot
2019-03-08 2:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove last cleanups from solib-svr4.c
@ 2019-03-07 0:38 sergiodj+buildbot
2019-03-08 3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove last cleanup solib-aix.c
@ 2019-03-07 0:51 sergiodj+buildbot
2019-03-08 5:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove last cleanup from linux-namespaces.c
@ 2019-03-07 1:04 sergiodj+buildbot
2019-03-08 6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove basic cleanup code
@ 2019-03-07 1:42 sergiodj+buildbot
2019-03-08 10:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove free_current_contents
@ 2019-03-07 1:55 sergiodj+buildbot
2019-03-08 11:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use SCOPE_EXIT in write_gcore_file
@ 2019-03-07 2:08 sergiodj+buildbot
2019-03-08 13:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Use TYPE_CODE_CHAR for character types
@ 2019-03-07 6:24 sergiodj+buildbot
2019-03-07 6:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 6:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4a270568d93263e4970099456b4efb58466134a6 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 4a270568d93263e4970099456b4efb58466134a6
gdb/fortran: Use TYPE_CODE_CHAR for character types
Switch to using TYPE_CODE_CHAR for character types. This appears to
have little impact on the test results as gFortran uses the
DW_TAG_string_type to represent all character variables (as far as I
can see). The only place this has an impact is when the user casts a
variable to a character type, in which case GDB does now use the CHAR
type, and prints the variable as both a value and a character, for
example, before:
(gdb) p ((character) 97)
$1 = 97
and after:
(gdb) p ((character) 97)
$1 = 97 'a'
gdb/ChangeLog:
* f-lang.c (build_fortran_types): Use TYPE_CODE_CHAR for character
types.
gdb/testsuite/ChangeLog:
* gdb.fortran/type-kinds.exp: Update expected results.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Make "checkpoint" not rely on inferior_ptid
@ 2019-03-07 10:35 sergiodj+buildbot
2019-03-07 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 10:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 72f31aea9e6c158f442239abedaf351465ebcb41 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 72f31aea9e6c158f442239abedaf351465ebcb41
Make "checkpoint" not rely on inferior_ptid
Don't rely on "inferior_ptid" deep within add_fork. In the
multi-target branch, I'm forcing inferior_ptid to null_ptid early in
infrun event handling to make sure we don't inadvertently rely on the
current thread/target when we shouldn't, and that caught some bad or
unnecessary assumptions throughout.
gdb/ChangeLog:
2019-03-06 Pedro Alves <palves@redhat.com>
* linux-fork.c (new_fork): New, split out of ...
(add_fork): ... this. Return void. Move "first fork" special
case from here, to ...
(checkpoint_command): ... here.
* linux-linux.h (add_fork): Return void.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Eliminate fork_info::clobber_regs
@ 2019-03-07 16:22 sergiodj+buildbot
2019-03-07 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 16:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b7e60d85da12a1819671473db8550c9f076e8f38 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: b7e60d85da12a1819671473db8550c9f076e8f38
Eliminate fork_info::clobber_regs
All fork_save_infrun_state callers pass '1' as CLOBBER_REGS nowadays.
The larger hunk in fork_save_infrun_state is just a reindentation.
gdb/ChangeLog:
2019-03-06 Pedro Alves <palves@redhat.com>
* linux-fork.c (fork_info::clobber_regs): Delete.
(fork_load_infrun_state): Remove reference to 'clobber_regs'.
(fork_save_infrun_state): Remove 'clobber_regs' parameter. Update
comment. Adjust.
(scoped_switch_fork_info::scoped_switch_fork_info)
(checkpoint_command, linux_fork_context): Adjust
fork_save_infrun_state calls.
^ permalink raw reply [flat|nested] 4390+ 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-08 14:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] C++-ify bcache
@ 2019-03-07 18:05 sergiodj+buildbot
2019-03-08 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update two cleanup comments
@ 2019-03-07 18:41 sergiodj+buildbot
2019-03-07 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 18:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 09e3c4ca13e39b797b91b07280ac025327a8a526 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 09e3c4ca13e39b797b91b07280ac025327a8a526
Update two cleanup comments
This updates another couple of comments to remove mentions of
cleanups.
gdb/ChangeLog
2019-03-06 Tom Tromey <tom@tromey.com>
* inferior.h (class inferior): Update comment.
* gdbthread.h (class thread_info): Update comment.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Change displaced_step_clear_cleanup to a forward_scope_exit
@ 2019-03-07 21:16 sergiodj+buildbot
2019-03-07 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 21:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9799571ecb648ea2e911498cfdc7fafe3237c94a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 9799571ecb648ea2e911498cfdc7fafe3237c94a
Change displaced_step_clear_cleanup to a forward_scope_exit
This changes displaced_step_clear_cleanup to be a forward_scope_exit
and updates the callers.
gdb/ChangeLog
2019-03-06 Tom Tromey <tom@tromey.com>
* infrun.c (displaced_step_clear_cleanup): Now a
forward_scope_exit type.
(displaced_step_prepare_throw): Update.
(displaced_step_fixup): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] C++ify remote notification code
@ 2019-03-07 22:57 sergiodj+buildbot
2019-03-07 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-07 22:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 32603266e5688718faad35b7502aa0b72a42764a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 32603266e5688718faad35b7502aa0b72a42764a
C++ify remote notification code
This C++ifies the remote notification code -- replacing function
pointers with virtual methods and using unique_ptr. This allows for
the removal of some cleanups.
2019-03-06 Tom Tromey <tom@tromey.com>
* remote.c (struct stop_reply_deleter): Remove.
(stop_reply_up): Update.
(struct stop_reply): Derive from notif_event. Don't typedef.
<regcache>: Now a std::vector.
(stop_reply_xfree): Remove.
(stop_reply::~stop_reply): Rename from stop_reply_dtr.
(remote_notif_stop_alloc_reply): Return a unique_ptr. Use new.
(remote_target::discard_pending_stop_replies): Use delete.
(remote_target::remote_parse_stop_reply): Update.
(remote_target::process_stop_reply): Update.
* remote-notif.h (struct notif_event): Add virtual destructor.
Remove "dtr" member.
(struct notif_client) <alloc_event>: Return a unique_ptr.
(notif_event_xfree): Don't declare.
(notif_event_up): New typedef.
* remote-notif.c (remote_notif_ack, remote_notif_parse): Update.
(notif_event_xfree, do_notif_event_xfree): Remove.
(remote_notif_state_xfree): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove last cleanups from stabsread.c
@ 2019-03-08 7:15 sergiodj+buildbot
2019-03-08 7:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-08 7:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 61b30099702a76fb7e6a9c5dba7c03b95f9eb0f2 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 61b30099702a76fb7e6a9c5dba7c03b95f9eb0f2
Remove last cleanups from stabsread.c
This removes the last cleanups from stabsread.c. Similar code in
dwarf2read.c was C++-ified, but considering that stabs are deprecated,
it seemed simpler to just change these allocations to use an obstack
and leave the data structures in place.
This patch renames field_info to stabs_field_info -- adding a
constructor here provoked a bug due to the resulting ODR violation.
2019-03-06 Tom Tromey <tom@tromey.com>
* stabsread.c (struct stabs_field_info): Rename from field_info.
<list, fnlist>: Add initializers.
<obstack>: New member.
(read_member_functions, read_struct_fields, read_baseclasses):
Allocate on obstack. Don't use cleanups.
(read_one_struct_field, read_member_functions, read_struct_fields)
(read_baseclasses, read_tilde_fields, attach_fn_fields_to_type)
(attach_fields_to_type, read_cpp_abbrev, read_member_functions)
(read_struct_type): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR24311, FAIL: S-records with constructors
@ 2019-03-08 13:11 sergiodj+buildbot
2019-03-08 20:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Support styling on native MS-Windows console
@ 2019-03-09 7:02 sergiodj+buildbot
2019-03-09 7:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 14:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 16:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 18:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_bool from rank_one_type
@ 2019-03-09 15:10 sergiodj+buildbot
2019-03-10 0:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_complex from rank_one_type
@ 2019-03-09 15:36 sergiodj+buildbot
2019-03-10 3:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Split rank_one_type_parm_float from rank_one_type
@ 2019-03-10 1:16 sergiodj+buildbot
2019-03-10 1:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-10 1:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7f17b20d6020f2a40369ef0568501ebcda952243 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 7f17b20d6020f2a40369ef0568501ebcda952243
Split rank_one_type_parm_float from rank_one_type
gdb/ChangeLog:
* gdbtypes.c (rank_one_type_parm_float): New function extracted
from...
(rank_one_type): ... this.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove unnecessary cases from rank_one_type's switch
@ 2019-03-10 6:46 sergiodj+buildbot
2019-03-10 7:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-10 6:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 568c0683da0a5d1cf5c62c9deb8abb8513875eee ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 568c0683da0a5d1cf5c62c9deb8abb8513875eee
Remove unnecessary cases from rank_one_type's switch
We return INCOMPATIBLE_TYPE_BADNESS for all these type codes, so we might as
well just let them go to the default case.
Incidentally, this patch also makes this false positive error go away when
compiling with gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0, default compiler on
Ubuntu 18.04.
CXX gdbtypes.o
/home/smarchi/src/binutils-gdb/gdb/gdbtypes.c: In function rank rank_one_type(type*, type*, value*):
/home/smarchi/src/binutils-gdb/gdb/gdbtypes.c:4259:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
gdb/ChangeLog:
* gdbtypes.c (rank_one_type): Remove unnecessary cases from switch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove redundant assignment from dwarf2_find_containing_comp_unit
@ 2019-03-11 17:36 sergiodj+buildbot
2019-03-11 18:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-11 17:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 82cb27ff6b4e1ae811e72a02dddc3db4c9ff97b8 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 82cb27ff6b4e1ae811e72a02dddc3db4c9ff97b8
Remove redundant assignment from dwarf2_find_containing_comp_unit
dwarf2_find_containing_comp_unit has two assignments to "this_cu" in
quick succession, both of which are just:
this_cu = dwarf2_per_objfile->all_comp_units[low];
... with no intervening assignments.
This patch removes the second assignment. I'm checking this in as
obvious. Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-03-11 Tom Tromey <tromey@adacore.com>
* dwarf2read.c (dwarf2_find_containing_comp_unit): Remove
redundant assignment to "this_cu".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Don't use bfd_get_file_size in objdump
@ 2019-03-12 13:53 sergiodj+buildbot
2019-03-12 17:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 18:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make null_ptid and minus_one_ptid "const"
@ 2019-03-12 17:21 sergiodj+buildbot
2019-03-12 19:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix test-cp-name-parser build, parser_fprintf undefined
@ 2019-03-12 17:46 sergiodj+buildbot
2019-03-12 22:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix MinGW build with source-highlight
@ 2019-03-12 18:26 sergiodj+buildbot
2019-03-13 3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/testsuite: Prepare for DejaGnu 1.6.2
@ 2019-03-12 20:07 sergiodj+buildbot
2019-03-13 4:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Support the fs_base and gs_base registers on i386.
@ 2019-03-12 21:01 sergiodj+buildbot
2019-03-13 5:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Support fs_base and gs_base on FreeBSD/i386.
@ 2019-03-12 21:13 sergiodj+buildbot
2019-03-13 7:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-13 11:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-13 12:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/amd64.
@ 2019-03-12 22:47 sergiodj+buildbot
2019-03-13 16:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/i386.
@ 2019-03-12 22:59 sergiodj+buildbot
2019-03-13 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Support TLS variables on FreeBSD/powerpc.
@ 2019-03-12 23:25 sergiodj+buildbot
2019-03-13 21:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-13 22:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update comment for target::get_thread_local_address.
@ 2019-03-13 9:31 sergiodj+buildbot
2019-03-13 10:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-13 9:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cd250a1898bb6fdb41f4a1063dbcfac04affcd11 ***
Author: John Baldwin <jhb@FreeBSD.org>
Branch: master
Commit: cd250a1898bb6fdb41f4a1063dbcfac04affcd11
Update comment for target::get_thread_local_address.
There isn't an 'objfile' parameter, instead 'load_module_addr' is used
to indicate the executable or shared library. Also, the function
throws errors rather than returning error values.
gdb/ChangeLog:
* target.h (target::get_thread_local_address): Update comment.
^ permalink raw reply [flat|nested] 4390+ 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-14 2:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-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-14 2:54 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 2:54 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7623>
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/Debian-s390x-native-gdbserver-m64/37/37c18eedffe3926a330149ca93e7407917e2be38/>
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=31e7aea1>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=31e7aea1>
^ permalink raw reply [flat|nested] 4390+ 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-14 4:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-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-14 4:16 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 4:16 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7624>
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/Debian-s390x-native-gdbserver-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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=31e7aea1>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=31e7aea1>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix MI output for multi-location breakpoints
@ 2019-03-13 19:30 sergiodj+buildbot
2019-03-14 6:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] x86: Properly set IBT and SHSTK properties for -z ibt/shstk
@ 2019-03-14 0:03 sergiodj+buildbot
2019-03-14 0:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 0:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 44b27f959abf267fc9ec228f4131c932597b01d4 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 44b27f959abf267fc9ec228f4131c932597b01d4
x86: Properly set IBT and SHSTK properties for -z ibt/shstk
There should be no AND properties if some input doesn't have them. We
should set IBT and SHSTK properties for -z ibt and -z shstk if needed.
bfd/
PR ld/24322
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Properly
merge GNU_PROPERTY_X86_FEATURE_1_[IBT|SHSTK].
ld/
PR ld/24322
* testsuite/ld-i386/i386.exp: Run PR ld/24322 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr24322a.d: New file.
* testsuite/ld-i386/pr24322b.d: Likewise.
* testsuite/ld-x86-64/pr24322a-x32.d: Likewise.
* testsuite/ld-x86-64/pr24322a.d: Likewise.
* testsuite/ld-x86-64/pr24322b-x32.d: Likewise.
* testsuite/ld-x86-64/pr24322b.d: Likewise.
* testsuite/ld-x86-64/pr24322a.s: Likewise.
* testsuite/ld-x86-64/pr24322b.s: Likewise.
* testsuite/ld-x86-64/pr24322c.s: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC
@ 2019-03-14 1:31 sergiodj+buildbot
2019-03-14 1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 1:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cd702818c6cf25277253b3b5c23f17d2cf7a94df ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: cd702818c6cf25277253b3b5c23f17d2cf7a94df
[BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC
This is part of the patch series to add support for BTI and
PAC in AArch64 linker.
This patch implements the following:
1) This extends in the gnu property support in the linker for
AArch64 by defining backend hooks for elf_backend_setup_gnu_properties,
elf_backend_merge_gnu_properties and elf_backend_parse_gnu_properties.
2) It defines AArch64 specific GNU property
GNU_PROPERTY_AARCH64_FEATURE_1_AND and 2 bit for BTI and PAC in it.
3) It also adds support in readelf.c to read and print these new
GNU properties in AArch64.
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>
* elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
linker created inputs from merge.
* elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
(elfNN_aarch64_link_setup_gnu_properties): New.
(elfNN_aarch64_merge_gnu_properties): New.
(elf_backend_setup_gnu_properties): Define for AArch64.
(elf_backend_merge_gnu_properties): Likewise.
* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Define.
(_bfd_aarch64_elf_parse_gnu_properties): Define.
(_bfd_aarch64_elf_merge_gnu_properties): Define.
* elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties): Declare.
(_bfd_aarch64_elf_parse_gnu_properties): Declare.
(_bfd_aarch64_elf_merge_gnu_properties): Declare.
(elf_backend_parse_gnu_properties): Define for AArch64.
*** binutils/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
* readelf.c (decode_aarch64_feature_1_and): New.
(print_gnu_property_note): Add case for AArch64 gnu notes.
*** include/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
* elf/common.h (GNU_PROPERTY_AARCH64_FEATURE_1_AND): New.
(GNU_PROPERTY_AARCH64_FEATURE_1_BTI): New.
(GNU_PROPERTY_AARCH64_FEATURE_1_PAC): New.
*** ld/ChangeLog ***
2019-03-13 Sudakshina Das <sudi.das@arm.com>
* NEWS: Document GNU_PROPERTY_AARCH64_FEATURE_1_BTI and
GNU_PROPERTY_AARCH64_FEATURE_1_PAC.
* testsuite/ld-aarch64/aarch64-elf.exp: Add run commands for new tests.
* testsuite/ld-aarch64/property-bti-pac1.d: New test.
* testsuite/ld-aarch64/property-bti-pac1.s: New test.
* testsuite/ld-aarch64/property-bti-pac2.d: New test.
* testsuite/ld-aarch64/property-bti-pac2.s: New test.
* testsuite/ld-aarch64/property-bti-pac3.d: New test.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-03-14 1:31 [binutils-gdb] [BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC sergiodj+buildbot
@ 2019-03-14 1:31 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-14 1:31 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7622>
Commit(s) tested:
cd702818c6cf25277253b3b5c23f17d2cf7a94df
Author(s) (in the same order as the commits):
Sudakshina Das <sudi.das@arm.com>
Subject:
[BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/cd/cd702818c6cf25277253b3b5c23f17d2cf7a94df/>
*** 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:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=31e7aea1>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=31e7aea1>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add the "set style source" command
@ 2019-03-14 12:15 sergiodj+buildbot
2019-03-14 14:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-15 0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix a buffer overrun error when attempting to parse corrupt DWARF information.
@ 2019-03-15 4:17 sergiodj+buildbot
2019-03-15 4:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 4:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d7f848c3b51f01635557ab765f2ba176618e0bf8 ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: d7f848c3b51f01635557ab765f2ba176618e0bf8
Fix a buffer overrun error when attempting to parse corrupt DWARF information.
PR 24334
* dwarf2.c (struct dwarf2_debug): Add sec_vma_count field.
(save_section_vma): Initialise field to the number of entries in
the sec_vma table.
(section_vma_same): Check that the number of entries in the
sec_vma table matches the number of sections in the bfd.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] x86-64: Check for corrupt input with bad relocation
@ 2019-03-15 8:02 sergiodj+buildbot
2019-03-15 9:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24336, buffer overflow in swap_reloca_in
@ 2019-03-15 10:11 sergiodj+buildbot
2019-03-15 10:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 10:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f55b1e3248e4950464ea120027cc6881003e0ead ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: f55b1e3248e4950464ea120027cc6881003e0ead
PR24336, buffer overflow in swap_reloca_in
PR 24336
* elflink.c (elf_link_read_relocs_from_section): Handle fuzzed
object files with sh_size not a multiple of sh_entsize.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym
@ 2019-03-15 10:22 sergiodj+buildbot
2019-03-15 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24339, segfault on NULL symbol section
@ 2019-03-15 10:35 sergiodj+buildbot
2019-03-15 13:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] COFF: Check for symbols defined in discarded section
@ 2019-03-15 15:15 sergiodj+buildbot
2019-03-15 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 15:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2219ae0b0ebe14373850b000c2abaa31dab1d741 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 2219ae0b0ebe14373850b000c2abaa31dab1d741
COFF: Check for symbols defined in discarded section
For LTO, a symbol may defined in discarded section. We should mark it
as undefined so that LTO plugin will make IR definition available.
PR ld/24267
* coffgen.c (_bfd_coff_section_already_linked): Skip discarded
section.
* cofflink.c (coff_link_add_symbols): Check for symbols defined
in discarded section.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use bitset for demangled_hash_languages
@ 2019-03-15 22:36 sergiodj+buildbot
2019-03-16 6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Slightly simplify minsym creation
@ 2019-03-15 22:44 sergiodj+buildbot
2019-03-15 23:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-15 22:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3db066bcd5bac9a8d6be85ea4cfa8f52dbdcc600 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 3db066bcd5bac9a8d6be85ea4cfa8f52dbdcc600
Slightly simplify minsym creation
Only one caller of minimal_symbol_reader::record_with_info was using
the return value, so this patch simplifies this code by having it
return void and changing that caller to use record_full instead.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* minsyms.h (class minimal_symbol_reader) <record_with_info>:
Don't return the symbol.
* coffread.c (record_minimal_symbol): Use record_full.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove some unneeded initializations in minimal_symbol_reader
@ 2019-03-15 22:51 sergiodj+buildbot
2019-03-16 7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Allocate minimal symbols with malloc
@ 2019-03-16 0:38 sergiodj+buildbot
2019-03-16 14:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use memcpy in minimal_symbol_reader::install
@ 2019-03-16 0:52 sergiodj+buildbot
2019-03-16 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change minimal_symbol inheritance
@ 2019-03-16 1:07 sergiodj+buildbot
2019-03-16 17:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24337, segfault in _bfd_elf_rela_local_sym, again
@ 2019-03-16 4:16 sergiodj+buildbot
2019-03-16 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Simplify per-BFD storage management
@ 2019-03-16 11:07 sergiodj+buildbot
2019-03-16 11:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-16 11:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d6797f465c3f67b41a0db38870bbd33384b6551f ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d6797f465c3f67b41a0db38870bbd33384b6551f
Simplify per-BFD storage management
There's no reason that the objfile_per_bfd_storage must be allocated
via bfd_alloc. This patch changes objfile_per_bfd_storage to be
managed more simply, via ordinary new and delete; and moves some code
into its (new) destructor.
While doing this I also noticed an extra initialization of
language_of_main, and removed it.
gdb/ChangeLog
2019-03-15 Tom Tromey <tom@tromey.com>
* objfiles.h (struct objfile_per_bfd_storage): Declare
destructor.
* objfiles.c (objfile_per_bfd_storage::~objfile_per_bfd_storage):
New.
(get_objfile_bfd_data): Use new. Don't initialize
language_of_main.
(free_objfile_per_bfd_storage): Remove.
(objfile_bfd_data_free, objfile::~objfile): Use delete.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Revert "Use wclrtoeol in tui_show_source_line"
@ 2019-03-16 12:31 sergiodj+buildbot
2019-03-16 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix vertical scrolling of TUI source window
@ 2019-03-16 18:13 sergiodj+buildbot
2019-03-17 1:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: unconditionally define _initialize_string_view_selftests
@ 2019-03-18 4:18 sergiodj+buildbot
2019-03-18 5:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 13:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix scrolling right in the TUI
@ 2019-03-18 14:44 sergiodj+buildbot
2019-03-18 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix Ada "ptype" bug with array types
@ 2019-03-18 15:12 sergiodj+buildbot
2019-03-18 15:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-18 15:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bff8c71fd8dece639e69b399883f90b3404a2a48 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: bff8c71fd8dece639e69b399883f90b3404a2a48
Fix Ada "ptype" bug with array types
Using ptype on an array type in Ada can sometimes show an incorrect
high bound. This happens because ada_evaluate_subexp will create an
array with an incorrect upper bound in the EVAL_AVOID_SIDE_EFFECTS
case.
This patch fixes the problem by arranging to always create such an
array with valid bounds.
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-03-18 Tom Tromey <tromey@adacore.com>
* ada-lang.c (empty_array): Add "high" parameter.
(ada_evaluate_subexp): Update.
gdb/testsuite/ChangeLog
2019-03-18 Joel Brobecker <brobecker@adacore.com>
Tom Tromey <tromey@adacore.com>
* gdb.ada/ptype_array/pck.adb: New file.
* gdb.ada/ptype_array/pck.ads: New file.
* gdb.ada/ptype_array/foo.adb: New file.
* gdb.ada/ptype_array.exp: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix gdb/TUI behavior in response to [Enter] keypress
@ 2019-03-18 18:23 sergiodj+buildbot
2019-03-19 1:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-19 4:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] ix86: Disable AVX512F when disabling AVX2
@ 2019-03-19 13:27 sergiodj+buildbot
2019-03-19 14:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 19:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Don't show "display"s twice in MI
@ 2019-03-19 18:38 sergiodj+buildbot
2019-03-19 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Merge handle_inferior_event and handle_inferior_event_1
@ 2019-03-20 18:24 sergiodj+buildbot
2019-03-20 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-20 18:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 595915c1c135a77afa01d30a888a48fcc55a08ec ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 595915c1c135a77afa01d30a888a48fcc55a08ec
Merge handle_inferior_event and handle_inferior_event_1
I noticed that handle_inferior_event is just a small wrapper that
frees the value chain. This patch replaces it with a
scoped_value_mark, reducing the number of lines of code here.
Regression tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-03-20 Tom Tromey <tromey@adacore.com>
* infrun.c (handle_inferior_event): Rename from
handle_inferior_event_1. Create a scoped_value_mark.
(handle_inferior_event): Remove.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [BFD, AArch64, x86] Improve warning for --force-bti
@ 2019-03-21 17:04 sergiodj+buildbot
2019-03-21 17:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-21 17:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4e5391148d51c58785aad637f1a92d47b91b3ae6 ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 4e5391148d51c58785aad637f1a92d47b91b3ae6
[BFD, AArch64, x86] Improve warning for --force-bti
The AArch64 linker option to turn on BTI (--force-bti) warns in case there are
input objects which have a missing GNU NOTE section for BTI. This patch is trying
to improve the warnings that come out.
In order to do so, I propose adding a new argument to elf_merge_gnu_properties
and the backend function merge_gnu_properties. This new argument makes sure
that we now pass both the objects along with the properties to which they
belong to. The x86 backend function has also been updated to match this
change.
*** bfd/ChangeLog ***
2019-03-21 Sudakshina Das <sudi.das@arm.com>
* elf-bfd.h (struct elf_backend_data): Add argument to
merge_gnu_properties.
* elf-properties.c (elf_merge_gnu_properties): Add argument to
itself and while calling bed->merge_gnu_properties.
(elf_merge_gnu_property_list): Update the calls for
elf_merge_gnu_properties.
* elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update handling
of --force-bti warning and add argument.
* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Add
warning.
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Add argument.
* elfxx-x86.h (_bfd_x86_elf_merge_gnu_properties): Likewise in
declaration.
*** ld/ChangeLog ***
2019-03-21 Sudakshina Das <sudi.das@arm.com>
* testsuite/ld-aarch64/aarch64-elf.exp: Add new test.
* testsuite/ld-aarch64/bti-plt-1.s: Add .ifdef for PAC note section.
* testsuite/ld-aarch64/bti-plt-6.d: Update warning.
* testsuite/ld-aarch64/bti-plt-7.d: Likewise.
* testsuite/ld-aarch64/bti-warn.d: New test.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Fix linker crash in section symbol check.
@ 2019-03-21 22:32 sergiodj+buildbot
2019-03-21 23:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Add pointer authentication feature
@ 2019-03-22 12:22 sergiodj+buildbot
2019-03-22 13:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Add pauth DWARF registers
@ 2019-03-22 13:17 sergiodj+buildbot
2019-03-22 19:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: DWARF unwinder support for signed return addresses
@ 2019-03-22 13:31 sergiodj+buildbot
2019-03-22 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Prologue scan unwinder support for signed return addresses
@ 2019-03-22 13:48 sergiodj+buildbot
2019-03-22 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Read pauth section from core files
@ 2019-03-22 14:02 sergiodj+buildbot
2019-03-23 2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: gdbserver: read pauth registers
@ 2019-03-22 18:18 sergiodj+buildbot
2019-03-22 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-22 18:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1ef53e6b8328acd5b7d54ee2fe288836ce12992e ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 1ef53e6b8328acd5b7d54ee2fe288836ce12992e
AArch64: gdbserver: read pauth registers
Add the pauth registers to the regset lists.
Add a new regset type OPTIONAL_REGS which allows for the regset read to fail.
Once the read fails, it will not be checked again. This allows targets with
optional features to keep a single static regset_info structure.
gdb/ChangeLog:
* arch/aarch64.h (AARCH64_PAUTH_REGS_SIZE): New define.
gdb/gdbserver/ChangeLog:
* linux-aarch64-low.c (aarch64_store_pauthregset): New function.
* linux-low.c (regsets_store_inferior_registers): Allow optional reads
to fail.
* linux-low.h (enum regset_type): Add OPTIONAL_REGS.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Include bcache.h from objfiles.h
@ 2019-03-23 17:15 sergiodj+buildbot
2019-03-23 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Have parser reset the innermost block tracker
@ 2019-03-23 17:30 sergiodj+buildbot
2019-03-23 23:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove null_block_symbol
@ 2019-03-25 6:17 sergiodj+buildbot
2019-03-25 10:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] More block constification
@ 2019-03-25 6:17 sergiodj+buildbot
2019-03-25 7:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix testsuite hangs when gdb_test_multiple body errors out
@ 2019-03-25 14:22 sergiodj+buildbot
2019-03-25 15:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 14:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9a93502fa81734d39f213ccb33b497bc40e1423d ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 9a93502fa81734d39f213ccb33b497bc40e1423d
Fix testsuite hangs when gdb_test_multiple body errors out
This commit fixes a regression in the testsuite itself, triggered by
errors being raised from within gdb_test_multiple, originally reported
by Pedro Franco de Carvalho's at
<https://sourceware.org/ml/gdb-patches/2019-03/msg00160.html>. Parts
of the commit message are based on his report.
This started happening due to a commit that was introduced recently,
and it can cause the testsuite to hang.
The commit that triggers this is:
fe1a5cad302b5535030cdf62895e79512713d738
[gdb/testsuite] Log wait status on process no longer exists error
That commit introduces a new "eof" block in gdb_test_multiple. That
is not incorrect itself, but dejagnu's remote_expect is picking that
block as the "default" action when an error is raised from within the
commands inside a call to gdb_test_multiple:
# remote_expect works basically the same as standard expect, but it
# also takes care of getting the file descriptor from the specified
# host and also calling the timeout/eof/default section if there is an
# error on the expect call.
#
proc remote_expect { board timeout args } {
I find that "feature" surprising, and I don't really know why it
exists, but this means that the eof section that remote_expect picks
as the error block can be executed even when there was no actual eof
and the GDB process is still running, so the wait introduced in the
commit that tries to get the exit status of GDB hangs forever, while
GDB itself waits for input.
This only happens when there are internal testsuite errors (not
testcase failures). This can be reproduced easily with a testcase
such as:
gdb_start
gdb_test_multiple "show version" "show version" {
-re ".*" {
error "forced error"
}
}
I think that working around this in GDB is useful so that the
testsuite doesn't hang in these cases.
Adding an empty "default" block at the end of the expect body in
gdb_test_multiple doesn't work, because dejagnu gives preference to
"eof" blocks:
if { $x eq "eof" } {
set save_next 1
} elseif { $x eq "default" || $x eq "timeout" } {
if { $error_sect eq "" } {
set save_next 1
}
}
And we do have "eof" blocks. So we need to make sure that the last
"eof" block is safe to use as the default error block. It's also
pedantically incorrect to print
"ERROR: Process no longer exists"
which is what we'd get if the last eof block we have was selected
(more below on this).
So this commit solves this by appending an "eof" with an empty
spawn_id list, so that it won't ever match.
Now, why is the first "eof" block selected today as the error block,
instead of the last one?
The reason is that remote_expect, while parsing the body to select the
default block to execute after an error, is affected by the comments
in the body (since they are also parsed).
If this comment in gdb_test_multiple
# patterns below apply to any spawn id specified.
is changed to
# The patterns below apply to any spawn id specified.
then the second eof block is selected and there is no hang.
Any comment at that same place with an even number of tokens also
works.
This is IMO a coincidence caused by how comments work in TCL.
Comments should only appear in places where a command can appear. And
here, remote_expect is parsing a list of options, not commands, so
it's not unreasonable to not parse comments, similarly to how this:
set a_list {
an_element
# another_element
}
results in a list with three elements, not one element.
The fact that comments with an even number of tokens work is just a
coincidence of how remote_expect's little state machine is
implemented.
I thought we could solve this by stripping out comment lines in
gdb_expect, but I didn't find an easy way to do that. Particularly, a
couple naive approaches I tried run into complications. For example,
we have gdb_test calls with regular expressions that include sequences
like "\r\n#", and by the time we get to gdb_expect, the \r\n have
already been expanded to a real newline, so just splitting the whole
body at newline boundaries, looking for lines that start with #
results in incorrectly stripping out half of the gdb_text regexp. I
think it's better (at least in this commit), to move the comments out
of the list, because it's much simpler and risk free.
gdb/testsuite/ChangeLog:
2019-03-25 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (gdb_test_multiple): Split appends to $code and
move comments outside list. Append '-i "" eof' section.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] AArch64: Fix disassembler bug with out-of-order sections
@ 2019-03-25 15:59 sergiodj+buildbot
2019-03-25 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 15:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 53b2f36bf6aa939feab6f82f05d7dad52f82660d ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 53b2f36bf6aa939feab6f82f05d7dad52f82660d
AArch64: Fix disassembler bug with out-of-order sections
The AArch64 disassembler has an optimization that it uses to reduce the amount
it has to search for mapping symbols during disassembly. This optimization
assumes that sections are listed in the section header in monotonic increasing
VMAs. However this is not a requirement for the ELF specification.
Because of this when such "out of order" sections occur the disassembler would
pick the wrong mapping symbol to disassemble the section with.
This fixes it by explicitly passing along the stop offset for the current
disassembly glob and when this changes compared to the previous one we've seen
the optimization won't be performed. In effect this restarts the search from
a well defined starting point. Usually the symbol's address.
The existing stop_vma can't be used for this as it is allowed to be unset and
setting this unconditionally would change the semantics of this field.
binutils/ChangeLog:
* objdump.c (disassemble_bytes): Pass stop_offset.
* testsuite/binutils-all/aarch64/out-of-order.T: New test.
* testsuite/binutils-all/aarch64/out-of-order.d: New test.
* testsuite/binutils-all/aarch64/out-of-order.s: New test.
include/ChangeLog:
* dis-asm.h (struct disassemble_info): Add stop_offset.
opcodes/ChangeLog:
* aarch64-dis.c (last_stop_offset): New.
(print_insn_aarch64): Use stop_offset.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix s390 build
@ 2019-03-25 17:24 sergiodj+buildbot
2019-03-26 1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Note support for TLS variables on FreeBSD.
@ 2019-03-25 20:39 sergiodj+buildbot
2019-03-26 6:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Arm: Fix Arm disassembler mapping symbol search.
@ 2019-03-25 22:26 sergiodj+buildbot
2019-03-25 22:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-25 22:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 796d6298bb11deab06814cc38cfe74a1bfc57551 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 796d6298bb11deab06814cc38cfe74a1bfc57551
Arm: Fix Arm disassembler mapping symbol search.
Similar to the AArch64 patches the Arm disassembler has the same issues with
out of order sections but also a few short comings.
For one thing there are multiple code blocks to determine mapping symbols, and
they all work slightly different, and neither fully correct. The first thing
this patch does is centralise the mapping symbols search into one function
mapping_symbol_for_insn. This function is then updated to perform a search in
a similar way as AArch64.
Their used to be a value has_mapping_symbols which was used to determine the
default disassembly for objects that have no mapping symbols. The problem with
the approach was that it was determining this value in the same loop that needed
it, which is why this field could take on the states -1, 0, 1 where -1 means
"don't know". However this means that until you actually find a mapping symbol
or reach the end of the disassembly glob, you don't know if you did the right
action or not, and if you didn't you can't correct it anymore.
This is why the two jump-reloc-veneers-* testcases end up disassembling some
insn as data when they shouldn't.
Out of order here refers to an object file where sections are not listed in a
monotonic increasing VMA order.
The ELF ABI for Arm [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/ihi0044/latest/elf-for-the-arm-architecture-abi-2018q4-documentation#aaelf32-table4-7
binutils/ChangeLog:
* testsuite/binutils-all/arm/in-order-all.d: New test.
* testsuite/binutils-all/arm/in-order.d: New test.
* testsuite/binutils-all/arm/objdump.exp: Support .d tests.
* testsuite/binutils-all/arm/out-of-order-all.d: New test.
* testsuite/binutils-all/arm/out-of-order.T: New test.
* testsuite/binutils-all/arm/out-of-order.d: New test.
* testsuite/binutils-all/arm/out-of-order.s: New test.
ld/ChangeLog:
* testsuite/ld-arm/jump-reloc-veneers-cond-long.d: Update disassembly.
* testsuite/ld-arm/jump-reloc-veneers-long.d: Update disassembly.
opcodes/ChangeLog:
* arm-dis.c (struct arm_private_data): Remove has_mapping_symbols.
(mapping_symbol_for_insn): Implement new algorithm.
(print_insn): Remove duplicate code.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdbserver: Add linux_get_hwcap
@ 2019-03-26 17:26 sergiodj+buildbot
2019-03-26 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 17:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 974c89e0882ddb03e294eca76a9e3d3bef90eacf ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 974c89e0882ddb03e294eca76a9e3d3bef90eacf
gdbserver: Add linux_get_hwcap
In gdbserver, Tidy up calls to read HWCAP (and HWCAP2) by adding common
functions, removing the Arm, AArch64, PPC and S390 specific versions.
No functionality differences.
gdb/gdbserver/ChangeLog:
* linux-aarch64-low.c (aarch64_get_hwcap): Remove function.
(aarch64_arch_setup): Call linux_get_hwcap.
* linux-arm-low.c (arm_get_hwcap): Remove function.
(arm_read_description): Call linux_get_hwcap.
* linux-low.c (linux_get_auxv): New function.
(linux_get_hwcap): Likewise.
(linux_get_hwcap2): Likewise.
* linux-low.h (linux_get_hwcap): New declaration.
(linux_get_hwcap2): Likewise.
* linux-ppc-low.c (ppc_get_auxv): Remove function.
(ppc_arch_setup): Call linux_get_hwcap.
* linux-s390-low.c (s390_get_hwcap): Remove function.
(s390_arch_setup): Call linux_get_hwcap.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Avoid trailing whitespace when pretty printing
@ 2019-03-26 20:13 sergiodj+buildbot
2019-03-26 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix Powerpc build
@ 2019-03-26 20:58 sergiodj+buildbot
2019-03-26 21:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-26 20:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 53c973f200e39c4122e0db06a94e3a0079e6de80 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 53c973f200e39c4122e0db06a94e3a0079e6de80
Fix Powerpc build
gdb/ChangeLog:
* ppc-linux-nat.c: Add include.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Testsuite: Ensure interrupt-daemon-attach doesn't run forever
@ 2019-03-27 12:22 sergiodj+buildbot
2019-03-27 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-28 4:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] sim/common: convert sim-arange to use sim-inline
@ 2019-03-27 22:18 sergiodj+buildbot
2019-03-28 4:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdbserver: Ensure AT_HWCAP2 is defined
@ 2019-03-28 12:45 sergiodj+buildbot
2019-03-28 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: View the pseudo V registers as vectors
@ 2019-03-28 17:50 sergiodj+buildbot
2019-03-28 20:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-03-28 17:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bffa1015cd6cb4a2a4bd1276ed749d150684dd5c ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: bffa1015cd6cb4a2a4bd1276ed749d150684dd5c
AArch64: View the pseudo V registers as vectors
When SVE is enabled, the V registers become pseudo registers based
on the Z registers. They should look the same as they do when
there is no SVE.
The existing code viewed them as single value registers. Switch
this to a vector.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_vnv_type): Use vector types.
^ permalink raw reply [flat|nested] 4390+ 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-29 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] sim: fix all sim builds
@ 2019-03-28 23:33 sergiodj+buildbot
2019-03-29 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 22:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce new convenience variables $_gdb_major and $_gdb_minor
@ 2019-03-30 10:38 sergiodj+buildbot
2019-03-30 12:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add gdb.Value.format_string ()
@ 2019-04-01 8:39 sergiodj+buildbot
2019-04-01 11:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-04-01 8:39 [binutils-gdb] Add gdb.Value.format_string () sergiodj+buildbot
@ 2019-04-01 11:30 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-01 11:30 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7768>
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/Debian-s390x-native-gdbserver-m64/52/52093e1b936fa4f3f8bb3868c5a44d0df25c8db4/>
*** Diff to previous build ***
============================
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option actual_objects: actual_objects=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option actual_objects: actual_objects=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option array_indexes: array_indexes=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option array_indexes: array_indexes=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option deref_refs: deref_refs=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option deref_refs: deref_refs=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_arrays: pretty_arrays=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_arrays: pretty_arrays=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_structs: pretty_structs=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_structs: pretty_structs=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option raw: raw=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option raw: raw=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option static_members: static_members=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option static_members: static_members=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option symbols: symbols=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option symbols: symbols=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option unions: unions=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union: no opts
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union: str
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: format='d': a_struct_with_union with option format='d'
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: format='x': a_struct_with_union with option format='x'
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=0: a_struct_with_union with option max_elements=0
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=1000: a_struct_with_union with option max_elements=1000
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=200: a_struct_with_union with option max_elements=200
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=3: a_struct_with_union with option max_elements=3
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=0: a_struct_with_union with option repeat_threshold=0
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=100: a_struct_with_union with option repeat_threshold=100
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=10: a_struct_with_union with option repeat_threshold=10
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=1: a_struct_with_union with option repeat_threshold=1
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=3: a_struct_with_union with option repeat_threshold=3
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: 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_c: 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_c: set print structs on: a_struct_with_union: no opts
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: set print structs on: a_struct_with_union: str
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: set print union off: 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 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
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=ff41bf48>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=ff41bf48>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Destroy allocated values when exiting GDB
@ 2019-04-01 15:18 sergiodj+buildbot
2019-04-01 16:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Handle DW_AT_ranges when reading partial symtabs
@ 2019-04-01 17:31 sergiodj+buildbot
2019-04-01 18:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Add $_cimag and $_creal internal functions
@ 2019-04-01 21:35 sergiodj+buildbot
2019-04-01 22:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Handle internal function calls
@ 2019-04-01 21:51 sergiodj+buildbot
2019-04-02 0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] BFD whitespace fixes
@ 2019-04-03 4:24 sergiodj+buildbot
2019-04-03 5:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-03 4:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4b24dd1acad5c133d12aab6a575c83269336e47f ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4b24dd1acad5c133d12aab6a575c83269336e47f
BFD whitespace fixes
* coff-i386.c, * coff-x86_64.c, * coffgen.c, * dwarf2.c,
* elf-m10200.c, * elf.c, * elf32-arm.c, * elf32-bfin.c,
* elf32-csky.c, * elf32-m32r.c, * elf32-microblaze.c, * elf32-pru.c,
* elf32-rx.c, * elf32-xgate.c, * elf64-sparc.c, * elfnn-ia64.c,
* elfxx-riscv.c, * elfxx-sparc.c, * linker.c, * mach-o.c,
* pe-x86_64.c, * pei-x86_64.c, * plugin.c: Whitespace fixes.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [GDB, Hurd] Fix build; 'target_waitstatus_to_string' call
@ 2019-04-04 23:54 sergiodj+buildbot
2019-04-08 11:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC disassembler: Don't emit trailing spaces
@ 2019-04-05 2:09 sergiodj+buildbot
2019-04-09 11:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC bc extended branch mnemonics and "y" hints
@ 2019-04-05 2:26 sergiodj+buildbot
2019-04-09 12:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make increase_expout_size static
@ 2019-04-05 2:42 sergiodj+buildbot
2019-04-09 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Turn parse_gdbarch into a method
@ 2019-04-05 3:47 sergiodj+buildbot
2019-04-09 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move expression_context_* globals to parser_state
@ 2019-04-05 4:17 sergiodj+buildbot
2019-04-09 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove paren_depth global
@ 2019-04-05 4:17 sergiodj+buildbot
2019-04-10 1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move lexptr and prev_lexptr to parser_state
@ 2019-04-05 4:48 sergiodj+buildbot
2019-04-10 5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move innermost_block_tracker global to parse_state
@ 2019-04-05 5:50 sergiodj+buildbot
2019-04-10 11:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-10 15:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-10 20:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Merge libiberty from gcc
@ 2019-04-07 13:25 sergiodj+buildbot
2019-04-11 6:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24421, Wrong brackets in opcodes/arm-dis.c
@ 2019-04-07 13:40 sergiodj+buildbot
2019-04-11 8:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix x86_64-rdos build fail
@ 2019-04-08 4:59 sergiodj+buildbot
2019-04-11 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Simplify exception handling
@ 2019-04-08 15:37 sergiodj+buildbot
2019-04-11 13:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make exceptions use std::string and be self-managing
@ 2019-04-08 15:53 sergiodj+buildbot
2019-04-11 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove some now-dead exception code
@ 2019-04-08 16:39 sergiodj+buildbot
2019-04-11 20:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Rewrite TRY/CATCH
@ 2019-04-08 16:39 sergiodj+buildbot
2019-04-11 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Replace throw_exception with throw in some cases
@ 2019-04-08 17:11 sergiodj+buildbot
2019-04-12 0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] x86: Remove i386-*-kaos* and i386-*-chaos targets
@ 2019-04-08 19:19 sergiodj+buildbot
2019-04-12 3:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Some gdb_exception{,error,quit} tweaks
@ 2019-04-08 19:35 sergiodj+buildbot
2019-04-12 5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add python method InferiorThread.handle
@ 2019-04-09 4:09 sergiodj+buildbot
2019-04-12 10:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Tests for gdb.InferiorThread.handle
@ 2019-04-09 4:40 sergiodj+buildbot
2019-04-12 13:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [MIPS] Add RDHWR with the SEL field for MIPS R6.
@ 2019-04-09 10:15 sergiodj+buildbot
2019-04-12 17:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove parser_state "initial_size" parameter
@ 2019-04-09 16:15 sergiodj+buildbot
2019-04-09 16:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 16:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1201a264c8fd227737342345ab54e938295188b6 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 1201a264c8fd227737342345ab54e938295188b6
Remove parser_state "initial_size" parameter
All the real (not test) uses of parser_state pass 10 as the
"initial_size" parameter, and it seems to me that there's no real
reason to require callers to set this. This patch removes this
parameter.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* dtrace-probe.c (dtrace_probe::build_arg_exprs): Update.
* stap-probe.c (stap_parse_argument): Update.
* stap-probe.h (struct stap_parse_info) <stap_parse_info>: Remove
initial_size parameter.
* rust-exp.y (rust_lex_tests): Update.
* parse.c (parser_state): Update.
(parse_exp_in_context): Update.
* parser-defs.h (struct parser_state) <parser_state>: Remove
"initial_size" parameter.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use -qualified flag when setting temporary breakpoint in start command
@ 2019-04-09 16:54 sergiodj+buildbot
2019-04-12 19:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Consistently use bool for fake_pid_p
@ 2019-04-09 18:18 sergiodj+buildbot
2019-04-12 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix Rust lexer buglet
@ 2019-04-09 19:44 sergiodj+buildbot
2019-04-13 0:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Turn parse_language into a method
@ 2019-04-09 19:44 sergiodj+buildbot
2019-04-09 20:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-09 19:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 73923d7eedc7ab52144308ef7e9c12cbe4341bca ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 73923d7eedc7ab52144308ef7e9c12cbe4341bca
Turn parse_language into a method
This changes parse_language 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_language" with method call.
* p-exp.y:
(yylex): Replace "parse_language" with method call.
* m2-exp.y:
(yylex): Replace "parse_language" with method call.
* go-exp.y (classify_name): Replace "parse_language" with method
call.
* f-exp.y (yylex): Replace "parse_language" with method call.
* d-exp.y (lex_one_token): Replace "parse_language" with method
call.
* c-exp.y:
(lex_one_token, classify_name, yylex): Replace "parse_language"
with method call.
* ada-exp.y (find_primitive_type, type_char)
(type_system_address): Replace "parse_language" with method call.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Move type stack handling to a new class
@ 2019-04-10 9:17 sergiodj+buildbot
2019-04-10 9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 9:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dac43e327d002107f6bc9481749de039f410df73 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: dac43e327d002107f6bc9481749de039f410df73
Move type stack handling to a new class
This introduces a new "type_stack" class, and moves all the parser
type stack handling to this class. Parsers that wish to use this
facility must now instantiate this class somehow. I chose this
approach because a minority of the existing parsers require this.
gdb/ChangeLog
2019-04-04 Tom Tromey <tom@tromey.com>
* type-stack.h: New file.
* type-stack.c: New file.
* parser-defs.h (enum type_pieces, union type_stack_elt): Move to
type-stack.h.
(insert_into_type_stack, insert_type, push_type, push_type_int)
(insert_type_address_space, pop_type, pop_type_int)
(pop_typelist, pop_type_stack, append_type_stack)
(push_type_stack, get_type_stack, push_typelist)
(follow_type_instance_flags, follow_types): Don't declare.
* parse.c (type_stack): Remove global.
(parse_exp_in_context): Update.
(insert_into_type_stack, insert_type, push_type, push_type_int)
(insert_type_address_space, pop_type, pop_type_int)
(pop_typelist, pop_type_stack, append_type_stack)
(push_type_stack, get_type_stack, push_typelist)
(follow_type_instance_flags, follow_types): Remove (moved to
type-stack.c).
* f-exp.y (type_stack): New global.
Update rules.
(push_kind_type, f_parse): Update.
* d-exp.y (type_stack): New global.
Update rules.
(d_parse): Update.
* c-exp.y (struct c_parse_state) <type_stack>: New member.
Update rules.
* Makefile.in (COMMON_SFILES): Add type-stack.c.
(HFILES_NO_SRCDIR): Add type-stack.h.
^ permalink raw reply [flat|nested] 4390+ 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-13 2:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove some uses of "object_files"
@ 2019-04-10 14:24 sergiodj+buildbot
2019-04-13 4:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] x86: Support Intel AVX512 BF16
@ 2019-04-10 16:12 sergiodj+buildbot
2019-04-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-10 16:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d6aab7a11b8bd85de43f9fe6b1cea95b504e73ad ***
Author: Xuepeng Guo <xuepeng.guo@intel.com>
Branch: master
Commit: d6aab7a11b8bd85de43f9fe6b1cea95b504e73ad
x86: Support Intel AVX512 BF16
Add assembler and disassembler support Intel AVX512 BF16:
https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference
gas/
2019-04-05 Xuepeng Guo <xuepeng.guo@intel.com>
* config/tc-i386.c (cpu_arch): Add .avx512_bf16.
(cpu_noarch): Add noavx512_bf16.
* doc/c-i386.texi: Document avx512_bf16.
* testsuite/gas/i386/avx512_bf16.d: New file.
* testsuite/gas/i386/avx512_bf16.s: Likewise.
* testsuite/gas/i386/avx512_bf16_vl-inval.l: Likewise.
* testsuite/gas/i386/avx512_bf16_vl-inval.s: Likewise.
* testsuite/gas/i386/avx512_bf16_vl.d: Likewise.
* testsuite/gas/i386/avx512_bf16_vl.s: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16.d: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16.s: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.l: Likesie.
* testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.s: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16_vl.d: Likewise.
* testsuite/gas/i386/x86-64-avx512_bf16_vl.s: Likewise.
* testsuite/gas/i386/i386.exp: Add BF16 related tests.
opcodes/
2019-04-05 Xuepeng Guo <xuepeng.guo@intel.com>
* i386-dis-evex.h (evex_table): Updated to support BF16
instructions.
* i386-dis.c (enum): Add EVEX_W_0F3852_P_1, EVEX_W_0F3872_P_1
and EVEX_W_0F3872_P_3.
* i386-gen.c (cpu_flag_init): Add CPU_AVX512_BF16_FLAGS.
(cpu_flags): Add bitfield for CpuAVX512_BF16.
* i386-opc.h (enum): Add CpuAVX512_BF16.
(i386_cpu_flags): Add bitfield for cpuavx512_bf16.
* i386-opc.tbl: Add AVX512 BF16 instructions.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix amd64->i386 linux syscall restart problem
@ 2019-04-11 0:58 sergiodj+buildbot
2019-04-13 11:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] print_insn_powerpc tidy
@ 2019-04-11 9:21 sergiodj+buildbot
2019-04-11 9:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-11 9:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e392bad3ec99458369723e14ded8c23b5b13073c ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: e392bad3ec99458369723e14ded8c23b5b13073c
print_insn_powerpc tidy
* ppc-dis.c (print_insn_powerpc): Use a tiny state machine
op_separator to control printing of spaces, comma and parens
rather than need_comma, need_paren and spaces vars.
^ permalink raw reply [flat|nested] 4390+ 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-13 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24435, buffer overflow reading dynamic entries
@ 2019-04-11 11:45 sergiodj+buildbot
2019-04-13 20:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make "msg" const in internal_vproblem
@ 2019-04-11 19:21 sergiodj+buildbot
2019-04-14 3:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Fix alignment computation for structs with only static fields
@ 2019-04-11 23:12 sergiodj+buildbot
2019-04-14 6:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] x86: Define GNU_PROPERTY_X86_ISA_1_AVX512_BF16
@ 2019-04-12 6:05 sergiodj+buildbot
2019-04-12 7:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 6:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 462cac5884ed4c38e6180b2e2769aaa5225e695b ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 462cac5884ed4c38e6180b2e2769aaa5225e695b
x86: Define GNU_PROPERTY_X86_ISA_1_AVX512_BF16
Update assembler and readelf to support
#define GNU_PROPERTY_X86_ISA_1_AVX512_BF16 (1U << 24)
for AVX512_BF16.
binutils/
* readelf.c (decode_x86_isa): Handle
GNU_PROPERTY_X86_ISA_1_AVX512_BF16.
* testsuite/binutils-all/i386/pr21231b.d: Updated.
* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
gas/
* config/tc-i386.c (output_insn): Support
GNU_PROPERTY_X86_ISA_1_AVX512_BF16.
* testsuite/gas/i386/property-2.s: Add AVX512_BF16 test.
* testsuite/gas/i386/property-2.d: Updated.
* testsuite/gas/i386/x86-64-property-2.d: Likewise.
include/
* elf/common.h (GNU_PROPERTY_X86_ISA_1_AVX512_BF16): New.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Testsuite: Add gdbserver sysroot test
@ 2019-04-12 10:57 sergiodj+buildbot
2019-04-14 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Another fix for GDB styling
@ 2019-04-12 12:53 sergiodj+buildbot
2019-04-14 13:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce a separate debug objfile iterator
@ 2019-04-12 15:20 sergiodj+buildbot
2019-04-13 7:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e9ad22ee5f0a40dfa1182ee68e3349dd72a42afe ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e9ad22ee5f0a40dfa1182ee68e3349dd72a42afe
Introduce a separate debug objfile iterator
This introduces a new iterator and range adapter for iteration over
the separate debug files of a given objfile. As in the current
approach, the requested objfile is returned first, followed by the
separate debug objfiles.
gdb/ChangeLog
2019-04-10 Tom Tromey <tom@tromey.com>
* symtab.c (lookup_global_symbol_from_objfile)
(lookup_symbol_in_objfile_from_linkage_name): Use the iterator.
* objfiles.h (class separate_debug_iterator): New.
(class separate_debug_range): New.
(struct objfile) <separate_debug_objfiles>: New method.
(objfile_separate_debug_iterate): Don't declare.
* objfiles.c (separate_debug_iterator::operator++): Rename from
objfile_separate_debug_iterate.
(objfile_relocate, objfile_rebase, objfile_has_symbols): Use the
iterator.
* minsyms.c (lookup_minimal_symbol_by_pc_section): Use the
iterator.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] AArch64: Ensure regcache is reset between tests
@ 2019-04-12 15:22 sergiodj+buildbot
2019-04-13 13:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 68811f8ff84895ef1cad37ac6947f1a340dd2ae2 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 68811f8ff84895ef1cad37ac6947f1a340dd2ae2
AArch64: Ensure regcache is reset between tests
A recent change made the AArch64 self tests resuse the saved regs
cache, rather than creating a new one. Ensure it is reset to default
values between tests.
Do this by splitting the reset functionality from trad_frame_alloc_saved_regs
into a new function.
Fixes selftest on AArch64.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_analyze_prologue_test): Reset saved regs.
* trad-frame.c (trad_frame_reset_saved_regs): New function.
(trad_frame_alloc_saved_regs): Call trad_frame_reset_saved_regs.
* trad-frame.h (trad_frame_reset_saved_regs): New declaration.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] x86: Add -z cet-report=[none|warning|error]
@ 2019-04-12 15:25 sergiodj+buildbot
2019-04-13 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 233a00833b984319d5e94db3f5d5d9a735edc984 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: 233a00833b984319d5e94db3f5d5d9a735edc984
x86: Add -z cet-report=[none|warning|error]
Add -z cet-report=[none|warning|error] to report the missing Intel
Indirect Branch Tracking (IBT) and Shadow Stack (SHSTK) properties
in input .note.gnu.property section. -z cet-report=none, which is
the default, will make the linker not report missing properties in
input files. -z cet-report=warning will make the linker issue a
warning for missing properties in input files. -z cet-report=error
will make the linker issue an error for missing properties in input
files. Note that -z ibt will turn off the missing IBT property report
and -z shstk will turn off the missing SHSTK property report.
Supported for Linux/i386 and Linux/x86_64.
bfd/
* elf-linker-x86.h (elf_x86_cet_report): New.
(elf_linker_x86_params): Add cet_report.
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Report
missing IBT and SHSTK properties if needed.
ld/
* ld.texi: Document -z cet-report=[none|warning|error].
* emulparams/cet.sh: Add -z cet-report=[none|warning|error].
* testsuite/ld-i386/i386.exp: Run -z cet-report=[warning|error]
tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/property-x86-cet1.d: New file.
* testsuite/ld-i386/property-x86-cet2a.d: Likewise.
* testsuite/ld-i386/property-x86-cet2b.d: Likewise.
* testsuite/ld-i386/property-x86-cet3a.d: Likewise.
* testsuite/ld-i386/property-x86-cet3b.d: Likewise.
* testsuite/ld-i386/property-x86-cet4a.d: Likewise.
* testsuite/ld-i386/property-x86-cet4b.d: Likewise.
* testsuite/ld-i386/property-x86-cet5a.d: Likewise.
* testsuite/ld-i386/property-x86-cet5b.d: Likewise.
* testsuite/ld-i386/property-x86-cet6.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet.s: Likewise.
* testsuite/ld-x86-64/property-x86-cet1-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet1.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet2a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet2a.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet2b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet2b.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet3b.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet4a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet4a.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet4b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet4b.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet5a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet5a.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet5b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet5b.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet6-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-cet6.d: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Remove riscv_type_alignment function
@ 2019-04-12 15:29 sergiodj+buildbot
2019-04-14 8:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-12 15:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a9158a863c18545634cb0f0462b326aeca30634c ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: a9158a863c18545634cb0f0462b326aeca30634c
gdb/riscv: Remove riscv_type_alignment function
Make use of the type_align function and remove riscv_type_alignment as
it is no longer needed. I tested this against a number of RV32 and
RV64 targets, and I also ran the tests with an assertion in place
checking that the old riscv_type_alignment function gives the same
answer as the common type_align function - it does, and all the tests
still pass.
gdb/ChangeLog:
* riscv-tdep.c (riscv_type_align): New function.
(riscv_type_alignment): Delete.
(riscv_arg_location): Use 'type_align'.
(riscv_gdbarch_init): Register riscv_type_align gdbarch function.
^ permalink raw reply [flat|nested] 4390+ 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-16 0:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [binutils, ARM, 13/16] Add support for CLRM
@ 2019-04-15 14:41 sergiodj+buildbot
2019-04-16 7:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-16 12:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Tidy up aarch64_gdbarch_init
@ 2019-04-15 15:51 sergiodj+buildbot
2019-04-16 14:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64 SVE: Check for vector length change when getting gdbarch
@ 2019-04-15 16:10 sergiodj+buildbot
2019-04-16 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix AMD64 return value ABI in expression evaluation
@ 2019-04-15 16:46 sergiodj+buildbot
2019-04-16 19:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [binutils, ARM, 12/16] Scalar Low Overhead loop instructions for Armv8.1-M Mainline
@ 2019-04-16 4:47 sergiodj+buildbot
2019-04-16 4:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-16 4:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 60f993ce170b91876ad41e8f7339c24afd63fac2 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 60f993ce170b91876ad41e8f7339c24afd63fac2
[binutils, ARM, 12/16] Scalar Low Overhead loop instructions 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 support to the Scalar low overhead loop instructions:
LE
WLS
DLS
We also add a new assembler resolvable relocation bfd_reloc_code_real enum for the 12-bit branch offset used in these instructions.
ChangeLog entries are as follows:
*** bfd/ChnageLog ***
2019-04-12 Sudakshina Das <sudi.das@arm.com>
* reloc.c (BFD_RELOC_ARM_THUMB_LOOP12): New.
* bfd-in2.h: Regenerated.
* libbfd.h: Regenerated.
*** gas/ChangeLog ***
2019-04-12 Sudakshina Das <sudi.das@arm.com>
Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/tc-arm.c (operand_parse_code): Add OP_LR and OP_oLR
for the LR operand and optional LR operand.
(parse_operands): Add switch cases for OP_LR and OP_oLR for
both type checking and value checking.
(encode_thumb32_addr_mode): New entries for DLS, WLS and LE.
(v8_1_loop_reloc): New helper function for handling labels
for the low overhead loop instructions.
(do_t_loloop): New function to encode DLS, WLS and LE.
(insns): New entries for WLS, DLS and LE.
(md_pcrel_from_section): New switch case
for BFD_RELOC_ARM_THUMB_LOOP12.
(md_appdy_fix): Likewise.
(tc_gen_reloc): Likewise.
* testsuite/gas/arm/armv8_1-m-tloop.s: New.
* testsuite/gas/arm/armv8_1-m-tloop.d: New.
* testsuite/gas/arm/armv8_1-m-tloop-bad.s: New.
* testsuite/gas/arm/armv8_1-m-tloop-bad.d: New.
* testsuite/gas/arm/armv8_1-m-tloop-bad.l: New.
*** opcodes/ChangeLog ***
2019-04-12 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (print_insn_thumb32): Updated to accept new %P
and %Q patterns.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [opcodes, ARM, 14/16] Add mode availability to coprocessor table entries
@ 2019-04-16 7:40 sergiodj+buildbot
2019-04-16 8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-16 7:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6b0dd094741bc5e9963eabc64a7030783e471941 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 6b0dd094741bc5e9963eabc64a7030783e471941
[opcodes, ARM, 14/16] Add mode availability to coprocessor table entries
The coprocessor_opcodes table is used both to share commonalities in coprocessor-related instructions and to avoid duplication between Arm and Thumb mode. However, some instructions do have differences between Arm and Thumb. For instance, vldmia allows PC as base register in Arm mode but not in Thumb mode.
In that very case the distinction becomes necessary because the encoding with PC as base register is used in Thumb mode to denote a VSCCLRM. It is thus necessary to distinguish what is Arm or Thumb only from what is shared. This patch adds an extra field to the coprocessor_opcodes table entries to indicate what mode is a given instruction available in. The print_insn_coprocessor then uses that field to determine if an entry that matched the mark and value checked should be allowed to match or not given the current mode.
ChangeLog entry is as follows:
*** opcodes/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* arm-dis.c (enum isa): New enum.
(struct sopcode32): New structure.
(coprocessor_opcodes): change type of entries to struct sopcode32 and
set isa field of all current entries to ANY.
(print_insn_coprocessor): Change type of insn to struct sopcode32.
Only match an entry if its isa field allows the current mode.
^ permalink raw reply [flat|nested] 4390+ 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 1:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdbserver: Ensure all debug output uses debug functions
@ 2019-04-17 13:47 sergiodj+buildbot
2019-04-17 13:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-17 13:47 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7e559cc087b10b9ea337b58e52cc13964aae3fb ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: a7e559cc087b10b9ea337b58e52cc13964aae3fb
gdbserver: Ensure all debug output uses debug functions
All debug output needs to go via debug functions to ensure it writes to the
correct output stream.
gdb/ChangeLog:
* nat/linux-waitpid.c (linux_debug): Call debug_vprintf.
gdb/gdbserver/ChangeLog:
* ax.c (ax_vdebug): Call debug_printf.
* debug.c (debug_write): New function.
* debug.h (debug_write): New declaration.
* linux-low.c (sigchld_handler): Call debug_write.
^ permalink raw reply [flat|nested] 4390+ 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 17:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] x86: Suggest -fPIE when not building shared object
@ 2019-04-17 17:44 sergiodj+buildbot
2019-04-17 19:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 18:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 23:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix "list" when control characters are seen
@ 2019-04-20 15:56 sergiodj+buildbot
2019-04-20 23:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make copy_name return std::string
@ 2019-04-20 17:12 sergiodj+buildbot
2019-04-21 8:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make objfile::static_links an htab_up
@ 2019-04-20 17:28 sergiodj+buildbot
2019-04-21 11:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use std::list for event notifications in gdbserver
@ 2019-04-20 17:46 sergiodj+buildbot
2019-04-21 12:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove common/queue.h
@ 2019-04-20 18:38 sergiodj+buildbot
2019-04-21 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/configure.ac: add --enable-source-highlight
@ 2019-04-21 4:17 sergiodj+buildbot
2019-04-21 5:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-21 4:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 189b8c2e104017600104457b97315da74a22f549 ***
Author: Sergei Trofimovich <siarheit@google.com>
Branch: master
Commit: 189b8c2e104017600104457b97315da74a22f549
gdb/configure.ac: add --enable-source-highlight
Allow disabling source-highlight dependency autodetection even
it exists in the system. More details on problem of automatic
dependencies:
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies
Noticed by Jeroen Roovers in https://bugs.gentoo.org/680238
* configure.ac: add --enable-source-highlight switch.
* configure: Regenerate.
* top.c (print_gdb_version): plumb --enable-source-highlight
status to "show configuration".
gdb/ChangeLog
2019-04-19 Sergei Trofimovich <siarheit@google.com>
* configure.ac: add --enable-source-highlight switch.
* configure: Regenerate.
* top.c (print_gdb_version): plumb --enable-source-highlight
status to "show configuration".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use std::list for remote_notif_state::notif_queue
@ 2019-04-21 14:06 sergiodj+buildbot
2019-04-21 14:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-21 14:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8
Use std::list for remote_notif_state::notif_queue
This changes remote_notif_state::notif_queue to be a std::list and
updates all the uses.
gdb/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* remote.c (remote_target): Use delete.
* remote-notif.h: Include <list>, not "common/queue.h".
(notif_client_p): Remove typedef.
(remote_notif_state): Add constructor, destructor, initializer.
<notif_queue>: Now a std::list.
(remote_notif_state_xfree): Don't declare.
* remote-notif.c (remote_notif_process, handle_notification)
(remote_notif_state_allocate): Update.
(~remote_notif_state): Rename from remote_notif_state_xfree.
^ permalink raw reply [flat|nested] 4390+ 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 9:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Testsuite: Remove pie from trace tests
@ 2019-04-23 13:32 sergiodj+buildbot
2019-04-23 15:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove unused overload of line_header::file_name_at
@ 2019-04-23 17:28 sergiodj+buildbot
2019-04-23 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/iq2000: Use default gdbarch methods where possible
@ 2019-04-23 22:28 sergiodj+buildbot
2019-04-24 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/aarch64: Use type_align instead of aarch64_type_align
@ 2019-04-23 22:46 sergiodj+buildbot
2019-04-24 2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-23 22:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b907456c3eb8a08f6b211f66abb448df962749e1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: b907456c3eb8a08f6b211f66abb448df962749e1
gdb/aarch64: Use type_align instead of aarch64_type_align
Replaces use of aarch64_type_align with common type_align function.
Doing this fixes a bug in aarch64_type_align where static fields are
considered as part of the alignment calculation of a struct, which
results in arguments passed on the stack being misaligned. This bug
is exposed in the new test gdb.cp/many-args.exp.
Part of the old aarch64_type_align is retained and used as the gdbarch
type align callback in order to correctly align vectors.
gdb/ChangeLog:
* aarch64-tdep.c (aarch64_type_align): Only handle vector override
case.
(pass_on_stack): Use type_align.
(aarch64_gdbarch_init): Register aarch64_type_align gdbarch
function.
gdb/testsuite/ChangeLog:
* gdb.cp/many-args.cc: New file.
* gdb.cp/many-args.exp: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/lm32: Use default gdbarch methods where possible
@ 2019-04-23 22:47 sergiodj+buildbot
2019-04-24 14:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/m32c: Use default gdbarch methods where possible
@ 2019-04-23 23:54 sergiodj+buildbot
2019-04-24 15:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/moxie: Use default gdbarch methods where possible
@ 2019-04-24 1:15 sergiodj+buildbot
2019-04-25 3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/msp430: Use default gdbarch methods where possible
@ 2019-04-24 1:32 sergiodj+buildbot
2019-04-25 5:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/nds32: Use default gdbarch methods where possible
@ 2019-04-24 1:49 sergiodj+buildbot
2019-04-25 7:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/or1k: Use default gdbarch methods where possible
@ 2019-04-24 2:22 sergiodj+buildbot
2019-04-25 10:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/sparc: Use default_unwind_pc
@ 2019-04-24 3:46 sergiodj+buildbot
2019-04-25 20:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/xstormy16: Use default gdbarch methods where possible
@ 2019-04-24 5:07 sergiodj+buildbot
2019-04-26 5:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/rl78: Use default gdbarch methods where possible
@ 2019-04-24 5:24 sergiodj+buildbot
2019-04-26 6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/arm: Use type_align instead of arm_type_align
@ 2019-04-24 7:30 sergiodj+buildbot
2019-04-24 8:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 7:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 030197b43cd8ccfe6869f798dd39fa27a29c0e01 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 030197b43cd8ccfe6869f798dd39fa27a29c0e01
gdb/arm: Use type_align instead of arm_type_align
Replaces use of arm_type_align with common type_align function.
Doing this fixes a bug in arm_type_align where static fields are
considered as part of the alignment calculation of a struct, which
results in arguments passed on the stack being misaligned, this bug
was causing a failure in gdb.cp/many-args.exp.
Part of the old arm_type_align is retained and used as the gdbarch
type align callback in order to correctly align vectors.
gdb/ChangeLog:
* arm-tdep.c (arm_type_align): Only handle vector override case.
(arm_push_dummy_call): Use type_align.
(arm_gdbarch_init): Register arm_type_align gdbarch function.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/nds32: Use type_align instead of nds32_type_align
@ 2019-04-24 9:52 sergiodj+buildbot
2019-04-24 11:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 9:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ecbc06d2a687f369da7c304201c9f2cbfed80ec6 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ecbc06d2a687f369da7c304201c9f2cbfed80ec6
gdb/nds32: Use type_align instead of nds32_type_align
The general type_align method should be a suitable alternative to
nds32_type_align, so switch to use that.
The only change this will introduce is related to static fields in a
struct or union, the existing code doesn't take account of static
fields when computing the alignment for structs of unions, though this
is probably a bug - which would probably be exposed by the test case
gdb.cp/many-args.exp, though I don't have any way to test this target
right now.
gdb/ChangeLog:
* nds32-tdep.c (nds32_type_align): Delete.
(nds32_push_dummy_call): Use type_align instead.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/m32r: Use default gdbarch methods where possible
@ 2019-04-24 17:03 sergiodj+buildbot
2019-04-24 17:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 17:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5e79b7bb69c797c3ca401cfa0f7a616eb2e3efe8 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 5e79b7bb69c797c3ca401cfa0f7a616eb2e3efe8
gdb/m32r: 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:
* m32r-tdep.c (m32r_unwind_sp): Delete.
(m32r_unwind_pc): Delete.
(m32r_dummy_id): Delete.
(m32r_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix passing of struct with bitfields on x86-64
@ 2019-04-24 18:26 sergiodj+buildbot
2019-04-26 14:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix Rust testing
@ 2019-04-24 20:48 sergiodj+buildbot
2019-04-26 18:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/mep: Use default gdbarch methods where possible
@ 2019-04-24 23:39 sergiodj+buildbot
2019-04-24 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-24 23:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8e2b5aea9d3f16961f7fac15caec00e955c1dc81 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 8e2b5aea9d3f16961f7fac15caec00e955c1dc81
gdb/mep: 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:
* mep-tdep.c (mep_unwind_pc): Delete.
(mep_unwind_sp): Delete.
(mep_dummy_id): Delete.
(mep_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/rx: Use default gdbarch methods where possible
@ 2019-04-25 13:08 sergiodj+buildbot
2019-04-25 15:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 13:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 47c47d6907bc44a599baff948d2809616c74c44e ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 47c47d6907bc44a599baff948d2809616c74c44e
gdb/rx: 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:
* rx-tdep.c (rx_unwind_pc): Delete.
(rx_unwind_sp): Delete.
(rx_dummy_id): Delete.
(rx_gdbarch_init): Don't register deleted functions with
gdbarch. Update comment.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [BFD, AArch64] Improve bti/pac plts.
@ 2019-04-25 13:53 sergiodj+buildbot
2019-04-26 22:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 13:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 68bb0359eec3093560929b8ad2b3f5d30e7a7e1d ***
Author: Sudakshina Das <sudi.das@arm.com>
Branch: master
Commit: 68bb0359eec3093560929b8ad2b3f5d30e7a7e1d
[BFD, AArch64] Improve bti/pac plts.
This patch aims to improve the definitions of BTI and PAC based PLTs.
The following changes are made:
* PLT0 does not need PAC instructions since the PLTGOT[2] (and PLTGOT[1])
are readonly so they cannot be corrupted at runtime. Thus both PAC plt0
and BTI+PAC plt0 are removed and we can use basic plt0 and BTI plt0
instead, respectively.
* We can remove the extra padding nops when we add the new bti instructions.
BTI plt0 and BTI TLSDESC plt are updated.
* For better performance PLTn could be padded to 24bytes. Both BTI pltn and
PAC pltn are updated.
*** bfd/ChangeLog ***
2019-04-25 Sudakshina Das <sudi.das@arm.com>
* elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): Remove.
(PLT_BTI_TLSDESC_ENTRY_SIZE): Remove.
(PLT_PAC_ENTRY_SIZE, PLT_BTI_PAC_ENTRY_SIZE): Remove.
(PLT_BTI_SMALL_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): Update.
(elfNN_aarch64_small_plt0_pac_entry): Remove.
(elfNN_aarch64_small_plt0_bti_pac_entry): Remove.
(elfNN_aarch64_small_plt0_bti_entry): Update.
(elfNN_aarch64_small_plt_bti_entry): Update.
(elfNN_aarch64_small_plt_pac_entry): Update.
(elfNN_aarch64_tlsdesc_small_plt_bti_entry): Update.
(setup_plt_values): Setup new entries.
(elfNN_aarch64_finish_dynamic_sections): Remove size change.
(elfNN_aarch64_plt_sym_val): Likewise.
*** ld/ChangeLog ***
2019-04-25 Sudakshina Das <sudi.das@arm.com>
* testsuite/ld-aarch64/bti-pac-plt-1.d: Update.
* testsuite/ld-aarch64/bti-pac-plt-2.d: Update.
* testsuite/ld-aarch64/bti-plt-1.d: Update.
* testsuite/ld-aarch64/bti-plt-3.d: Update.
* testsuite/ld-aarch64/bti-plt-5.d: Update.
* testsuite/ld-aarch64/pac-plt-1.d: Update.
* testsuite/ld-aarch64/pac-plt-2.d: Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Implement dump of mappings with ELF headers by gcore
@ 2019-04-25 19:20 sergiodj+buildbot
2019-04-27 3:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-04-25 19:20 [binutils-gdb] Implement dump of mappings with ELF headers by gcore sergiodj+buildbot
@ 2019-04-27 3:06 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 3:06 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7968>
Commit(s) tested:
57e5e645010430b3d73f8c6a757d09f48dc8f8d5
Author(s) (in the same order as the commits):
Sergio Durigan Junior <sergiodj@redhat.com>
Subject:
Implement dump of mappings with ELF headers by gcore
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/57/57e5e645010430b3d73f8c6a757d09f48dc8f8d5/>
*** Diff to previous build ***
============================
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
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 -> 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=cf31fd10>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=cf31fd10>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Make SJLJ exceptions more efficient
@ 2019-04-25 19:44 sergiodj+buildbot
2019-04-27 10:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] c++/24367: Infinite recursion of typedef substitution
@ 2019-04-25 20:51 sergiodj+buildbot
2019-04-27 18:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/tilegx: Use default gdbarch methods where possible
@ 2019-04-25 23:25 sergiodj+buildbot
2019-04-25 23:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-25 23:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0f534d767b257fffd8a9b231c97ff9ed33688452 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 0f534d767b257fffd8a9b231c97ff9ed33688452
gdb/tilegx: 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:
* tilegx-tdep.c (tilegx_unwind_sp): Delete.
(tilegx_unwind_pc): Delete.
(tilegx_unwind_dummy_id): Delete.
(tilegx_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/s12z: Use default gdbarch methods where possible
@ 2019-04-26 8:03 sergiodj+buildbot
2019-04-26 9:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-26 8:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f872fdbb5b83f39f359bc1cd016dcc0456cb0c0a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: f872fdbb5b83f39f359bc1cd016dcc0456cb0c0a
gdb/s12z: 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:
* s12z-tdep.c (s12z_unwind_pc): Delete.
(s12z_unwind_sp): Delete.
(s12z_gdbarch_init): Don't register deleted functions with
gdbarch.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use "pulongest" on aarch64-tdep.c:aarch64_gdbarch_init
@ 2019-04-26 15:11 sergiodj+buildbot
2019-04-26 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-26 15:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 596179f77c803d3fc5586465f4ece6503055d035 ***
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Branch: master
Commit: 596179f77c803d3fc5586465f4ece6503055d035
Use "pulongest" on aarch64-tdep.c:aarch64_gdbarch_init
While trying to build GDB on i686, I found the following error:
In file included from ../../gdb/common/common-defs.h:105,
from ../../gdb/defs.h:28,
from ../../gdb/aarch64-tdep.c:21:
../../gdb/aarch64-tdep.c: In function 'gdbarch* aarch64_gdbarch_init(gdbarch_info, gdbarch_list*)':
../../gdb/aarch64-tdep.c:3176:43: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=]
3176 | internal_error (__FILE__, __LINE__, _("VQ out of bounds: %ld (max %d)"),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../gdb/common/gdb_locale.h:28:29: note: in definition of macro '_'
28 | # define _(String) gettext (String)
| ^~~~~~
../../gdb/aarch64-tdep.c:3176:64: note: format string is defined here
3176 | internal_error (__FILE__, __LINE__, _("VQ out of bounds: %ld (max %d)"),
| ~~^
| |
| long int
| %lld
This happens because aarch64-tdep.c:aarch64_gdbarch_init prints a
"uint64_t" variable using "%ld". This patch fixes the build by using
"pulongest" instead. As explained in a similar fix (commit
495143533ad95369811391c6e3c6dadd69d7dd67), this should be safe because
if aarch64-tdep.c is included in the build, then ULONGEST must be a
64-bit type.
gdb/ChangeLog:
2019-04-24 Sergio Durigan Junior <sergiodj@redhat.com>
* aarch64-tdep.c (aarch64_gdbarch_init): Use "pulongest" to print
"vq".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [PATCH] Support for DW_FORM_strx tag
@ 2019-04-27 3:38 sergiodj+buildbot
2019-04-27 5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 3:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cf532bd13616fbabe487d98107cde3202ad58ab7 ***
Author: Ali Tamur <tamur@google.com>
Branch: master
Commit: cf532bd13616fbabe487d98107cde3202ad58ab7
[PATCH] Support for DW_FORM_strx tag
DW_FORM_strx is the new name of DW_FORM_GNU_str_index in the Dwarf 5 standard.
This is a small step towards supporting Dwarf 5 in gdb.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Avoid undefined behavior in Guile exception handling
@ 2019-04-27 10:41 sergiodj+buildbot
2019-04-27 11:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 10:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 680d7fd5fcff860a31021845389d4dfeb7b42e3c ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 680d7fd5fcff860a31021845389d4dfeb7b42e3c
Avoid undefined behavior in Guile exception handling
The Guile code will longjmp (via scm_throw) when an object requiring
destruction is on the stack. This is undefined behavior.
This changes this code to run any destructors in inner scopes, and to
pass a POD to gdbscm_throw_gdb_exception.
gdb/ChangeLog
2019-04-25 Tom Tromey <tromey@adacore.com>
* guile/scm-exception.c (gdbscm_scm_from_gdb_exception)
(gdbscm_throw_gdb_exception): Take a gdbscm_gdb_exception.
* guile/scm-block.c, guile/scm-breakpoint.c, guile/scm-cmd.c,
guile/scm-disasm.c, guile/scm-frame.c, guile/scm-lazy-string.c,
guile/scm-math.c, guile/scm-param.c, guile/scm-ports.c,
guile/scm-symbol.c, guile/scm-symtab.c, guile/scm-type.c,
guile/scm-value.c: Use unpack.
* guile/guile-internal.h (gdbscm_scm_from_gdb_exception): Take a
gdbscm_gdb_exception.
(gdbscm_throw_gdb_exception): Likewise.
(struct gdbscm_gdb_exception): New.
(unpack): New function.
(gdbscm_wrap): Use unpack.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-04-27 10:41 [binutils-gdb] Avoid undefined behavior in Guile exception handling sergiodj+buildbot
@ 2019-04-27 11:35 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 11:35 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7973>
Commit(s) tested:
680d7fd5fcff860a31021845389d4dfeb7b42e3c
Author(s) (in the same order as the commits):
Tom Tromey <tromey@adacore.com>
Subject:
Avoid undefined behavior in Guile exception handling
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/68/680d7fd5fcff860a31021845389d4dfeb7b42e3c/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/mi-nonstop.exp: probe for target remote
new FAIL: gdb.mi/mi-nonstop.exp: wait for thread exit
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
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 -> 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=cf31fd10>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=cf31fd10>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Implement show | set may-call-functions [on|off]
@ 2019-04-27 11:41 sergiodj+buildbot
2019-04-28 0:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make exception handling more efficient
@ 2019-04-27 12:26 sergiodj+buildbot
2019-04-27 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 12:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 94aeb44b001ab2d632806242a3bacb0a879abe15 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 94aeb44b001ab2d632806242a3bacb0a879abe15
Make exception handling more efficient
This makes exception handling more efficient in a few spots, through
the use of const- and rvalue-references.
I wrote this patch by commenting out the gdb_exception copy
constructor and then examining the resulting error messages one by
one, introducing the use of std::move where appropriate.
gdb/ChangeLog
2019-04-25 Tom Tromey <tromey@adacore.com>
* xml-support.c (struct gdb_xml_parser) <set_error>: Take an
rvalue reference.
(gdb_xml_start_element_wrapper, gdb_xml_end_element_wrapper)
(gdb_xml_parser::parse): Use std::move.
* python/python-internal.h (gdbpy_convert_exception): Take a const
reference.
* python/py-value.c (valpy_getitem, valpy_nonzero): Use
std::move.
* python/py-utils.c (gdbpy_convert_exception): Take a const
reference.
* python/py-inferior.c (infpy_write_memory, infpy_search_memory):
Use std::move.
* python/py-breakpoint.c (bppy_set_condition, bppy_set_commands):
Use std::move.
* mi/mi-main.c (mi_print_exception): Take a const reference.
* main.c (handle_command_errors): Take a const reference.
* linespec.c (parse_linespec): Use std::move.
* infcall.c (run_inferior_call): Use std::move.
(call_function_by_hand_dummy): Use std::move.
* exec.c (try_open_exec_file): Use std::move.
* exceptions.h (exception_print, exception_fprintf)
(exception_print_same): Update.
* exceptions.c (print_exception, exception_print)
(exception_fprintf, exception_print_same): Change parameters to
const reference.
* event-top.c (gdb_rl_callback_read_char_wrapper): Update.
* common/new-op.c: Use std::move.
* common/common-exceptions.h (struct gdb_exception): Add move
constructor.
(struct gdb_exception_error, struct gdb_exception_quit, struct
gdb_quit_bad_alloc): Change constructor to move constructor.
(throw_exception): Change parameter to rvalue reference.
* common/common-exceptions.c (throw_exception): Take rvalue
reference.
* cli/cli-interp.c (safe_execute_command): Use std::move.
* breakpoint.c (insert_bp_location, location_to_sals): Use
std::move.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Don't complain undefined weak dynamic reference
@ 2019-04-27 20:23 sergiodj+buildbot
2019-04-27 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 20:23 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c54f15248ee990df6cea0b4730cd61b227a0e082 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: c54f15248ee990df6cea0b4730cd61b227a0e082
Don't complain undefined weak dynamic reference
When undefined non-weak references in IR objects are optimized out
by LTO, we can have weak dynamic referencs to symbols marked with
bfd_link_hash_undefined. We shouldn't complain such undefined weak
dynamic references.
bfd/
PR ld/24486
* elflink.c (elf_link_output_extsym): Don't complain undefined
weak dynamic reference.
ld/
PR ld/24486
* testsuite/ld-plugin/lto.exp: Run PR ld/24486 tests.
* testsuite/ld-plugin/pr24486a.c: New file.
* testsuite/ld-plugin/pr24486b.c: Likewise.
* testsuite/ld-plugin/pr24486c.c: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-04-27 20:23 [binutils-gdb] Don't complain undefined weak dynamic reference sergiodj+buildbot
@ 2019-04-27 21:08 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-27 21:08 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7979>
Commit(s) tested:
c54f15248ee990df6cea0b4730cd61b227a0e082
Author(s) (in the same order as the commits):
H.J. Lu <hjl.tools@gmail.com>
Subject:
Don't complain undefined weak dynamic reference
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/c5/c54f15248ee990df6cea0b4730cd61b227a0e082/>
*** Diff to previous build ***
============================
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
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/solib-precsave.exp: save process recfile
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=cf31fd10>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=cf31fd10>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Have 'thread|frame apply' style their output.
@ 2019-04-28 1:28 sergiodj+buildbot
2019-04-28 2:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-28 1:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8a522c6cab56bd55f1454638786f999f6f636354 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 8a522c6cab56bd55f1454638786f999f6f636354
Have 'thread|frame apply' style their output.
'thread|frame apply CMD' launches CMD so that CMD output goes to a string_file.
This patch ensures that string_file for such CMD output contains
style escape sequences that 'thread|frame apply' will later on
output on the real terminal, so as to have CMD output properly styled.
The idea is to have the class ui_file having overridable methods
to indicate that the output to this ui_file should be done using
'terminal' behaviour such as styling.
Then these methods are overriden in string_file so that a specially
constructed string_file will get output with style escape sequences.
After this patch, the output of CMD by thread|frame apply CMD is styled
similarly as when CMD is launched directly.
Note that string_file (term_out true) could also support wrapping,
but this is not done (yet?).
Tested on debian/amd64.
gdb/ChangeLog
2019-04-27 Philippe Waroquiers <philippe.waroquiers@skynet.be>
Support style in 'frame|thread apply'
* gdbcmd.h (execute_command_to_string): New term_out parameter.
* record.c (record_start, record_stop): Update callers of
execute_command_to_string with false.
* ui-file.h (class ui_file): New term_out and can_emit_style_escape
methods.
(class string_file): New constructor with term_out parameter.
Override methods term_out and can_emit_style_escape. New member
term_out.
(class stdio_file): Override can_emit_style_escape.
(class tee_file): Override term_out and can_emit_style_escape.
* utils.h (can_emit_style_escape): Remove.
* utils.c (can_emit_style_escape): Likewise.
Update all callers of can_emit_style_escape (SOMESTREAM) to
SOMESTREAM->can_emit_style_escape.
* source-cache.c (source_cache::get_source_lines): Likewise.
* stack.c (frame_apply_command_count): Call execute_command_to_string
passing the term_out characteristic of the current gdb_stdout.
* thread.c (thr_try_catch_cmd): Likewise.
* top.c (execute_command_to_string): pass term_out parameter
to construct the string_file for the command output.
* ui-file.c (term_cli_styling): New function (most code moved
from utils.c can_emit_style_escape).
(string_file::string_file, string_file::can_emit_style_escape,
stdio_file::can_emit_style_escape, tee_file::term_out,
tee_file::can_emit_style_escape): New functions.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Follow-up to Support style in 'frame|thread apply'
@ 2019-04-28 5:25 sergiodj+buildbot
2019-04-28 6:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-04-28 5:25 [binutils-gdb] Follow-up to Support style in 'frame|thread apply' sergiodj+buildbot
@ 2019-04-28 6:48 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-28 6:48 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7984>
Commit(s) tested:
fa731fa0d400568fb1fd68c247fc0c55b53c2a2f
Author(s) (in the same order as the commits):
Philippe Waroquiers <philippe.waroquiers@skynet.be>
Subject:
Follow-up to Support style in 'frame|thread apply'
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/fa/fa731fa0d400568fb1fd68c247fc0c55b53c2a2f/>
*** Diff to previous build ***
============================
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
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 -> 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=cf31fd10>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=cf31fd10>
^ permalink raw reply [flat|nested] 4390+ 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 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/ada: Update some predicate functions to return bool
@ 2019-04-29 21:43 sergiodj+buildbot
2019-04-29 22:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-29 21:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fc913e53c353218ba1a9efa423c08767691a682a ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: fc913e53c353218ba1a9efa423c08767691a682a
gdb/ada: Update some predicate functions to return bool
A later commit would like to make use of a pointer to the function
ada_is_string_type, however, this will require the function to return
a bool (so the signature matches).
As the ada_is_string_type is a predicate function, and its return
value is only ever used as either true or false, then this commit
updates the function to return a bool.
As a consequence ada_is_character_type needs to change too.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* ada-lang.c (ada_is_character_type): Change return type to bool.
(ada_is_string_type): Likewise.
* ada-lang.h (ada_is_character_type): Update declaration
(ada_is_string_type): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Introduce new language field la_is_string_type_p
@ 2019-04-29 21:55 sergiodj+buildbot
2019-04-30 2:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Introduce 'print max-depth' feature
@ 2019-04-29 22:12 sergiodj+buildbot
2019-04-30 4:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Remove an unbalanced stray double quote from a comment
@ 2019-04-30 12:53 sergiodj+buildbot
2019-04-30 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 12:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6fdcd7cc87a5e345a1c09fcf898012d80eb43ee1 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 6fdcd7cc87a5e345a1c09fcf898012d80eb43ee1
gdb: Remove an unbalanced stray double quote from a comment
What appears to be a stray double quote character in std-operator.def
causes incorrect highlighting in my editor.
The quote was introduced in this commit:
commit 858be34c5a03bb8973679ebf00d360182434dc00
Date: Mon Sep 4 20:21:15 2017 +0100
Handle "p S::method()::static_var" in the C++ parser
I can't see any reason why the quote should be there, so this commit
removes it.
gdb/ChangeLog:
* std-operator.def: Remove unbalanced, stray double quote
character.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Additional builtin procedures
@ 2019-04-30 13:16 sergiodj+buildbot
2019-04-30 17:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: print function arguments when printing function type
@ 2019-04-30 13:50 sergiodj+buildbot
2019-04-30 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Introduce fortran-operator.def file
@ 2019-04-30 14:39 sergiodj+buildbot
2019-04-30 15:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-04-30 14:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 83228e93efa82f84a132f7cec44d0e760d4ad22b ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 83228e93efa82f84a132f7cec44d0e760d4ad22b
gdb/fortran: Introduce fortran-operator.def file
Future commits will add more Fortran specific expression operators.
In preparation for these new operators, this commit adds a new
fortran-operator.def file similar to how GDB already has
ada-operator.def.
I've moved UNOP_KIND the Fortran specific operator I introduced in
commit 4d00f5d8f6c4 into this file, and renamed it to make it clearer
that the operator is Fortran specific. I've then updated the Fortran
exp_descriptor table (exp_descriptor_f) to use entirely Fortran
specific functions that now handle UNOP_FORTRAN_KIND (the new name for
UNOP_KIND).
There should be no visible changes for standard users after this
commit, though for developers, the output when 'set debug expression
1' is now better, before:
(gdb) p kind (l1)
Dump of expression @ 0x2ccc7a0, before conversion to prefix form:
Language fortran, 5 elements, 16 bytes each.
Index Opcode Hex Value String Value
0 OP_VAR_VALUE 42 *...............
1 OP_NULL 47730176 .N..............
2 BINOP_INTDIV 47729184 J..............
3 OP_VAR_VALUE 42 *...............
4 UNOP_KIND 78 N...............
Dump of expression @ 0x2ccc7a0, after conversion to prefix form:
Expression: `Invalid expression
(gdb)
and after:
(gdb) p kind (l1)
Dump of expression @ 0x294d0b0, before conversion to prefix form:
Language fortran, 5 elements, 16 bytes each.
Index Opcode Hex Value String Value
0 OP_VAR_VALUE 40 (...............
1 unknown opcode: 224 44088544 ................
2 unknown opcode: 208 44087504 ................
3 OP_VAR_VALUE 40 (...............
4 UNOP_FORTRAN_KIND 119 w...............
Dump of expression @ 0x294d0b0, after conversion to prefix form:
Expression: `KIND(test::l1)'
Language fortran, 5 elements, 16 bytes each.
0 UNOP_FORTRAN_KIND
1 OP_VAR_VALUE Block @0x2a0bce0, symbol @0x2a0b8d0 (l1)
$1 = 1
(gdb)
gdb/ChangeLog:
* gdb/expprint.c (dump_subexp_body_standard): Remove use of
UNOP_KIND.
* gdb/expression.h (exp_opcode): Include 'fortran-operator.def'.
* gdb/f-exp.y (exp): Rename UNOP_KIND to UNOP_FORTRAN_KIND.
* gdb/f-lang.c (evaluate_subexp_f): Likewise.
(operator_length_f): New fuction.
(print_subexp_f): New function.
(op_name_f): New function.
(dump_subexp_body_f): New function.
(operator_check_f): New function.
(exp_descriptor_f): Replace standard expression handling functions
with new functions.
* gdb/fortran-operator.def: New file.
* gdb/parse.c (operator_length_standard): Remove use of UNOP_KIND.
* gdb/std-operator.def: Remove UNOP_KIND.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix crash in dwarf2read.c with template parameters
@ 2019-04-30 15:12 sergiodj+buildbot
2019-05-01 8:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix "catch exception" with dynamic linking
@ 2019-04-30 15:28 sergiodj+buildbot
2019-05-01 10:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/windows-nat.c: Get rid of main_thread_id global
@ 2019-04-30 21:55 sergiodj+buildbot
2019-05-01 16:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms.
@ 2019-04-30 23:41 sergiodj+buildbot
2019-05-01 17:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-04-30 23:41 [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms sergiodj+buildbot
@ 2019-05-01 17:30 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 17:30 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8009>
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/Debian-s390x-native-gdbserver-m64/15/15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b/>
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=7dff4f39>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=7dff4f39>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PowerPC64 GOT indirect to GOT relative optimisation
@ 2019-05-01 3:08 sergiodj+buildbot
2019-05-01 3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 3:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 066f4018ae7822d81cb6747fd9494e5dd63bfecf ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 066f4018ae7822d81cb6747fd9494e5dd63bfecf
PowerPC64 GOT indirect to GOT relative optimisation
This implements an optimisation that converts sequences like
addis r9,r2,sym@got@ha
ld r3,sym@got@l(r9)
to
addis r9,r2,sym@toc@ha
addi r3,r9,sym@toc@l
when "sym" is locally defined and can't be overridden.
bfd/
* elf64-ppc.c (struct ppc64_elf_obj_tdata): Add has_gotrel.
(struct _ppc64_elf_section_data): Likewise.
(ppc64_elf_check_relocs): Set above fields.
(ppc64_elf_edit_toc): Add a pass over GOT relocs.
(ppc64_elf_relocate_section): Edit GOT indirect to GOT relative
when possible.
ld/
* testsuite/ld-powerpc/elfv2exe.d: Update.
* testsuite/ld-powerpc/elfv2so.d: Update.
* testsuite/ld-powerpc/tocopt.d: Update.
* testsuite/ld-powerpc/tocopt.s: Update.
* testsuite/ld-powerpc/tocopt5.d: Update.
* testsuite/ld-powerpc/tocopt5.s: Update.
* testsuite/ld-powerpc/tocopt7.d: Update.
* testsuite/ld-powerpc/tocopt7.s: Update.
* testsuite/ld-powerpc/tocopt8.d: Update.
* testsuite/ld-powerpc/tocopt8.s: Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] (Windows) fix thr != nullptr assert failure in delete_thread_1
@ 2019-05-01 13:10 sergiodj+buildbot
2019-05-01 13:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 13:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8ed5b76ea2de370265382dab1d538a919e2603ab ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 8ed5b76ea2de370265382dab1d538a919e2603ab
(Windows) fix thr != nullptr assert failure in delete_thread_1
We have observed that GDB would randomly trip the following
assertion failure when debugging on Windows. When allowing
the program to run until the inferior exits, we occasionally see:
(gdb) cont
Continuing.
[Thread 48192.0xd100 exited with code 1]
[Thread 48192.0x10ad8 exited with code 1]
[Thread 48192.0x36e28 exited with code 0]
[Thread 48192.0x52be4 exited with code 0]
[Thread 48192.0x5aa40 exited with code 0]
../../src/gdb/thread.c:453: internal-error: void delete_thread_1(thread_inf
o*, bool): Assertion `thr != nullptr' failed.
Running the same scenario with some additional traces enabled...
(gdb) set verbose
(gdb) set debugevents
... allows us to understand what the issue is. To understand, we need
to first look at the events received when starting the program, and
in particular which threads got created how. First, we get a
CREATE_PROCESS_DEBUG_EVENT for tid=0x442a8:
gdb: kernel event for pid=317536 tid=0x442a8 code=CREATE_PROCESS_DEBUG_EVENT)
Shortly after, we get some CREATE_THREAD_DEBUG_EVENT events,
one of them being for tid=0x4010c:
gdb: kernel event for pid=317536 tid=0x4010c code=CREATE_THREAD_DEBUG_EVENT)
Fast forward a bit of debugging, and we do a "cont" as above,
at which point the programs reaches the end, and the system reports
"exit" events. The first interesting one is the following:
gdb: kernel event for pid=317536 tid=0x442a8 code=EXIT_THREAD_DEBUG_EVENT)
This is reporting a thread-exit event for a thread whose tid
is the TID of what we call the "main thread". That's the thread
that was created when we received the CREATE_PROCESS_DEBUG_EVENT
notification, and whose TID is actually stored in a global variable
named main_thread_id. This is not something we expected, as
the assumption we made was that the main thread would exit last,
and we would be notified of it via an EXIT_PROCESS_DEBUG_EVENT.
But apparently, this is not always true, at least on Windows Server
2012 and 2016 where this issue has been observed happening randomly.
The consequence of the above notification is that we call
windows_delete_thread for that thread, which removes it from
our list of known threads.
And a little bit later, then we then get the EXIT_PROCESS_DEBUG_EVENT,
and we can see that the associated tid is not the main_thread_id,
but rather the tid of one of the threads that was created during
the lifetime of the program, in this case tid=0x4010c:
gdb: kernel event for pid=317536 tid=0x4010c code=EXIT_PROCESS_DEBUG_EVENT)
And the debug trace printed right after shows why we're crashing:
[Deleting Thread 317536.0x442a8]
We are trying to delete the thread whose tid=0x442a8, which is
the main_thread_id! As we have already deleted that thread before,
the search for it returns a nullptr, which then trips the assertion
check in delete_thread_1.
This commit fixes this issue. It ignores the open question of
what to do with the main_thread_id global, particularly after
that thread has been removed from our list of threads. This will
be dealt with as a separate patch, to allow cherry-picking
this patch into a release branch.
For now, we fix the code so as to avoid this crash.
gdb/ChangeLog:
* windows-nat.c (get_windows_debug_event) <EXIT_PROCESS_DEBUG_EVENT>:
Use current_event.dwThreadId instead of main_thread_id.
^ permalink raw reply [flat|nested] 4390+ 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 21:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [BINUTILS, AArch64] Enable Transactional Memory Extension
@ 2019-05-01 16:32 sergiodj+buildbot
2019-05-02 2:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix big-endian aggregate assignment in Ada
@ 2019-05-01 22:56 sergiodj+buildbot
2019-05-01 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-01 22:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d48e62f4a263a871b7a62793e8000625735bc2f6 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: d48e62f4a263a871b7a62793e8000625735bc2f6
Fix big-endian aggregate assignment in Ada
A bug internal to AdaCore notes that assigning a non-scalar value to
an element of a packed array will sometimes fail.
The bug turns out to be that ada_value_assign incorrectly computes the
starting point for the assignment. This patch fixes the problem.
gdb/ChangeLog
2019-05-01 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_value_assign): Correctly compute starting offset
for big-endian copies.
gdb/testsuite/ChangeLog
2019-05-01 Tom Tromey <tromey@adacore.com>
* gdb.ada/packed_array_assign.exp: Add packed assignment
regression test.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove _initialize_valarith
@ 2019-05-03 1:02 sergiodj+buildbot
2019-05-03 3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix lookup of separate debug file on MS-Windows.
@ 2019-05-03 10:03 sergiodj+buildbot
2019-05-03 10:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-03 10:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5f2459c233faebe8f882e556b2f4a86594a51292 ***
Author: Eli Zaretskii <eliz@gnu.org>
Branch: master
Commit: 5f2459c233faebe8f882e556b2f4a86594a51292
Fix lookup of separate debug file on MS-Windows.
If you put the separate debug file in a global debug directory, GDB on
MS-Windows would fail to find it. This happens because we obtain the
directory to look up the debug file by concatenating the debug
directory name with the leading directories of the executable, and the
latter includes the drive letter on MS-Windows. So we get an invalid
file name like
d:/usr/lib/debug/d:/usr/bin/foo.debug
This commit fixes that by removing the colon of the drive letter,
thus producing
d:/usr/lib/debug/d/usr/bin/foo.debug
gdb/ChangeLog:
2019-05-03 Eli Zaretskii <eliz@gnu.org>
* symfile.c (find_separate_debug_file): Remove colon from the
drive spec of DOS/Windows file names of the target, so that the
file name produced from DEBUGDIR and the target's directory will
be valid on DOS/Windows systems.
gdb/doc/ChangeLog:
2019-05-03 Eli Zaretskii <eliz@gnu.org>
* gdb.texinfo (Separate Debug Files): Document how the
subdirectory of the global debug directory is computed on
MS-Windows/MS-DOS.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add cc-with-gdb-index.exp
@ 2019-05-03 11:15 sergiodj+buildbot
2019-05-03 20:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix cast of character to enum type in Ada
@ 2019-05-03 23:39 sergiodj+buildbot
2019-05-04 1:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove "struct" from foreach statements
@ 2019-05-04 3:19 sergiodj+buildbot
2019-05-04 3:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 3:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bde09ab7026edf3d79122872b79c6a8f164ee0ff ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bde09ab7026edf3d79122872b79c6a8f164ee0ff
Remove "struct" from foreach statements
Some versions of gcc have a bug that causes
for (struct mumble : something)
... to give a compiler error. We routinely work around this bug in
gdb, but apparently had not done so in a while. This patch fixes the
remaining known cases of this problem.
gdb/ChangeLog
2019-05-03 Sandra Loosemore <sandra@codesourcery.com>
Tom Tromey <tom@tromey.com>
* dictionary.c (collate_pending_symbols_by_language): Remove
"struct" from foreach.
* symtab.c (lookup_global_symbol_from_objfile)
(lookup_symbol_in_objfile_from_linkage_name): Remove "struct" from
foreach.
* ser-tcp.c (net_open): Remove "struct" from foreach.
* objfiles.c (objfile_relocate, objfile_rebase)
(objfile_has_symbols): Remove "struct" from foreach.
* minsyms.c (lookup_minimal_symbol_by_pc_section): Remove "struct"
from foreach.
* dwarf2read.c (handle_struct_member_die): Remove "struct" from
foreach.
* darwin-nat.c (thread_info_from_private_thread_info): Remove
"struct" from foreach.
* ada-lang.c (create_excep_cond_exprs)
(ada_exception_catchpoint_cond_string): Remove "struct" from
foreach.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix leaks by clearing registers and frame caches.
@ 2019-05-04 6:26 sergiodj+buildbot
2019-05-04 6:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-04 6:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 66452beb773568c7f60dbc6b7c70f671a8c9cf4b ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: 66452beb773568c7f60dbc6b7c70f671a8c9cf4b
Fix leaks by clearing registers and frame caches.
Valgrind reports leaks such as the below in the tests:
gdb.threads/corethreads.exp
gdb.threads/gcore-thread.exp
gdb.ada/task_switch_in_core.exp
gdb.trace/tfile.exp
gdb.base/siginfo-thread.exp
==12701== 1,123 (72 direct, 1,051 indirect) bytes in 1 blocks are definitely lost in loss record 2,928 of 3,247
==12701== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344)
==12701== by 0x5CF771: get_thread_arch_aspace_regcache(ptid_t, gdbarch*, address_space*) (regcache.c:330)
==12701== by 0x5CF92A: get_thread_regcache (regcache.c:366)
==12701== by 0x5CF92A: get_current_regcache() (regcache.c:372)
==12701== by 0x4C7964: get_current_frame() (frame.c:1587)
==12701== by 0x4C7A3C: get_selected_frame(char const*) (frame.c:1651)
==12701== by 0x669EAD: print_thread_info_1(ui_out*, char const*, int, int, int) (thread.c:1151)
==12701== by 0x66A9A1: info_threads_command(char const*, int) (thread.c:1217)
==12701== by 0x40A878: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892)
...
Fix these leaks by clearing registers and frame caches.
This leak and fix is similar to the leak fixed by 799efbe8e01
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Don't derive partial_symbol from general_symbol_info
@ 2019-05-04 20:02 sergiodj+buildbot
2019-05-04 21:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change valid_user_defined_cmd_name_p to return bool
@ 2019-05-04 21:04 sergiodj+buildbot
2019-05-05 4:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use "false" in compile_cplus_convert_enum
@ 2019-05-04 22:08 sergiodj+buildbot
2019-05-05 12:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-05-04 22:08 [binutils-gdb] Use "false" in compile_cplus_convert_enum sergiodj+buildbot
@ 2019-05-05 12:01 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-05 12:01 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8043>
Commit(s) tested:
9c056022194f9d1f068885cb45c9d23a2e44db54
Author(s) (in the same order as the commits):
Tom Tromey <tom@tromey.com>
Subject:
Use "false" in compile_cplus_convert_enum
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/9c/9c056022194f9d1f068885cb45c9d23a2e44db54/>
*** Diff to previous build ***
============================
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: save process recfile
PASS -> FAIL: gdb.reverse/finish-precsave.exp: set reverse execution
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/tls-core.exp: gcore
============================
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=7dff4f39>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=7dff4f39>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use gdb_assert_not_reached in arm-linux-nat.c
@ 2019-05-04 22:24 sergiodj+buildbot
2019-05-05 14:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change arc_tdesc_init to return bool
@ 2019-05-04 22:41 sergiodj+buildbot
2019-05-05 15:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py
@ 2019-05-05 1:02 sergiodj+buildbot
2019-05-05 0:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-05 1:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b6484282f85bf7f11451b2441599c241d302ad9d ***
Author: Raul Tambre <raul@tambre.ee>
Branch: master
Commit: b6484282f85bf7f11451b2441599c241d302ad9d
Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py
The 'is' operator is not meant to be used for comparisons. It currently working
is an implementation detail of CPython. CPython 3.8 has added a SyntaxWarning
for this.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use "false" in select_frame_for_mi
@ 2019-05-05 8:19 sergiodj+buildbot
2019-05-05 8:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-05 8:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e2eb806a17490963f23be1d567cff357537df678 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: e2eb806a17490963f23be1d567cff357537df678
Use "false" in select_frame_for_mi
This changes select_frame_for_mi to use "false" rather than "FALSE".
gdb/ChangeLog
2019-05-04 Tom Tromey <tom@tromey.com>
* stack.c (select_frame_for_mi): Use "false", not "FALSE".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove a VEC from ppc-linux-nat.c
@ 2019-05-05 17:17 sergiodj+buildbot
2019-05-05 17:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-05 17:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5da01df5b5601cae695cee588547fb9ef0967081 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5da01df5b5601cae695cee588547fb9ef0967081
Remove a VEC from ppc-linux-nat.c
This replaces a VEC in ppc-linux-nat.c with a std::vector.
gdb/ChangeLog
2019-05-04 Simon Marchi <simon.marchi@efficios.com>
Tom Tromey <tom@tromey.com>
* ppc-linux-nat.c (thread_points_p): Remove typedef and DEF_VEC.
(ppc_threads): Now a std::vector. Now static.
(hwdebug_find_thread_points_by_tid)
(ppc_linux_nat_target::low_new_thread, ppc_linux_thread_exit):
Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PowerPC reloc symbols that shouldn't be adjusted
@ 2019-05-06 3:06 sergiodj+buildbot
2019-05-06 3:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-06 3:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 334d91b9407c5f9f37f224b0f43551c01964eff1 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 334d91b9407c5f9f37f224b0f43551c01964eff1
PowerPC reloc symbols that shouldn't be adjusted
GOT and PLT relocs shouldn't have their symbols replaced with a
section symbol plus added. Nor should the HIGHA TLS relocations,
which failed to be caught by the range test in ppc_fix_adjustable.
bfd/
* reloc.c (BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA),
(BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA):
Sort before BFD_RELOC_PPC64_DTPREL16_HIGHESTA entry.
gas/
* config/tc-ppc.c (ppc_fix_adjustable): Exclude all GOT and PLT
relocs, and VLE sdarel relocs.
* testsuite/gas/ppc/power4.d: Adjust.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PicoJava weak undefined symbols
@ 2019-05-06 3:06 sergiodj+buildbot
2019-05-06 5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index, debug-names}
@ 2019-05-06 7:21 sergiodj+buildbot
2019-05-06 7:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-06 7:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02
[gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names}
In gdb.base/index-cache.exp, handle the case that binfile contains either a
.gdb_index or .debug_names index section.
Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names.
gdb/testsuite/ChangeLog:
2019-05-06 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (exec_has_index_section): New proc.
* gdb.base/index-cache.exp: Handle case that binfile contains an index
section.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add load-link, store-conditional paired EVA instructions
@ 2019-05-06 14:09 sergiodj+buildbot
2019-05-06 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix scoped_mmap includes
@ 2019-05-07 4:22 sergiodj+buildbot
2019-05-07 4:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-07 4:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 26bfd82367d6ffeb1a61495ac445542e757df5b2 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 26bfd82367d6ffeb1a61495ac445542e757df5b2
Fix scoped_mmap includes
I noticed that scoped_mmap.h included config.h, and that scoped_mmap.c
included defs.h. This patch fixes both of these problems.
Tested by the buildbot.
gdb/ChangeLog
2019-05-06 Tom Tromey <tom@tromey.com>
* common/scoped_mmap.c: Include common-defs.h.
* common/scoped_mmap.h: Don't include config.h.
^ permalink raw reply [flat|nested] 4390+ 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 11:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 9:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix .debug_aranges in watch-loc.c
@ 2019-05-07 9:52 sergiodj+buildbot
2019-05-07 13:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix VLA printing for Ada
@ 2019-05-08 16:34 sergiodj+buildbot
2019-05-08 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-05-08 16:34 [binutils-gdb] Fix VLA printing for Ada sergiodj+buildbot
@ 2019-05-08 17:01 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 17:01 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8061>
Commit(s) tested:
988915ee7b880ff059f849893b71118d9bd2c4fc
Author(s) (in the same order as the commits):
Tom Tromey <tromey@adacore.com>
Subject:
Fix VLA printing for Ada
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/98/988915ee7b880ff059f849893b71118d9bd2c4fc/>
*** Diff to previous build ***
============================
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: save process recfile
PASS -> FAIL: gdb.reverse/finish-precsave.exp: set reverse execution
PASS -> FAIL: gdb.reverse/recvmsg-reverse.exp: continue to breakpoint: marker2
PASS -> FAIL: gdb.reverse/recvmsg-reverse.exp: set breakpoint at marker1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reload core file
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 second shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: reverse-step third shr1
PASS -> FAIL: gdb.reverse/solib-precsave.exp: run until end part one
PASS -> FAIL: gdb.reverse/solib-precsave.exp: save process recfile
============================
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=c6f3b991>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=c6f3b991>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Change ptype/o to print bit offset
@ 2019-05-08 17:16 sergiodj+buildbot
2019-05-08 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 22:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Merge two 'New commands' sections in NEWS file
@ 2019-05-08 20:19 sergiodj+buildbot
2019-05-09 14:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Convert main_info to type-safe registry API
@ 2019-05-08 22:42 sergiodj+buildbot
2019-05-09 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Don't declare read_unsigned_leb128 in defs.h
@ 2019-05-08 23:06 sergiodj+buildbot
2019-05-09 5:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-08 23:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 587ee17bd492a324c927437fb561b99b274e1d8e ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 587ee17bd492a324c927437fb561b99b274e1d8e
Don't declare read_unsigned_leb128 in defs.h
I noticed that read_unsigned_leb128 is declared in defs.h. There's no
reason this should be here, so this patch moves it to dwarf2read.h.
gdb/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* dwarf2loc.c: Include dwarf2read.h.
* defs.h (read_unsigned_leb128): Don't declare.
* dwarf2read.h (read_unsigned_leb128): Declare.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert break-catch-syscall.c to type-safe registry API
@ 2019-05-08 23:46 sergiodj+buildbot
2019-05-10 0:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Convert auto-load.c to type-safe registry API
@ 2019-05-09 0:18 sergiodj+buildbot
2019-05-10 4:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Convert breakpoint.c to type-safe registry API
@ 2019-05-09 1:46 sergiodj+buildbot
2019-05-10 13:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change some remote.c globals to "static"
@ 2019-05-09 1:54 sergiodj+buildbot
2019-05-09 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 1:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 60fcc1c3d0d8f1e271b19210b1707b4aa589f273 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 60fcc1c3d0d8f1e271b19210b1707b4aa589f273
Change some remote.c globals to "static"
I noticed a three globals in remote.c that could be static. This
patch makes this change.
gdb/ChangeLog
2019-05-08 Tom Tromey <tromey@adacore.com>
* remote.c (remote_hw_watchpoint_limit)
(remote_hw_watchpoint_length_limit, remote_hw_breakpoint_limit):
Now static.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert remote.c to type-safe registry API
@ 2019-05-09 2:03 sergiodj+buildbot
2019-05-10 15:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Convert ada-lang.c to type-safe registry API
@ 2019-05-09 4:18 sergiodj+buildbot
2019-05-11 4:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add a type-safe C++ interface to a registry
@ 2019-05-09 4:53 sergiodj+buildbot
2019-05-09 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 4:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5f6e90a0cec8c269634ba0bff3c9e549a903c39a ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 5f6e90a0cec8c269634ba0bff3c9e549a903c39a
Add a type-safe C++ interface to a registry
This changes DECLARE_REGISTRY to add a type-safe interface. This
interface is a C++ class that handles the details of registering a
key, and provides various useful methods, including policy-based
cleanup.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* registry.h (DECLARE_REGISTRY): Define the _key class.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert stabsread.c to type-safe registry API
@ 2019-05-09 6:17 sergiodj+buildbot
2019-05-11 16:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Convert target dcache to type-safe registry API
@ 2019-05-09 7:07 sergiodj+buildbot
2019-05-09 21:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 7:07 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 35632941c90f406f69512c9559ae7ba561f7eee8 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 35632941c90f406f69512c9559ae7ba561f7eee8
Convert target dcache to type-safe registry API
This changes the target dcache to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* target-dcache.c (target_dcache_cleanup): Remove.
(target_dcache_aspace_key): Change type.
(target_dcache_init_p, target_dcache_invalidate)
(target_dcache_get, target_dcache_get_or_init)
(_initialize_target_dcache): Update.
* dcache.h (struct dcache_deleter): New.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert objfiles.c to type-safe registry API
@ 2019-05-09 9:44 sergiodj+buildbot
2019-05-10 2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 9:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f6aa7436201194e80e8d7761e6d88ecf0ec1e327 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: f6aa7436201194e80e8d7761e6d88ecf0ec1e327
Convert objfiles.c to type-safe registry API
This changes objfiles.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* objfiles.c (objfile_pspace_info): Add destructor and
initializers.
(objfiles_pspace_data): Change type.
(~objfile_pspace_info): Rename from objfiles_pspace_data_cleanup.
(get_objfile_pspace_data): Update.
(objfiles_bfd_data): Change type.
(get_objfile_bfd_data): Update.
(objfile_bfd_data_free, _initialize_objfiles): Remove.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [binutils][aarch64] Introduce SVE_IMM_ROT3 operand.
@ 2019-05-09 10:22 sergiodj+buildbot
2019-05-12 5:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [binutils][aarch64] New iclass sve_size_hsd2.
@ 2019-05-09 10:37 sergiodj+buildbot
2019-05-12 6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [binutils][aarch64] New sve_size_013 iclass.
@ 2019-05-09 11:57 sergiodj+buildbot
2019-05-12 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand.
@ 2019-05-09 12:14 sergiodj+buildbot
2019-05-12 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Convert symfile-debug.c to type-safe registry API
@ 2019-05-09 12:22 sergiodj+buildbot
2019-05-10 8:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 12:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8c42777cd8e1557ffb29fe9c172edd8cc1de14b7 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 8c42777cd8e1557ffb29fe9c172edd8cc1de14b7
Convert symfile-debug.c to type-safe registry API
This changes symfile-debug.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* symfile-debug.c (struct debug_sym_fns_data): Add initializers.
(symfile_debug_objfile_data_key): Change type.
(symfile_debug_installed, debug_qf_has_symbols)
(debug_qf_find_last_source_symtab)
(debug_qf_forget_cached_source_info)
(debug_qf_map_symtabs_matching_filename, debug_qf_lookup_symbol)
(debug_qf_print_stats, debug_qf_dump)
(debug_qf_expand_symtabs_for_function)
(debug_qf_expand_all_symtabs)
(debug_qf_expand_symtabs_with_fullname)
(debug_qf_map_matching_symbols)
(debug_qf_expand_symtabs_matching)
(debug_qf_find_pc_sect_compunit_symtab)
(debug_qf_map_symbol_filenames)
(debug_qf_find_compunit_symtab_by_address, debug_sym_get_probes)
(debug_sym_new_init, debug_sym_init, debug_sym_read)
(debug_sym_read_psymbols, debug_sym_finish, debug_sym_offsets)
(debug_sym_read_linetable, debug_sym_relocate): Update.
(symfile_debug_free_objfile): Remove.
(install_symfile_debug_logging, _initialize_symfile_debug):
Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert linux-tdep.c to type-safe registry API
@ 2019-05-09 14:30 sergiodj+buildbot
2019-05-10 12:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 14:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89fb8848d7f00cabeb56344762860469238c24e1 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 89fb8848d7f00cabeb56344762860469238c24e1
Convert linux-tdep.c to type-safe registry API
This changes linux-tdep.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* linux-tdep.c (struct linux_info): Add initializers.
(linux_inferior_data): Move. Change type.
(invalidate_linux_cache_inf): Update.
(linux_inferior_data_cleanup): Remove.
(get_linux_inferior_data, _initialize_linux_tdep): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert solib-svr4.c to type-safe registry API
@ 2019-05-09 17:08 sergiodj+buildbot
2019-05-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 17:08 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 092324387247f92c66f25a3e1927cf8821bb4943 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 092324387247f92c66f25a3e1927cf8821bb4943
Convert solib-svr4.c to type-safe registry API
This changes solib-svr4y.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* solib-svr4.c (struct svr4_info): Add initializers and
destructor.
<probes_table>: Now an htab_up.
(solib_svr4_pspace_data): Change type.
(free_probes_table): Simplify.
(~svr4_info): Rename from svr4_pspace_data_cleanup.
(get_svr4_info, probes_table_htab_remove_objfile_probes)
(probes_table_remove_objfile_probes, register_solib_event_probe)
(solib_event_probe_at, svr4_update_solib_event_breakpoint)
(_initialize_svr4_solib): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert fbsd-tdep.c to type-safe registry API
@ 2019-05-09 20:54 sergiodj+buildbot
2019-05-11 0:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 20:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d4e05d2fea956e65618fc12c57fb81e8788ef07d ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d4e05d2fea956e65618fc12c57fb81e8788ef07d
Convert fbsd-tdep.c to type-safe registry API
This changes fbsd-tdep.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* fbsd-tdep.c (struct fbsd_pspace_data): Add initializers.
(fbsd_pspace_data_handle): Move lower. Change type.
(get_fbsd_pspace_data): Update.
(fbsd_pspace_data_cleanup): Remove.
(_initialize_fbsd_tdep): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert nto-tdep.c to type-safe registry API
@ 2019-05-09 23:40 sergiodj+buildbot
2019-05-11 5:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-09 23:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bdb3ed9e634d3db8164d90dee12bc8b5e2458786 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: bdb3ed9e634d3db8164d90dee12bc8b5e2458786
Convert nto-tdep.c to type-safe registry API
This changes nto-tdep.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* nto-tdep.c (nto_inferior_data_reg): Change type.
(nto_inferior_data): Update.
(nto_inferior_data_cleanup, nto_new_inferior_data)
(_initialize_nto_tdep): Remove.
* nto-tdep.h (struct nto_inferior_data): Add initializers.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove mips_pdr_data
@ 2019-05-10 3:57 sergiodj+buildbot
2019-05-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 3:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d11d83f47bad5dfc959ac60b3619017ac60bdaf9 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: d11d83f47bad5dfc959ac60b3619017ac60bdaf9
Remove mips_pdr_data
mips_pdr_data is unused, so this patch removes it.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* mips-tdep.c (mips_pdr_data): Remove.
(_initialize_mips_tdep): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert dwarf2-frame.c to type-safe registry API
@ 2019-05-10 6:46 sergiodj+buildbot
2019-05-11 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 6:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 924d79e23306bb85fd1dd78564f4779fd3aeec56 ***
Author: Tom Tromey <tom@tromey.com>
Branch: master
Commit: 924d79e23306bb85fd1dd78564f4779fd3aeec56
Convert dwarf2-frame.c to type-safe registry API
This changes dwarf2-frame.c to use the type-safe registry API.
gdb/ChangeLog
2019-05-08 Tom Tromey <tom@tromey.com>
* dwarf2-frame.c (dwarf2_frame_objfile_data): Change type.
(dwarf2_frame_find_fde, dwarf2_build_frame_info)
(_initialize_dwarf2_frame): Update.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [binutils][aarch64] SVE2 feature extension flags.
@ 2019-05-10 12:03 sergiodj+buildbot
2019-05-12 1:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 12:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 7ce2460a77a8f66a145c11522f494f3262255390 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 7ce2460a77a8f66a145c11522f494f3262255390
[binutils][aarch64] SVE2 feature extension flags.
Include all feature flag macros.
The "sve2" extension that enables the core sve2 instructions.
This also enables the sve extension, since sve is a requirement of sve2.
Extra optional sve2 features are the bitperm, sm4, aes, and sha3 extensions.
These are all given extra feature flags, "bitperm", "sve2-sm4",
"sve2-aes", and "sve2-sha3" respectively.
The sm4, aes, and sha3 extensions are explicitly marked as sve2
extensions to distinguish them from the corresponding NEON extensions.
Rather than continue extending the current feature flag numbers, I used
some bits that have been skipped.
gas/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-aarch64.c: Add command line architecture feature flags
"sve2", "sve2-sm4", "sve2-aes", "sve2-sha3", "bitperm".
* doc/c-aarch64.texi: Document new architecture feature flags.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (AARCH64_FEATURE_SVE2
AARCH64_FEATURE_SVE2_AES, AARCH64_FEATURE_SVE2_BITPERM,
AARCH64_FEATURE_SVE2_SM4, AARCH64_FEATURE_SVE2_SHA3): New
feature macros.
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-tbl.h
(aarch64_feature_sve2, aarch64_feature_sve2aes,
aarch64_feature_sve2sha3, aarch64_feature_sve2sm4,
aarch64_feature_sve2bitperm): New feature sets.
(SVE2, SVE2_AES, SVE2_SHA3, SVE2_SM4, SVE2_BITPERM): New macros
for feature set addresses.
(SVE2_INSN, SVE2_INSNC, SVE2AES_INSN, SVE2SHA3_INSN,
SVE2SM4_INSN, SVE2SM4_INSNC, SVE2BITPERM_INSN): New macros.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add completion for Ada catch commands
@ 2019-05-10 16:16 sergiodj+buildbot
2019-05-13 9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [binutils][aarch64] New SVE_ADDR_ZX operand.
@ 2019-05-10 16:33 sergiodj+buildbot
2019-05-12 10:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-10 16:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c469c86473273e115b267a6f8c93c8942deb93c4 ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: c469c86473273e115b267a6f8c93c8942deb93c4
[binutils][aarch64] New SVE_ADDR_ZX operand.
Add AARCH64_OPND_SVE_ADDR_ZX operand that allows a vector of addresses
in a Zn register, offset by an Xm register.
This is used with scatter/gather SVE2 instructions.
gas/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-aarch64.c (REG_ZR): Macro specifying zero register.
(parse_address_main): Account for new addressing mode [Zn.S, Xm].
(parse_operands): Handle new SVE_ADDR_ZX operand.
include/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* opcode/aarch64.h (enum aarch64_opnd): New SVE_ADDR_ZX 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_ADDR_ZX.
(aarch64_print_operand): Add printing for SVE_ADDR_ZX.
* aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_ADDR_ZX operand.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [binutils][aarch64] Add SVE2 instructions.
@ 2019-05-11 0:43 sergiodj+buildbot
2019-05-13 2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-11 0:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f ***
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Branch: master
Commit: 42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f
[binutils][aarch64] Add SVE2 instructions.
This patch adds all the SVE2 instructions and their associated qualifier
sets.
Ok for trunk?
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-dis-2.c: Regenerate.
* aarch64-tbl.h (OP_SVE_BBU): New variant set.
(OP_SVE_BBB): New variant set.
(OP_SVE_DDDD): New variant set.
(OP_SVE_HHH): New variant set.
(OP_SVE_HHHU): New variant set.
(OP_SVE_SSS): New variant set.
(OP_SVE_SSSU): New variant set.
(OP_SVE_SHH): New variant set.
(OP_SVE_SBBU): New variant set.
(OP_SVE_DSS): New variant set.
(OP_SVE_DHHU): New variant set.
(OP_SVE_VMV_HSD_BHS): New variant set.
(OP_SVE_VVU_HSD_BHS): New variant set.
(OP_SVE_VVVU_SD_BH): New variant set.
(OP_SVE_VVVU_BHSD): New variant set.
(OP_SVE_VVV_QHD_DBS): New variant set.
(OP_SVE_VVV_HSD_BHS): New variant set.
(OP_SVE_VVV_HSD_BHS2): New variant set.
(OP_SVE_VVV_BHS_HSD): New variant set.
(OP_SVE_VV_BHS_HSD): New variant set.
(OP_SVE_VVV_SD): New variant set.
(OP_SVE_VVU_BHS_HSD): New variant set.
(OP_SVE_VZVV_SD): New variant set.
(OP_SVE_VZVV_BH): New variant set.
(OP_SVE_VZV_SD): New variant set.
(aarch64_opcode_table): Add sve2 instructions.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PowerPC objdump -Mraw
@ 2019-05-11 0:59 sergiodj+buildbot
2019-05-13 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update printing of optional operands during disassembly.
@ 2019-05-11 2:38 sergiodj+buildbot
2019-05-13 7:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-11 2:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bda678b9e5e4a343a9bb2b0fd20cf52035bad78e ***
Author: Peter Bergner <bergner@linux.ibm.com>
Branch: master
Commit: bda678b9e5e4a343a9bb2b0fd20cf52035bad78e
Update printing of optional operands during disassembly.
opcodes/
* ppc-dis.c (skip_optional_operands): Change return type and returns.
(print_insn_powerpc) <skip_optional>: Change type.
Call skip_optional_operands if we have not skipped any operands.
gas/
* testsuite/gas/ppc/476.d: Update expected output.
* testsuite/gas/ppc/power6.d: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix GDB build when using --disable-gdbmi
@ 2019-05-11 8:39 sergiodj+buildbot
2019-05-13 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-11 8:39 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1367480341749b1498a6c5e7a7b79c7a4ab4ed34 ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 1367480341749b1498a6c5e7a7b79c7a4ab4ed34
Fix GDB build when using --disable-gdbmi
Since commit
b4be1b064860 ("Fix MI output for multi-location breakpoints")
we get this error when building with --disable-gdbmi:
CXXLD gdb
/home/smarchi/src/binutils-gdb/gdb/breakpoint.c:6358: error: undefined reference to 'mi_multi_location_breakpoint_output_fixed(ui_out*)'
This is due to breakpoint.c using a function defined in mi/mi-main.c, even
though mi/mi-main.c isn't included in the build.
To fix it, use the flags feature of ui_out. mi_ui_out has the new
fix_multi_location_breakpoint_output flag set for versions >= 3. Also,
move the global variable fix_multi_location_breakpoint_output to
breakpoint.c, so it can be read there even when we build without MI. I
renamed it to fix_multi_location_breakpoint_output_globally so it
doesn't clash with the new enumerator.
gdb/ChangeLog:
* breakpoint.h (fix_multi_location_breakpoint_output_globally):
New variable declaration.
* breakpoint.c (fix_multi_location_breakpoint_output_globally):
New variable.
(print_one_breakpoint): Use ui_out::test_flags and new global
variable to compute use_fixed_output.
* mi/mi-main.h (mi_multi_location_breakpoint_output_fixed):
Remove.
* mi/mi-main.c (fix_multi_location_breakpoint_output): Remove.
(mi_multi_location_breakpoint_output_fixed): Remove.
(mi_cmd_fix_multi_location_breakpoint_output): Adjust to set the
new variable.
* mi/mi-out.c (mi_ui_out::mi_ui_out): Set
fix_multi_location_breakpoint_output flag if version >= 3.
* ui-out.h (enum ui_out_flag)
<fix_multi_location_breakpoint_output>: New enumerator.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add macro expansions for ADD, SUB, DADD and DSUB for MIPS r6
@ 2019-05-11 12:31 sergiodj+buildbot
2019-05-13 16:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-11 12:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 387e762476ff224ee40760910e73a3905a2c380a ***
Author: Faraz Shahbazker <fshahbazker@wavecomp.com>
Branch: master
Commit: 387e762476ff224ee40760910e73a3905a2c380a
Add macro expansions for ADD, SUB, DADD and DSUB for MIPS r6
Release 6 of the MIPS architecture does not have an ADDI instruction.
ADD/SUB instructions with immediate operands can be expanded to load
and immediate value and then perform the operation.
gas/
* config/tc-mips.c (macro) <M_ADD_I, M_SUB_I, M_DADD_I, M_DSUB_I>:
Add expansions for MIPS r6.
* testsuite/gas/mips/add.s: Enable tests for R6.
* testsuite/gas/mips/daddi.s: Annotate to test DADD for R6.
* testsuite/gas/mips/mipsr6@add.d: Likewise.
* gas/testsuite/gas/mips/mipsr6@dadd.d: New test.
* gas/testsuite/gas/mips/mips.exp: Run the new test.
opcodes/
* mips-opc.c (mips_opcodes): Enable ADD, SUB, DADD and DSUB
macros for R6.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix two langauge -> language typos
@ 2019-05-12 16:12 sergiodj+buildbot
2019-05-14 6:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 9:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Add half float view to V registers
@ 2019-05-14 9:55 sergiodj+buildbot
2019-05-14 10:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 12:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 14:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] GDB (s12z): Improve reliability of the stack unwinder.
@ 2019-05-15 5:50 sergiodj+buildbot
2019-05-15 6:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-15 5:50 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c5358db468d582e658488c2bcc1befe6e6e47366 ***
Author: John Darrington <john@darrington.wattle.id.au>
Branch: master
Commit: c5358db468d582e658488c2bcc1befe6e6e47366
GDB (s12z): Improve reliability of the stack unwinder.
Previously, the stack unwinder searched through consecutive bytes for values
which it thought might be the start of a stack mutating operation.
This was error prone, because such bytes could also be the operands of other
instructions. This change uses the opcodes api to interpret the code in each
frame.
gdb/ChangeLog:
* s12z-tdep.c (push_pull_get_stack_adjustment): New function.
(advance, posn, abstract_read_memory): New functions.
[struct mem_read_abstraction]: New struct.
(s12z_frame_cache): Use opcodes API to interpret stack frame code.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] linux-thread-db.c: use bool where possible in thread_db code
@ 2019-05-15 15:54 sergiodj+buildbot
2019-05-15 21:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-15 15:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9ddc1af18c31e775ae7b107779addfcde92c723f ***
Author: Simon Marchi <simon.marchi@efficios.com>
Branch: master
Commit: 9ddc1af18c31e775ae7b107779addfcde92c723f
linux-thread-db.c: use bool where possible in thread_db code
I happened to be looking at this code and noticed we could replace ints
by bools at a few places.
gdb/ChangeLog:
* linux-thread-db.c (try_thread_db_load_1): Change return type
to bool.
(try_thread_db_load): Likewise.
(try_thread_db_load_from_pdir_1): Likewise.
(try_thread_db_load_from_pdir): Likewise.
(try_thread_db_load_from_sdir): Likewise.
(try_thread_db_load_from_dir): Likewise.
(thread_db_load_search): Likewise.
(has_libpthread): Likewise.
(thread_db_load): Likewise.
^ permalink raw reply [flat|nested] 4390+ 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 22:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Revert "ARM STM32L4XX erratum test failure"
@ 2019-05-16 13:25 sergiodj+buildbot
2019-05-16 14:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 21:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-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 21:12 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:12 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8154>
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/Debian-s390x-native-gdbserver-m64/c5/c507f10b0711f24e1b82b8bd096e605317cf77fe/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/mi-nonstop.exp: probe for target remote
new FAIL: gdb.mi/mi-nonstop.exp: wait for thread exit
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=843c0a07>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=843c0a07>
^ permalink raw reply [flat|nested] 4390+ 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-17 2:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-17 6:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-17 9:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-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-17 9:52 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 9:52 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8161>
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/Debian-s390x-native-gdbserver-m64/66/66dcaa5d55eb39471d962bb949df009a9ea3f959/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.mi/mi-nonstop.exp: probe for target remote
new FAIL: gdb.mi/mi-nonstop.exp: wait for thread exit
============================
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=843c0a07>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=843c0a07>
^ permalink raw reply [flat|nested] 4390+ 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-17 12:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-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-17 12:14 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 12:14 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8162>
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/Debian-s390x-native-gdbserver-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=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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=843c0a07>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=843c0a07>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix darwin-nat.c build
@ 2019-05-16 19:46 sergiodj+buildbot
2019-05-17 20:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-17 22:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number instructions
@ 2019-05-16 21:12 sergiodj+buildbot
2019-05-17 4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 21:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 897b9bbcffa894bd3f3664d7f1b666379493d9b2 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: 897b9bbcffa894bd3f3664d7f1b666379493d9b2
[PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number 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.
(is_mve_encoding_conflict): Handle new instructions.
(is_mve_unpredictable): Likewise.
(print_mve_rotate): Likewise.
(print_mve_size): Likewise.
(print_insn_mve): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix complaint string formatting on stap-probe.c
@ 2019-05-16 21:37 sergiodj+buildbot
2019-05-18 4:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-18 6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [PATCH 51/57][Arm][OBJDUMP] Add support for MVE instructions: lctp, letp, wlstp and dlstp
@ 2019-05-16 23:02 sergiodj+buildbot
2019-05-17 7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-16 23:02 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d052b9b7cb90e0f76e35b0cf3c44e9b168b158c2 ***
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Branch: master
Commit: d052b9b7cb90e0f76e35b0cf3c44e9b168b158c2
[PATCH 51/57][Arm][OBJDUMP] Add support for MVE instructions: lctp, letp, wlstp and dlstp
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.
(print_insn_thumb32): Handle new instructions.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb] Fix heap-use-after-free in typename_concat
@ 2019-05-17 7:58 sergiodj+buildbot
2019-05-18 8:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] MI: extract command completion logic from complete_command()
@ 2019-05-17 10:42 sergiodj+buildbot
2019-05-19 0:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-05-17 10:42 [binutils-gdb] MI: extract command completion logic from complete_command() sergiodj+buildbot
@ 2019-05-19 0:20 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-19 0:20 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8175>
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/Debian-s390x-native-gdbserver-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: complete with no arguments and no symbols: tab complete "b "
PASS -> UNRESOLVED: gdb.linespec/explicit.exp: set max-completions unlimited
============================
*** 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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=843c0a07>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=843c0a07>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] MI: Add new command -complete
@ 2019-05-17 11:02 sergiodj+buildbot
2019-05-19 3:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change file close behavior for tee_file
@ 2019-05-17 13:27 sergiodj+buildbot
2019-05-19 6:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add debug redirect option
@ 2019-05-17 13:46 sergiodj+buildbot
2019-05-19 9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] testsuite: Disable some tests when logging
@ 2019-05-17 14:55 sergiodj+buildbot
2019-05-19 13:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] testsuite: Add replay logging to GDBSERVER_DEBUG
@ 2019-05-17 16:26 sergiodj+buildbot
2019-05-20 3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] testsuite: Remove TRANSCRIPT support
@ 2019-05-17 16:43 sergiodj+buildbot
2019-05-20 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Constify annotate_source
@ 2019-05-17 17:00 sergiodj+buildbot
2019-05-20 16:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Don't cast away const in find_and_open_source
@ 2019-05-17 17:37 sergiodj+buildbot
2019-05-20 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] testsuite: Add option to capture GDB debug
@ 2019-05-17 19:13 sergiodj+buildbot
2019-05-19 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-17 19:13 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 29b523140ecf72bc3fdf570c71fbda6fe85cf930 ***
Author: Alan Hayward <alan.hayward@arm.com>
Branch: master
Commit: 29b523140ecf72bc3fdf570c71fbda6fe85cf930
testsuite: Add option to capture GDB debug
Add both board option and environment variable which enables gdb
debug via a comma separated list and sends it to the file gdb.debug,
located in the output directory for the current test. Document this.
Add support for the environment variable in the Makefile.
The testsuite can be run with gdb debug enabled in the following way:
make check GDB_DEBUG="infrun,target,remote"
A Test with multiple invocations of GDB will all append debug to the
same log file.
gdb/testsuite/ChangeLog:
* Makefile.in: Pass through GDB_DEBUG.
* README (Testsuite Parameters): Add GDB_DEBUG.
(gdb,debug): Add board setting.
* lib/gdb.exp (default_gdb_start): Start debugging.
(gdb_debug_enabled): New procedure.
(gdb_debug_init): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Updated translations for various binutils subdirectories.
@ 2019-05-21 7:37 sergiodj+buildbot
2019-05-21 8:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 12:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Require c++11 where necessary
@ 2019-05-21 16:56 sergiodj+buildbot
2019-05-21 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] AArch64: Fix -Werror on build
@ 2019-05-21 18:17 sergiodj+buildbot
2019-05-21 23:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-21 18:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6467207116c66ff2c58f8bc35cb15b2596f5c457 ***
Author: Tamar Christina <tamar.christina@arm.com>
Branch: master
Commit: 6467207116c66ff2c58f8bc35cb15b2596f5c457
AArch64: Fix -Werror on build
This patch fixes a hardcoded `l` specifier on a `bfd_signed_vma`.
Instead this now uses BFD_VMA_FMT which fixes the build on 32 bit
hosts.
Committed under the obvious rule.
bfd/ChangeLog:
PR ld/24373
* elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub):
Fix print formatter.
^ permalink raw reply [flat|nested] 4390+ 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-22 9:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-22 10:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-22 11:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr
@ 2019-05-22 0:49 sergiodj+buildbot
2019-05-22 13:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfdtest1 segfaults on hppa-hp-hpux10
@ 2019-05-22 10:41 sergiodj+buildbot
2019-05-22 16:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 10:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4decd602d8570eda5d36fd6cca2e50091000fa7a ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 4decd602d8570eda5d36fd6cca2e50091000fa7a
bfdtest1 segfaults on hppa-hp-hpux10
The archive element cache needs tidying when closing an archive element.
This patch fixes these failures:
-FAIL: ar long file names (bfdtest1)
-FAIL: ar thin archive (bfdtest1)
-FAIL: ar thin archive with nested archive (bfdtest1)
* som.c (som_bfd_free_cached_info): Call
_bfd_generic_close_and_cleanup.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/riscv: Improve flen length determination
@ 2019-05-22 13:57 sergiodj+buildbot
2019-05-22 23:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 13:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0a5954bd5f96dd665cb733b9ab6f2ca67bb4632d ***
Author: Simon Cook <simon.cook@embecosm.com>
Branch: master
Commit: 0a5954bd5f96dd665cb733b9ab6f2ca67bb4632d
gdb/riscv: Improve flen length determination
This solves an assertion failure when a remote provides a target
description which only refers to floating point registers by their
hardware name (e.g. f0), rather than their ABI name (e.g. ft0). GDB
assumed that should the floating point register feature be presented,
it would contain a register called ft0.
The floating point length is now instead determined by searching for
the same register, but looking for any of its aliases.
gdb/ChangeLog:
* riscv-tdep.c (riscv_gdbarch_init): Support determining flen from
target descriptions using exclusively floating point register name
aliases.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] AArch64: Treat pauth ops as nops on non-pauth systems
@ 2019-05-22 16:32 sergiodj+buildbot
2019-05-23 17:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add missing mi_skip_python_tests to py-mi-var-info-path-expression.exp
@ 2019-05-22 18:22 sergiodj+buildbot
2019-05-23 17:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-22 18:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e7fe496b1b8c0dfc44876f86131f756b424d4e70 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: e7fe496b1b8c0dfc44876f86131f756b424d4e70
[gdb/testsuite] Add missing mi_skip_python_tests to py-mi-var-info-path-expression.exp
Fix gdb.python/py-mi-var-info-path-expression.exp for a gdb build without
python support.
gdb/testsuite/ChangeLog:
2019-05-22 Tom de Vries <tdevries@suse.de>
PR testsuite/24586
* gdb.python/py-mi-var-info-path-expression.exp: Call
mi_skip_python_tests to check if python is supported.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Require c++11 for gdb.base/align.exp
@ 2019-05-22 18:33 sergiodj+buildbot
2019-05-23 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] opcodes: add support for eBPF
@ 2019-05-23 20:19 sergiodj+buildbot
2019-05-24 2:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd: add support for eBPF
@ 2019-05-23 20:52 sergiodj+buildbot
2019-05-24 0:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-23 20:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fd0de36e274c8141a5dd4579cd04856dc88370da ***
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Branch: master
Commit: fd0de36e274c8141a5dd4579cd04856dc88370da
bfd: add support for eBPF
This patch adds support to BFD for elf64-bpf, in both little-endian
and big-endian variants.
bfd/ChangeLog:
2019-05-23 Jose E. Marchesi <jose.marchesi@oracle.com>
* configure.ac: Add bpf_elf64_le_vec and bpf_elf64_be_vec.
* configure: Regenerated.
* Makefile.am (ALL_MACHINES): Add cpu-bpf.lo.
(ALL_MACHINES_CFILES): Add cpu-bpf.c.
(BFD64_BACKENDS): Add elf64-bpf.lo.
(BFD64_BACKENDS_CFILES): Add elf64-bpf.c.
* Makefile.in (SOURCE_HFILES): Regenerate.
* config.bfd (targ_cpu): Handle bpf-*-* targets.
* cpu-bpf.c: New file.
* elf64-bpf.c: Likewise.
* targets.c (_bfd_target_vector): Add bpf_elf64_be_vec and
bpf_elf64_le_vec.
* archures.c: Define architecture bfd_arch_bpf and machine
bfd_arch_bpf.
* reloc.c: Define BFD relocations used by the BPF target.
* bfd-in2.h: Regenerated.
* libbfd.h: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PowerPC add initial -mfuture instruction support
@ 2019-05-24 2:50 sergiodj+buildbot
2019-05-24 4:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC relocations for prefix insns
@ 2019-05-24 3:29 sergiodj+buildbot
2019-05-24 22:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC GOT_PCREL34 optimisation
@ 2019-05-24 3:52 sergiodj+buildbot
2019-05-24 23:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC notoc linkage stubs
@ 2019-05-24 4:14 sergiodj+buildbot
2019-05-24 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-27 7:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] aarch64: handle STO_AARCH64_VARIANT_PCS in bfd
@ 2019-05-25 0:56 sergiodj+buildbot
2019-05-27 7:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Regen POTFILES for bpf
@ 2019-05-25 1:22 sergiodj+buildbot
2019-05-25 4:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-25 1:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 405b5bd86fbcfa9ad5e67e9cdc49dfcdaacf533c ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 405b5bd86fbcfa9ad5e67e9cdc49dfcdaacf533c
Regen POTFILES for bpf
bfd/
* po/SRC-POTFILES.in: Regenerate.
gas/
* po/POTFILES.in: Regenerate.
ld/
* po/BLD-POTFILES.in: Regenerate.
opcodes/
* po/POTFILES.in: Regenerate.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix typo in gdb/NEWS
@ 2019-05-28 3:44 sergiodj+buildbot
2019-05-28 4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] XCOFF linker segmentation fault
@ 2019-05-28 4:24 sergiodj+buildbot
2019-05-28 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-28 4:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0eb32b6e1dee07ac199b4bba855205e4de099213 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0eb32b6e1dee07ac199b4bba855205e4de099213
XCOFF linker segmentation fault
The XCOFF linker temporarily trims the output bfd section list,
without adjusting section_count to suit. This is a little rude, but
the dwarf line number code can easily cope with this situation. So
check for a NULL end of list as well as limiting the saved section
VMAs to the first section_count list entries.
Also fixes
-FAIL: Weak test 3 (main, static) (32-bit)
-FAIL: Weak test 3 (main, static) (64-bit)
PR 24596
* dwarf2.c (save_section_vma, section_vma_same): Check for NULL
end of section list as well as section_count.
* xcofflink.c (xcoff_link_add_symbols): Fix temporarily changed
section list before returning error.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] LM32 linker segmentation faults
@ 2019-05-29 0:02 sergiodj+buildbot
2019-05-29 3:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Alpha-linux linker segmentation fault
@ 2019-05-29 0:04 sergiodj+buildbot
2019-05-29 5:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Microblaze linker segmentation fault
@ 2019-05-29 0:06 sergiodj+buildbot
2019-05-29 8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Suppress SIGTTOU when handling errors
@ 2019-05-29 0:08 sergiodj+buildbot
2019-05-29 11:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] include: new header ctf-api.h
@ 2019-05-29 0:11 sergiodj+buildbot
2019-05-29 15:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] m68k linker segmentation faults
@ 2019-05-29 0:24 sergiodj+buildbot
2019-05-29 1:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 0:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c83004d526c9f5e203926a979d405f7b720b9ede ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: c83004d526c9f5e203926a979d405f7b720b9ede
m68k linker segmentation faults
This doesn't fix the underlying bug, but an abort is better than a
segfault.
PR 24596
* elf32-m68k.c (elf_m68k_get_got_entry): Don't create a new
entry when MUST_FIND. Abort when MUST_FIND not found.
(elf_m68k_get_bfd2got_entry): Likewise.
(elf_m68k_relocate_section): Remove now useless assert.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] libctf: build system
@ 2019-05-29 0:50 sergiodj+buildbot
2019-06-01 10:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove find_old_style_renaming_symbol
@ 2019-05-29 1:04 sergiodj+buildbot
2019-06-01 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] x86: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL
@ 2019-05-29 1:10 sergiodj+buildbot
2019-06-01 11:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 1:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a2f4b66c9eb5210f8ef6038d7194af1e5f314f97 ***
Author: H.J. Lu <hjl.tools@gmail.com>
Branch: master
Commit: a2f4b66c9eb5210f8ef6038d7194af1e5f314f97
x86: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL
For AVX512 instructions with Disp8ShiftVL and Broadcast, we may need to
add CheckRegSize to check if broadcast matches the destination register
size.
gas/
PR gas/24625
* testsuite/gas/i386/inval-avx512f.s: Add tests for AVX512_BF16
instructions with invalid broadcast.
* testsuite/gas/i386/x86-64-inval-avx512f.s: Likewise.
* testsuite/gas/i386/inval-avx512f.l: Updated.
* testsuite/gas/i386/x86-64-inval-avx512f.l: Likewise.
opcodes/
PR gas/24625
* i386-opc.tbl: Add CheckRegSize to AVX512_BF16 instructions with
Disp8ShiftVL.
* i386-tbl.h: Regenerated.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] MIPS/LD: Skip overflow check for %pcrel_hi relocations
@ 2019-05-29 1:13 sergiodj+buildbot
2019-06-01 11:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: opening
@ 2019-05-29 2:19 sergiodj+buildbot
2019-05-30 3:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: core type lookup
@ 2019-05-29 3:33 sergiodj+buildbot
2019-05-31 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: library version enforcement
@ 2019-05-29 4:16 sergiodj+buildbot
2019-05-31 21:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: labels
@ 2019-05-29 4:47 sergiodj+buildbot
2019-06-01 6:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: debug dumping
@ 2019-05-29 4:51 sergiodj+buildbot
2019-06-01 8:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] COFF linker segmentation faults
@ 2019-05-29 5:10 sergiodj+buildbot
2019-05-29 9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 5:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0f4a61b42002f568473f821f00dd240413beadd0 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: 0f4a61b42002f568473f821f00dd240413beadd0
COFF linker segmentation faults
A plugin can change the element, so call the generic
bfd_link_add_symbols.
PR 24596
* cofflink.c (coff_link_check_archive_element): Don't assume
element is a coff object file after calling add_archive_element.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] libctf: lowest-level memory allocation and debug-dumping wrappers
@ 2019-05-29 9:28 sergiodj+buildbot
2019-05-29 16:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 9:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 60da9d955964759b1f52690bff587ad32a198507 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 60da9d955964759b1f52690bff587ad32a198507
libctf: lowest-level memory allocation and debug-dumping wrappers
The memory-allocation wrappers are simple things to allow malloc
interposition: they are only used inconsistently at present, usually
where malloc debugging was required in the past.
These provide a default implementation that is environment-variable
triggered (initialized on the first call to the libctf creation and
file-opening functions, the first functions people will use), and
a ctf_setdebug()/ctf_getdebug() pair that allows the caller to
explicitly turn debugging off and on. If ctf_setdebug() is called,
the automatic setting from an environment variable is skipped.
libctf/
* ctf-impl.h: New file.
* ctf-subr.c: New file.
include/
* ctf-api.h (ctf_setdebug): New.
(ctf_getdebug): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] libctf: error handling
@ 2019-05-29 10:59 sergiodj+buildbot
2019-05-29 20:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 10:59 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 479604f44fc1eaa02a97ebcc1b60f55a606c4046 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 479604f44fc1eaa02a97ebcc1b60f55a606c4046
libctf: error handling
CTF functions return zero on success or an extended errno value which
can be translated into a string via the functions in this commit.
The errno numbers start at -CTF_BASE.
libctf/
* ctf-error.c: New file.
include/
* ctf-api.h (ctf_errno): New declaration.
(ctf_errmsg): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] libctf: implementation definitions related to file creation
@ 2019-05-29 12:26 sergiodj+buildbot
2019-05-30 1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 12:26 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a5be9bbe896d4adb6077e9bb2ebcaaa4426bdde1 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: a5be9bbe896d4adb6077e9bb2ebcaaa4426bdde1
libctf: implementation definitions related to file creation
We now enter a series of commits that are sufficiently tangled that
avoiding forward definitions is almost impossible: no attempt is made to
make individual commits compilable (which is why the build system does
not reference any of them yet): the only important thing is that they
should form something like conceptual groups.
But first, some definitions, including the core ctf_file_t itself. Uses
of these definitions will be introduced in later commits.
libctf/
* ctf-impl.h: New definitions and declarations for type creation
and lookup.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] libctf: ELF file opening via BFD
@ 2019-05-29 16:18 sergiodj+buildbot
2019-05-31 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 16:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 143dce8481f09f60704ab52b98cf8fe6d8b29fc9 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 143dce8481f09f60704ab52b98cf8fe6d8b29fc9
libctf: ELF file opening via BFD
These functions let you open an ELF file with a customarily-named CTF
section in it, automatically opening the CTF file or archive and
associating the symbol and string tables in the ELF file with the CTF
container, so that you can look up the types of symbols in the ELF file
via ctf_lookup_by_symbol(), and so that strings can be shared between
the ELF file and CTF container, to save space.
It uses BFD machinery to do so. This has now been lightly tested and
seems to work. In particular, if you already have a bfd you can pass
it in to ctf_bfdopen(), and if you want a bfd made for you you can
call ctf_open() or ctf_fdopen(), optionally specifying a target (or
try once without a target and then again with one if you get
ECTF_BFD_AMBIGUOUS back).
We use a forward declaration for the struct bfd in ctf-api.h, so that
ctf-api.h users are not required to pull in <bfd.h>. (This is mostly
for the sake of readelf.)
libctf/
* ctf-open-bfd.c: New file.
* ctf-open.c (ctf_close): New.
* ctf-impl.h: Include bfd.h.
(ctf_file): New members ctf_data_mmapped, ctf_data_mmapped_len.
(ctf_archive_internal): New members ctfi_abfd, ctfi_data,
ctfi_bfd_close.
(ctf_bfdopen_ctfsect): New declaration.
(_CTF_SECTION): likewise.
include/
* ctf-api.h (struct bfd): New forward.
(ctf_fdopen): New.
(ctf_bfdopen): Likewise.
(ctf_open): Likewise.
(ctf_arc_open): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] libctf: lookups by name and symbol
@ 2019-05-29 19:15 sergiodj+buildbot
2019-05-31 16:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-29 19:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b437bfe0f4cf06559ca4c508a2869383196ddc6b ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: b437bfe0f4cf06559ca4c508a2869383196ddc6b
libctf: lookups by name and symbol
These functions allow you to look up types given a name in a simple
subset of C declarator syntax (no function pointers), to look up the
types of variables given a name, and to look up the types of data
objects and the type signatures of functions given symbol table offsets.
(Despite its name, one function in this commit, ctf_lookup_symbol_name(),
is for the internal use of libctf only, and does not appear in any
public header files.)
libctf/
* ctf-lookup.c (isqualifier): New.
(ctf_lookup_by_name): Likewise.
(struct ctf_lookup_var_key): Likewise.
(ctf_lookup_var): Likewise.
(ctf_lookup_variable): Likewise.
(ctf_lookup_symbol_name): Likewise.
(ctf_lookup_by_symbol): Likewise.
(ctf_func_info): Likewise.
(ctf_func_args): Likewise.
include/
* ctf-api.h (ctf_func_info): New.
(ctf_func_args): Likewise.
(ctf_lookup_by_symbol): Likewise.
(ctf_lookup_by_symbol): Likewise.
(ctf_lookup_variable): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Revert "Sync top level files with versions from gcc."
@ 2019-05-30 11:54 sergiodj+buildbot
2019-06-02 0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-30 11:54 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e3f56a99f66298bb505d0426950b9716a853a5df ***
Author: Nick Clifton <nickc@redhat.com>
Branch: master
Commit: e3f56a99f66298bb505d0426950b9716a853a5df
Revert "Sync top level files with versions from gcc."
This reverts commit f948b2de97884bfb4e5fc11d40a6bea9e0b096ae.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Two comment fixes in gdbtypes.h
@ 2019-05-30 16:46 sergiodj+buildbot
2019-06-02 3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-30 16:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT bfcdb85206cd3c3b8ad73b13db6bfb2ec608239b ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: bfcdb85206cd3c3b8ad73b13db6bfb2ec608239b
Two comment fixes in gdbtypes.h
This fixes a couple of comments in gdbtypes.h. One comment had a
typo; and another comment referred to "Moto", which is presumably some
long-gone Motorola-related project.
Tested by rebuilding.
gdb/ChangeLog
2019-05-30 Tom Tromey <tromey@adacore.com>
* gdbtypes.h (struct range_bounds) <flag_upper_bound_is_count>:
Fix comment.
(TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED): Rewrite comment.
^ permalink raw reply [flat|nested] 4390+ 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-06-02 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Implement | (pipe) command.
@ 2019-05-31 18:04 sergiodj+buildbot
2019-06-02 23:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add function execute_command_to_ui_file
@ 2019-05-31 18:34 sergiodj+buildbot
2019-06-02 23:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-05-31 18:34 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b8fd091888383703f5d708c597c496d7b9e47a21 ***
Author: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Branch: master
Commit: b8fd091888383703f5d708c597c496d7b9e47a21
Add function execute_command_to_ui_file
2019-05-31 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdbcmd.h (execute_command_to_ui_file): New declaration.
top.c (execute_command_to_ui_file): New function, mostly a copy
of execute_command_to_string.
(execute_command_to_string): Implement by calling
execute_command_to_ui_file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] NEWS and documentation for | (pipe) command.
@ 2019-05-31 18:35 sergiodj+buildbot
2019-06-03 2:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove fromhex implementation from gdbreplay
@ 2019-06-03 2:58 sergiodj+buildbot
2019-06-03 15:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Don't waste space in prefix_opcd_indices
@ 2019-06-03 16:02 sergiodj+buildbot
2019-06-03 20:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 23:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Improve usability and/or readibility of help and apropos output.
@ 2019-06-03 22:05 sergiodj+buildbot
2019-06-04 17:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Update tests following changes to "help" and "apropos"
@ 2019-06-03 22:28 sergiodj+buildbot
2019-06-04 19:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-04 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add support for Intel ENQCMD[S] instructions
@ 2019-06-04 17:11 sergiodj+buildbot
2019-06-05 0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Enable Intel AVX512_VP2INTERSECT insn
@ 2019-06-04 17:31 sergiodj+buildbot
2019-06-05 0:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: fix the type of ctf_enum.cte_value
@ 2019-06-04 18:26 sergiodj+buildbot
2019-06-05 2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: look for BSD versus GNU qsort_r signatures
@ 2019-06-04 19:32 sergiodj+buildbot
2019-06-05 9:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: work on platforms without O_CLOEXEC.
@ 2019-06-04 19:41 sergiodj+buildbot
2019-06-05 9:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] i386: Check for reserved VEX.vvvv and EVEX.vvvv
@ 2019-06-04 21:05 sergiodj+buildbot
2019-06-05 10:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use CHAR_BIT instead of NBBY in libctf
@ 2019-06-04 21:37 sergiodj+buildbot
2019-06-05 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: fix use-after-free in function dumping
@ 2019-06-04 22:03 sergiodj+buildbot
2019-06-05 4:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-04 22:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 941accce38bc70a23c62e3c9439b67bf23298124 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 941accce38bc70a23c62e3c9439b67bf23298124
libctf: fix use-after-free in function dumping
This is actually a free-before-initializing (i.e. a free of garbage).
libctf/
* ctf-dump.c (ctf_dump_funcs): Free in the right place.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Introduce and use make_unique_xstrdup
@ 2019-06-04 23:38 sergiodj+buildbot
2019-06-05 10:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 11:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: eschew %zi format specifier
@ 2019-06-05 18:25 sergiodj+buildbot
2019-06-06 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-05 18:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 62d8e3b73139b159963025b5568ec1f5051450f0 ***
Author: Nick Alcock <nick.alcock@oracle.com>
Branch: master
Commit: 62d8e3b73139b159963025b5568ec1f5051450f0
libctf: eschew %zi format specifier
Too many platforms don't support it, and we can always safely use %lu or
%li anyway, because the only uses are in debugging output.
libctf/
* ctf-archive.c (ctf_arc_write): Eschew %zi format specifier.
(ctf_arc_open_by_offset): Likewise.
* ctf-create.c (ctf_add_type): Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [LD, AArch64] Move ELF options behind -z
@ 2019-06-06 13:19 sergiodj+buildbot
2019-06-06 15:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue
@ 2019-06-06 15:13 sergiodj+buildbot
2019-06-06 17:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add timestamps to "maint time" output
@ 2019-06-06 18:15 sergiodj+buildbot
2019-06-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add thread-exit annotation.
@ 2019-06-06 19:36 sergiodj+buildbot
2019-06-07 13:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-06 19:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1a3da2cd6175e8f25cec95fc685d4f0f43bf6807 ***
Author: Amos Bird <amosbird@gmail.com>
Branch: master
Commit: 1a3da2cd6175e8f25cec95fc685d4f0f43bf6807
Add thread-exit annotation.
gdb/ChangeLog
2019-04-26 Amos Bird <amosbird@gmail.com>
* annotate.c (annotate_thread_exited): Add "thread-exited"
annotation.
gdb/doc/ChangeLog
2019-06-06 Amos Bird <amosbird@gmail.com>
* annotate.texinfo (Multi-threaded Apps): Add entry for thread-exited
annotation.
gdb/testsuite/ChangeLog
2019-06-06 Amos Bird <amosbird@gmail.com>
* gdb.base/annota1.exp (thread_switch): Add test for
thread-exited annotation.
^ permalink raw reply [flat|nested] 4390+ 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 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: avoid strndup
@ 2019-06-07 15:36 sergiodj+buildbot
2019-06-10 8:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Delay allocation of dbx_symfile_info
@ 2019-06-10 14:44 sergiodj+buildbot
2019-06-10 15:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 14:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT caa429d81a9999699a40b6394c9fb7b258669d54 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: caa429d81a9999699a40b6394c9fb7b258669d54
Delay allocation of dbx_symfile_info
I noticed that elfread.c always allocates a dbx_symfile_info, even
though this is only ever needed in the unusual case of reading stabs
in ELF.
This patch moves the allocation into dbxread.c, and applies the same
treatment to similar code in coffread.c.
Regression tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-10 Tom Tromey <tromey@adacore.com>
* elfread.c (elf_read_minimal_symbols): Don't set the dbx objfile
data.
(elf_new_init): Don't call stabsread_new_init.
* dbxread.c (coffstab_build_psymtabs): Set dbx objfile data.
(elfstab_build_psymtabs): Likewise. Call stabsread_new_init.
* coffread.c (coff_symfile_init): Don't set the dbx objfile data.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use gdbpy_enter in py-breakpoint.c
@ 2019-06-10 14:58 sergiodj+buildbot
2019-06-10 16:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add support for NetBSD/sh3 core file sections. Merge multiple copies of auxv section creation into one function.
@ 2019-06-10 17:18 sergiodj+buildbot
2019-06-10 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 17:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 58e07198f34c3a8bb7d64392e8b978a0d741244e ***
Author: Christos Zoulas <christos@zoulas.com>
Branch: master
Commit: 58e07198f34c3a8bb7d64392e8b978a0d741244e
Add support for NetBSD/sh3 core file sections. Merge multiple copies of auxv section creation into one function.
PR 24650
* elf.c (elfcore_make_auxv_note_section): New function.
(elfcore_grok_note): Use it.
(elfcore_grok_freebsd_note): Likewise.
(elfcore_grok_openbsd_note): Likewise.
(elfcore_grok_netbsd_note): Likewise. Plus add support for
NT_NETBSDCORE_AUXV notes.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove newlines from warnings
@ 2019-06-10 18:19 sergiodj+buildbot
2019-06-10 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-10 18:19 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 422186a95cbb02ee1d34388adceeb4bd289074b9 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 422186a95cbb02ee1d34388adceeb4bd289074b9
Remove newlines from warnings
ARI pointed out that a recent patch introduced a call to "warning"
with a string that ended in a newline:
https://sourceware.org/ml/gdb-patches/2019-06/msg00000.html
This is generally forbidden, I believe, because warning adds its own
newline.
This patch removes all of the trailing newlines I was able to find. I
searched for 'warning (.*\\n"' and then fixed the ones where the
newline appeared at the end of the string (some had internal
newlines).
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-10 Tom Tromey <tromey@adacore.com>
* m32c-tdep.c (m32c_m16c_address_to_pointer): Don't end warning
with a newline.
* guile/guile.c (handle_boot_error): Don't end warning with a
newline.
* cli/cli-cmds.c (exit_status_set_internal_vars): Don't end
warning with a newline.
* s12z-tdep.c (s12z_skip_prologue): Don't end warning with a
newline.
(s12z_frame_cache): Likewise.
* dwarf-index-cache.c (index_cache::store): Don't end warning with
a newline.
* solib-svr4.c (disable_probes_interface): Don't end warning with
a newline.
* nat/fork-inferior.c (fork_inferior): Don't end warning with a
newline.
* python/python.c (do_finish_initialization): Don't end warning
with a newline.
gdb/gdbserver/ChangeLog
2019-06-10 Tom Tromey <tromey@adacore.com>
* remote-utils.c (look_up_one_symbol, relocate_instruction): Don't
end warning with a newline.
* linux-s390-low.c (s390_get_wordsize): Don't end warning with a
newline.
* thread-db.c (attach_thread): Don't end warning with a newline.
(thread_db_notice_clone): Likewise.
* tracepoint.c (gdb_agent_helper_thread): Don't end warning with a
newline.
* linux-x86-low.c (x86_get_min_fast_tracepoint_insn_len): Don't
end warning with a newline.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb/symtab] Fix symbol loading performance regression
@ 2019-06-10 19:04 sergiodj+buildbot
2019-06-10 20:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 22:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 23:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Add readnow.exp
@ 2019-06-11 11:55 sergiodj+buildbot
2019-06-11 12:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove shadowing from darwin-nat.c
@ 2019-06-11 13:14 sergiodj+buildbot
2019-06-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove trailing newlines from help text
@ 2019-06-11 15:52 sergiodj+buildbot
2019-06-11 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-11 15:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89549d7f4d27b63c4aaab4456e21dab1ee96a40a ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 89549d7f4d27b63c4aaab4456e21dab1ee96a40a
Remove trailing newlines from help text
I noticed recently that some command had a trailing newline in its
"help" output. So, I temporarily hacked cli-decode.c to print
something when a new command was installed that had a trailing newline
in its help message, and wrote this patch, which removes all the ones
I could find this way. (There could still be a few more in *-nat
files.)
Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-11 Tom Tromey <tromey@adacore.com>
* infcall.c (_initialize_infcall): Remove trailing newline from
help.
* user-regs.c (_initialize_user_regs): Remove trailing newline
from help.
* typeprint.c (_initialize_typeprint): Remove trailing newline
from help.
* reverse.c (_initialize_reverse): Remove trailing newlines from
help.
* tracepoint.c (_initialize_tracepoint): Remove trailing newlines
from help.
* language.c (add_set_language_command): Remove trailing newline
from help.
* infcmd.c (_initialize_infcmd): Remove trailing newlines from
help.
* disasm.c (_initialize_disasm): Remove trailing newline from
help.
* top.c (init_main): Remove trailing newline from help.
* interps.c (_initialize_interpreter): Remove trailing newline
from help.
* btrace.c (_initialize_btrace): Remove trailing newlines from
help.
* breakpoint.c (_initialize_breakpoint): Remove trailing newline
from help.
* python/python.c (_initialize_python): Remove trailing newline
from help.
* spu-tdep.c (_initialize_spu_tdep): Remove trailing newlines from
help.
* tui/tui-win.c (_initialize_tui_win): Remove trailing newlines
from help. Reformat some text.
* tui/tui-stack.c (_initialize_tui_stack): Remove trailing newline
from help.
* tui/tui-layout.c (_initialize_tui_layout): Remove trailing
newline from help.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Dwarf: Don't add nameless modules to partial symbol table
@ 2019-06-12 15:03 sergiodj+buildbot
2019-06-12 15:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-12 15:03 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a5fd13a91534b1c79a4b61995894a5bb4f08d3b0 ***
Author: Bernhard Heckel <bernhard.heckel@intel.com>
Branch: master
Commit: a5fd13a91534b1c79a4b61995894a5bb4f08d3b0
Dwarf: Don't add nameless modules to partial symbol table
A name for BLOCK DATA in Fortran is optional. If no name has been
assigned, GDB crashes during read-in of DWARF when BLOCK DATA is
represented via DW_TAG_module. BLOCK DATA is used for one-time
initialization of non-pointer variables in named common blocks.
As of now there is no issue when gfortran is used as DW_TAG_module is
not emitted. However, with Intel ifort the nameless DW_TAG_module is
present and has the following form:
...
<1><dd>: Abbrev Number: 7 (DW_TAG_module)
<de> DW_AT_decl_line : 46
<df> DW_AT_decl_file : 1
<e0> DW_AT_description : (indirect string, offset: 0x110): block
data
<e4> DW_AT_high_pc : 0x402bb7
<ec> DW_AT_low_pc : 0x402bb7
...
The missing name leads to a crash in add_partial_symbol, during length
calculation.
gdb/ChangeLog:
2019-06-11 Bernhard Heckel <bernhard.heckel@intel.com>
* dwarf2read.c (add_partial_symbol): Skip nameless modules.
gdb/testsuite/Changelog:
2019-06-11 Bernhard Heckel <bernhard.heckel@intel.com>
* gdb.fortran/block-data.f: New.
* gdb.fortran/block-data.exp: New.
^ permalink raw reply [flat|nested] 4390+ 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:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] opcodes/or1k: Regenerate opcodes
@ 2019-06-12 23:45 sergiodj+buildbot
2019-06-13 0:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Allow "unlimited" abbreviations
@ 2019-06-13 1:56 sergiodj+buildbot
2019-06-13 8:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 9:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] New set/show testing framework (gdb.base/settings.exp)
@ 2019-06-13 2:36 sergiodj+buildbot
2019-06-13 11:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce generic command options framework
@ 2019-06-13 2:48 sergiodj+buildbot
2019-06-13 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make "print" and "compile print" support -OPT options
@ 2019-06-13 2:53 sergiodj+buildbot
2019-06-13 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] "set print raw frame-arguments" -> "set print raw-frame-arguments"
@ 2019-06-13 3:01 sergiodj+buildbot
2019-06-13 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 3:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2daf894ed0baf72dd3f422b7a71630145568db30 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 2daf894ed0baf72dd3f422b7a71630145568db30
"set print raw frame-arguments" -> "set print raw-frame-arguments"
A following patch will introduce options for the "backtrace" command,
based on some "set print" and "set backtrace" settings. There's one
setting in particular that is a bit annoying if we want to describe
the backtrace options and the settings commands using the same data
structures:
"set print raw frame-arguments"
The problem is that space between "raw" and "frame-arguments".
Calling the option
"bt -raw frame-arguments"
would be odd. So I'm calling the option
"bt -raw-frame-arguments"
instead.
And for consistency, this patch renames the set/show commands to:
"set print raw-frame-arguments"
"show print raw-frame-arguments"
I.e., dash instead of space. The old commands are left in place, but
marked deprecated.
We need to adjust a couple testcases, because the relevant tests use
gdb_test_no_output and the old commands are no longer silent:
(gdb) set print raw frame-arguments on
Warning: command 'set print raw frame-arguments' is deprecated.
Use 'set print raw-frame-arguments'.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* NEWS (Changed commands): Mention set/show print raw-frame-arguments,
and that "set/show print raw frame-arguments" are now deprecated.
* cli/cli-decode.c (add_setshow_boolean_cmd): Now returns the
command.
* command.h (add_setshow_boolean_cmd): Return cmd_list_element *.
* stack.c (_initialize_stack): Install "set/show print
raw-frame-arguments", and deprecate "set/show print raw
frame-arguments".
* valprint.c (_initialize_valprint): Deprecate "set/show print
raw".
gdb/doc/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Print Settings): Document "set/show print
raw-frame-arguments" instead of "set/show print raw
frame-arguments".
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.guile/scm-frame-args.exp: Use "set print
raw-frame-arguments" instead of "set print raw frame-arguments".
* gdb.python/py-frame-args.exp: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] lib/completion-support.exp: Add test_gdb_completion_offers_commands
@ 2019-06-13 3:40 sergiodj+buildbot
2019-06-15 1:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 3:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e2a689da55d3feb7b79a141f69c4049112f59c91 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: e2a689da55d3feb7b79a141f69c4049112f59c91
lib/completion-support.exp: Add test_gdb_completion_offers_commands
This adds a procedure to the collection of completion-testing
routines, that allows checking whether completion offers all commands
as completion candidates. This will be used for testing completing
"frame apply all [TAB]", "thread apply all [TAB]", etc.
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* lib/completion-support.exp (test_gdb_complete_tab_multiple)
(test_gdb_complete_cmd_multiple, test_gdb_complete_multiple): Add
'max_completions' parameter and handle it.
(test_gdb_completion_offers_commands): New.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-06-13 3:40 [binutils-gdb] lib/completion-support.exp: Add test_gdb_completion_offers_commands sergiodj+buildbot
@ 2019-06-15 1:32 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 1:32 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8358>
Commit(s) tested:
e2a689da55d3feb7b79a141f69c4049112f59c91
Author(s) (in the same order as the commits):
Pedro Alves <palves@redhat.com>
Subject:
lib/completion-support.exp: Add test_gdb_completion_offers_commands
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/e2/e2a689da55d3feb7b79a141f69c4049112f59c91/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: cmd complete "b -function param_prefixes_test_intp_intr
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: cmd complete "b -function param_prefixes_test_long
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: cmd complete "b param_prefixes_test_intp_intr
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: cmd complete "b param_prefixes_test_long
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: tab complete "b -function param_prefixes_test_intp_intr
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: tab complete "b -function param_prefixes_test_long
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: tab complete "b param_prefixes_test_intp_intr
PASS -> FAIL: gdb.linespec/cpcompletion.exp: all-param-prefixes: tab complete "b param_prefixes_test_long
new FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: "b -function ambiguous_prefix_" creates no bp locations: delete all breakpoints in delete_breakpoints
PASS -> FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: "b -function ambiguous_prefix_" creates no bp locations: matches
new FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: "b -function ambiguous_prefix_" creates no bp locations: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: "b ambiguous_prefix_" creates no bp locations: delete all breakpoints in delete_breakpoints
PASS -> FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: "b ambiguous_prefix_" creates no bp locations: matches
new FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: "b ambiguous_prefix_" creates no bp locations: set breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: cmd complete "b -function ambiguous_pre"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: ambiguous-prefix: cmd complete "b ambiguous_pre"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: ambiguous-prefix: tab complete "b -function ambiguous_pre"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: ambiguous-prefix: tab complete "b ambiguous_pre"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: "b -function the_anon_ns_wrapper_ns::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: "b the_anon_ns_wrapper_ns::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b "anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b 'anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b -function "anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b -function 'anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b -function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b -function anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b -function the_anon_ns_wrapper_ns::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: cmd complete "b the_anon_ns_wrapper_ns::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b "anon_ns_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b 'anon_ns_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b -function "anon_ns_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b -function 'anon_ns_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b -function anon_ns_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b -function the_anon_ns_wrapper_ns::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b anon_ns_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: compare "b the_anon_ns_wrapper_ns::
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b "anon_ns_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b 'anon_ns_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b -function "anon_ns_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b -function 'anon_ns_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b -function
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b -function anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b -function the_anon_ns_wrapper_ns::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b anon_ns_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: anon-ns: tab complete "b the_anon_ns_wrapper_ns::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b "not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b "not_overloaded_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b "not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b 'not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b 'not_overloaded_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b 'not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b -function "not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b -function "not_overloaded_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b -function "not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b -function 'not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b -function 'not_overloaded_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: cmd complete "b -function 'not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: compare "b "not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: compare "b 'not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: compare "b -function "not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: compare "b -function 'not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b "not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b "not_overloaded_fn"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b "not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b 'not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b 'not_overloaded_fn"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b 'not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b -function "not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b -function "not_overloaded_fn"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b -function "not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b -function 'not_overloaded_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b -function 'not_overloaded_fn"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: append-end-quote-char-when-unambiguous: tab complete "b -function 'not_overloaded_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload-quoted: cmd complete "b 'const_overload_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload-quoted: cmd complete "b -function 'const_overload_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload-quoted: compare "b 'const_overload_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload-quoted: compare "b -function 'const_overload_fn
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload-quoted: tab complete "b 'const_overload_fn
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload-quoted: tab complete "b -function 'const_overload_fn
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload: "b -function const_overload_fn
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload: "b const_overload_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: cmd complete "b -function const_overload_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: cmd complete "b -function const_overload_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: cmd complete "b const_overload_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: cmd complete "b const_overload_fn"
new FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b -function const_overload_fn" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b -function const_overload_fn" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b -function const_overload_fn" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b -function const_overload_fn" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload: compare "b -function const_overload_fn
new FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b const_overload_fn" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b const_overload_fn" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b const_overload_fn" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: const-overload: compare "b const_overload_fn" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload: compare "b const_overload_fn
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: tab complete "b -function const_overload_fn
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload: tab complete "b -function const_overload_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: const-overload: tab complete "b const_overload_fn
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: const-overload: tab complete "b const_overload_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn-2: "b -qualified struct_overload2_test::overload2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn-2: cmd complete "b -function struct_overload2_test::overload2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn-2: cmd complete "b -qualified struct_overload2_test::overload2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn-2: compare "b -function struct_overload2_test::overload2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn-2: tab complete "b -function struct_overload2_test::overload2_function
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: fqn-2: tab complete "b -qualified struct_overload2_test::overload2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified -function ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified -function overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified -source cpls.cc -function ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified -source cpls.cc -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified -source cpls.cc -function overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified cpls.cc:ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified cpls.cc:ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified cpls.cc:overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -qualified overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -source cpls.cc -qualified -function ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -source cpls.cc -qualified -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: cmd complete "b -source cpls.cc -qualified -function overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified -function ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified -function overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified -source cpls.cc -function ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified -source cpls.cc -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified -source cpls.cc -function overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified cpls.cc:ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified cpls.cc:ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified cpls.cc:overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified ns_overload2_test::
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -qualified overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -source cpls.cc -qualified -function ns_overload2_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -source cpls.cc -qualified -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: fqn: tab complete "b -source cpls.cc -qualified -function overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b "cpls.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b "cpls.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b "cpls.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b "cpls.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b "cpls.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b "cpls.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b 'cpls.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b 'cpls.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b 'cpls.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b 'cpls.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b 'cpls.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b 'cpls.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source "cpls.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source "cpls.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source "cpls.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source 'cpls.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source 'cpls.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source 'cpls.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source cpls.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source cpls.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b -source cpls.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b cpls.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b cpls.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b cpls.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b cpls.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b cpls.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b cpls.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: "b function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b "cpls.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b "cpls.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b "cpls.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b "cpls.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b "cpls.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b "cpls.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b 'cpls.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b 'cpls.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b 'cpls.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b 'cpls.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b 'cpls.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b 'cpls.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source "cpls.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source "cpls.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source "cpls.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source 'cpls.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source 'cpls.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source 'cpls.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source cpls.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source cpls.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b -source cpls.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b cpls.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b cpls.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b cpls.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b cpls.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b cpls.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b cpls.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: function-labels: cmd complete "b function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b "cpls.cc": "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b "cpls.cc": 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b "cpls.cc": function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b "cpls.cc":"function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b "cpls.cc":'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b "cpls.cc":function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b 'cpls.cc': "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b 'cpls.cc': 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b 'cpls.cc': function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b 'cpls.cc':"function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b 'cpls.cc':'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b 'cpls.cc':function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source "cpls.cc" -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source "cpls.cc" -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source "cpls.cc" -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source 'cpls.cc' -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source 'cpls.cc' -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source 'cpls.cc' -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source cpls.cc -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source cpls.cc -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b -source cpls.cc -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b cpls.cc: "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b cpls.cc: 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b cpls.cc: function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b cpls.cc:"function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b cpls.cc:'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b cpls.cc:function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: compare "b function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b "cpls.cc": "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b "cpls.cc": 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b "cpls.cc": function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b "cpls.cc":"function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b "cpls.cc":'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b "cpls.cc":function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b 'cpls.cc': "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b 'cpls.cc': 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b 'cpls.cc': function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b 'cpls.cc':"function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b 'cpls.cc':'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b 'cpls.cc':function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source "cpls.cc" -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source "cpls.cc" -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source "cpls.cc" -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source 'cpls.cc' -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source 'cpls.cc' -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source 'cpls.cc' -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source cpls.cc -function "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source cpls.cc -function 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b -source cpls.cc -function function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b cpls.cc: "function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b cpls.cc: 'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b cpls.cc: function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b cpls.cc:"function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b cpls.cc:'function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b cpls.cc:function_with_labels
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: function-labels: tab complete "b function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: cmd complete "b -function function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: cmd complete "b -function non_existing_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: cmd complete "b function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: cmd complete "b non_existing_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: tab complete "b -function function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: tab complete "b -function non_existing_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: tab complete "b function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: if-expression: tab complete "b non_existing_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b "cpls2.cc": "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b "cpls2.cc": ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b "cpls2.cc": '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b "cpls2.cc":"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b "cpls2.cc":""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b "cpls2.cc":'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b 'cpls2.cc': "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b 'cpls2.cc': ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b 'cpls2.cc': '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b 'cpls2.cc':"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b 'cpls2.cc':""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b 'cpls2.cc':'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source "cpls2.cc" -function "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source "cpls2.cc" -function ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source "cpls2.cc" -function '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source 'cpls2.cc' -function "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source 'cpls2.cc' -function ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source 'cpls2.cc' -function '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source cpls2.cc -function "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source cpls2.cc -function ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b -source cpls2.cc -function '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b cpls2.cc: "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b cpls2.cc: ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b cpls2.cc: '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b cpls2.cc:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b cpls2.cc:""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: cmd complete "b cpls2.cc:'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b "cpls2.cc": "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b "cpls2.cc": ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b "cpls2.cc": '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b "cpls2.cc":"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b "cpls2.cc":""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b "cpls2.cc":'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b 'cpls2.cc': "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b 'cpls2.cc': ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b 'cpls2.cc': '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b 'cpls2.cc':"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b 'cpls2.cc':""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b 'cpls2.cc':'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source "cpls2.cc" -function "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source "cpls2.cc" -function ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source "cpls2.cc" -function '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source 'cpls2.cc' -function "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source 'cpls2.cc' -function ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source 'cpls2.cc' -function '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source cpls2.cc -function "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source cpls2.cc -function ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b -source cpls2.cc -function '"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b cpls2.cc: "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b cpls2.cc: ""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b cpls2.cc: '"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b cpls2.cc:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b cpls2.cc:""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-ambiguous: tab complete "b cpls2.cc:'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b "cpls2.cc": "file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b "cpls2.cc": 'file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b "cpls2.cc": file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b "cpls2.cc":"file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b "cpls2.cc":'file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b "cpls2.cc":file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b 'cpls2.cc': "file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b 'cpls2.cc': 'file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b 'cpls2.cc': file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b 'cpls2.cc':"file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b 'cpls2.cc':'file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b 'cpls2.cc':file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source "cpls2.cc" -function "file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source "cpls2.cc" -function 'file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source "cpls2.cc" -function file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source 'cpls2.cc' -function "file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source 'cpls2.cc' -function 'file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source 'cpls2.cc' -function file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source cpls2.cc -function "file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source cpls2.cc -function 'file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b -source cpls2.cc -function file_constrained_test_cpls2_function"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b cpls2.cc: "file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b cpls2.cc: 'file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b cpls2.cc: file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b cpls2.cc:"file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b cpls2.cc:'file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: cmd complete "b cpls2.cc:file_constrained_test_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b "cpls2.cc": "file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b "cpls2.cc": 'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b "cpls2.cc": file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b "cpls2.cc":"file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b "cpls2.cc":'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b "cpls2.cc":file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b 'cpls2.cc': "file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b 'cpls2.cc': 'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b 'cpls2.cc': file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b 'cpls2.cc':"file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b 'cpls2.cc':'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b 'cpls2.cc':file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source "cpls2.cc" -function "file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source "cpls2.cc" -function 'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source "cpls2.cc" -function file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source 'cpls2.cc' -function "file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source 'cpls2.cc' -function 'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source 'cpls2.cc' -function file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source cpls2.cc -function "file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source cpls2.cc -function 'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b -source cpls2.cc -function file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b cpls2.cc: "file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b cpls2.cc: 'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b cpls2.cc: file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b cpls2.cc:"file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b cpls2.cc:'file_constrained_test_cpls2_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: compare "b cpls2.cc:file_constrained_test_cpls2_function
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b "cpls2.cc": "file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b "cpls2.cc": 'file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b "cpls2.cc": file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b "cpls2.cc":"file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b "cpls2.cc":'file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b "cpls2.cc":file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b 'cpls2.cc': "file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b 'cpls2.cc': 'file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b 'cpls2.cc': file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b 'cpls2.cc':"file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b 'cpls2.cc':'file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b 'cpls2.cc':file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source "cpls2.cc" -function "file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source "cpls2.cc" -function 'file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source "cpls2.cc" -function file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source 'cpls2.cc' -function "file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source 'cpls2.cc' -function 'file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source 'cpls2.cc' -function file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source cpls2.cc -function "file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source cpls2.cc -function 'file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b -source cpls2.cc -function file_constrained_test_cpls2_function"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b cpls2.cc: "file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b cpls2.cc: 'file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b cpls2.cc: file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b cpls2.cc:"file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b cpls2.cc:'file_constrained_test_"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unambiguous: tab complete "b cpls2.cc:file_constrained_test_"
new FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unconstrained: "b file_constrained_test_cpls" creates no bp locations: delete all breakpoints in delete_breakpoints
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unconstrained: "b file_constrained_test_cpls" creates no bp locations: matches
new FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unconstrained: "b file_constrained_test_cpls" creates no bp locations: set breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: in-source-file-unconstrained: cmd complete "b file_constrained_test"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: in-source-file-unconstrained: tab complete "b file_constrained_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function "struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function 'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -function struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":"struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "cpls.cc":struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b "struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':"struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'cpls.cc':struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b 'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b -source cpls.cc -function struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:"struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:'struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b cpls.cc:struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: cmd complete "b struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function "ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function "struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function 'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function 'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -function struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":"ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":"struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "cpls.cc":struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b "struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':"ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':"struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'cpls.cc':struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b 'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source "cpls.cc" -function struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function "ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function "struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function 'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function 'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b -source cpls.cc -function struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:"ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:"struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:'ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:'struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b cpls.cc:struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b ns_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: compare "b struct_incomplete_scope_colon_test::incomplete_scope_colon_test
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function "struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function 'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -function struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":"struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "cpls.cc":struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b "struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':"struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'cpls.cc':struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b 'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function "struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function 'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source "cpls.cc" -function struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function "struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function 'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source 'cpls.cc' -function struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function "struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function 'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b -source cpls.cc -function struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:"struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:'struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test::s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:ns_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b cpls.cc:struct_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test::s"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::i"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b ns_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b struct_incomplete_scope_colon_test"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b struct_incomplete_scope_colon_test:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b struct_incomplete_scope_colon_test::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: incomplete-scope-colon: tab complete "b struct_incomplete_scope_colon_test::i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc": "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc": 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc": unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc":"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc":'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "cpls.cc":unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc": "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc": 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc": unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc":"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc":'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_file.cc":unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc': "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc': 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc': unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc':"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc':'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'cpls.cc':unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc': "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc': 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc': unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc':"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc':'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_file.cc':unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "cpls.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "cpls.cc" -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "cpls.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "cpls.cc" -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "cpls.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "cpls.cc" -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "unknown_file.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "unknown_file.cc" -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "unknown_file.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "unknown_file.cc" -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "unknown_file.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source "unknown_file.cc" -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'cpls.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'cpls.cc' -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'cpls.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'cpls.cc' -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'cpls.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'cpls.cc' -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'unknown_file.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'unknown_file.cc' -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'unknown_file.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'unknown_file.cc' -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'unknown_file.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source 'unknown_file.cc' -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source cpls.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source cpls.cc -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source cpls.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source cpls.cc -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source cpls.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source cpls.cc -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source unknown_file.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source unknown_file.cc -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source unknown_file.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source unknown_file.cc -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source unknown_file.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b -source unknown_file.cc -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc: "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc: 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc: unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc:"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc:'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b cpls.cc:unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc: "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc: 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc: unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc:"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc:'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_file.cc:unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: cmd complete "b unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc": "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc": 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc": unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc":"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc":'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "cpls.cc":unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc": "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc": 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc": unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc":"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc":'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_file.cc":unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc': "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc': 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc': unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc':"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc':'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'cpls.cc':unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc': "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc': 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc': unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc':"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc':'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_file.cc':unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "cpls.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "cpls.cc" -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "cpls.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "cpls.cc" -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "cpls.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "cpls.cc" -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "unknown_file.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "unknown_file.cc" -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "unknown_file.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "unknown_file.cc" -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "unknown_file.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source "unknown_file.cc" -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'cpls.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'cpls.cc' -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'cpls.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'cpls.cc' -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'cpls.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'cpls.cc' -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'unknown_file.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'unknown_file.cc' -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'unknown_file.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'unknown_file.cc' -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'unknown_file.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source 'unknown_file.cc' -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source cpls.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source cpls.cc -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source cpls.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source cpls.cc -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source cpls.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source cpls.cc -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source unknown_file.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source unknown_file.cc -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source unknown_file.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source unknown_file.cc -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source unknown_file.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b -source unknown_file.cc -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc: "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc: 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc: unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc:"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc:'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b cpls.cc:unknown_function
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc: "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc: 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc: unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc:"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc:'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_file.cc:unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-function: tab complete "b unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc": "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc": 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc": unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc":"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc":'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "cpls.cc":unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc': "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc': 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc': unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc':"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc':'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'cpls.cc':unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source "cpls.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source "cpls.cc" -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source "cpls.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source "cpls.cc" -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source "cpls.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source "cpls.cc" -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source 'cpls.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source 'cpls.cc' -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source 'cpls.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source 'cpls.cc' -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source 'cpls.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source 'cpls.cc' -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source cpls.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source cpls.cc -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source cpls.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source cpls.cc -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source cpls.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b -source cpls.cc -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc: "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc: 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc: unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc:"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc:'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b cpls.cc:unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: cmd complete "b unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc": "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc": "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc": 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc": 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc": function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc": unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc":"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc":"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc":'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc":'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc":function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "cpls.cc":unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc': "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc': "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc': 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc': 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc': function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc': unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc':"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc':"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc':'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc':'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc':function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'cpls.cc':unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source "cpls.cc" -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source "cpls.cc" -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source "cpls.cc" -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source "cpls.cc" -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source "cpls.cc" -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source "cpls.cc" -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source 'cpls.cc' -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source 'cpls.cc' -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source 'cpls.cc' -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source 'cpls.cc' -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source 'cpls.cc' -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source 'cpls.cc' -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source cpls.cc -function "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source cpls.cc -function "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source cpls.cc -function 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source cpls.cc -function 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source cpls.cc -function function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b -source cpls.cc -function unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc: "function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc: "unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc: 'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc: 'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc: function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc: unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc:"function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc:"unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc:'function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc:'unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc:function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b cpls.cc:unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b function_with_labels
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-label: tab complete "b unknown_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-unknown-file: cmd complete "b "unknown_file.cc": "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-unknown-file: cmd complete "b 'unknown_file.cc': "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-unknown-file: cmd complete "b unknown_file.cc: "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-unknown-file: tab complete "b "unknown_file.cc": "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-unknown-file: tab complete "b 'unknown_file.cc': "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: keywords-after-unknown-file: tab complete "b unknown_file.cc: "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: no-data-symbols: cmd complete "b -function code_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: no-data-symbols: cmd complete "b code_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: no-data-symbols: tab complete "b -function code_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: no-data-symbols: tab complete "b code_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b -function opera"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b -function operat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b -function operato"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b -function operator"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b -function operator<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b -function operator<
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b opera"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b operat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b operato"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b operator"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b operator<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: cmd complete "b operator<
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: compare "b -function operator<
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: compare "b operator<
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b -function opera"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b -function operat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b -function operato"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b -function operator"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b -function operator<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b -function operator<
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: operator<: tab complete "b opera"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b operat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b operato"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b operator"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b operator<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: operator<: tab complete "b operator<
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: cmd complete "b -function overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: cmd complete "b overload2_func"
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b -function overload2_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b -function overload2_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b -function overload2_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b -function overload2_function" completion list with bp location list: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b overload2_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b overload2_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b overload2_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: all: compare "b overload2_function" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: all: tab complete "b -function overload2_func"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: all: tab complete "b overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope 2: cmd complete "b
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope 2: cmd complete "b -function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope 2: compare "b
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope 2: compare "b -function
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: restrict scope 2: tab complete "b
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: restrict scope 2: tab complete "b -function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: cmd complete "b -function ns_overload2_test::overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: cmd complete "b ns_overload2_test::overload2_func"
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b -function ns_overload2_test::overload2_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b -function ns_overload2_test::overload2_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b -function ns_overload2_test::overload2_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b -function ns_overload2_test::overload2_function" completion list with bp location list: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b ns_overload2_test::overload2_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b ns_overload2_test::overload2_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b ns_overload2_test::overload2_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: compare "b ns_overload2_test::overload2_function" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: tab complete "b -function ns_overload2_test::overload2_func"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: restrict scope: tab complete "b ns_overload2_test::overload2_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: unique completion: "b -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: unique completion: "b ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: unique completion: cmd complete "b -function ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-2: unique completion: cmd complete "b ns_overload2_test::
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: unique completion: compare "b -function ns_overload2_test::
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: unique completion: compare "b ns_overload2_test::
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: unique completion: tab complete "b -function ns_overload2_test::
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-2: unique completion: tab complete "b ns_overload2_test::
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: cmd complete "b -function overload3_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: cmd complete "b overload3_func"
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b -function overload3_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b -function overload3_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b -function overload3_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b -function overload3_function" completion list with bp location list: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b overload3_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b overload3_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b overload3_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: all overloads: compare "b overload3_function" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-3: all overloads: tab complete "b -function overload3_func"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-3: all overloads: tab complete "b overload3_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict overload: cmd complete "b -function overload3_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict overload: cmd complete "b overload3_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict overload: compare "b -function overload3_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict overload: compare "b overload3_function
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-3: restrict overload: tab complete "b -function overload3_function
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-3: restrict overload: tab complete "b overload3_function
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: cmd complete "b -function struct_overload3_test::overload3_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: cmd complete "b struct_overload3_test::overload3_func"
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b -function struct_overload3_test::overload3_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b -function struct_overload3_test::overload3_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b -function struct_overload3_test::overload3_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b -function struct_overload3_test::overload3_function" completion list with bp location list: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b struct_overload3_test::overload3_function" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b struct_overload3_test::overload3_function" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b struct_overload3_test::overload3_function" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: compare "b struct_overload3_test::overload3_function" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: tab complete "b -function struct_overload3_test::overload3_func"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload-3: restrict scope: tab complete "b struct_overload3_test::overload3_func"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: cmd complete "b -function overload_ambiguous_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: cmd complete "b -function overload_ambiguous_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: cmd complete "b overload_ambiguous_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: cmd complete "b overload_ambiguous_test
new FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b -function overload_ambiguous_test" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b -function overload_ambiguous_test" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b -function overload_ambiguous_test" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b -function overload_ambiguous_test" completion list with bp location list: set breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b -function overload_ambiguous_test
new FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b overload_ambiguous_test" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b overload_ambiguous_test" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b overload_ambiguous_test" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b overload_ambiguous_test" completion list with bp location list: set breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: compare "b overload_ambiguous_test
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: overload: tab complete "b -function overload_ambiguous_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: tab complete "b -function overload_ambiguous_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: tab complete "b overload_ambiguous_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: overload: tab complete "b overload_ambiguous_test
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "cpls-"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "cpls-hyphen"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "cpls2."
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "cpls2.c"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "cpls2.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "nonexistingfilename.cc "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "nonexistingfilename.cc" "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "nonexistingfilename.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b "nonexistingfilename.cc""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'cpls-"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'cpls-hyphen"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'cpls2."
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'cpls2.c"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'cpls2.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'nonexistingfilename.cc "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'nonexistingfilename.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'nonexistingfilename.cc' "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b 'nonexistingfilename.cc'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b cpls-"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b cpls-hyphen"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b cpls2."
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b cpls2.c"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b cpls2.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b nonexistingfilename.cc "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: cmd complete "b nonexistingfilename.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "cpls-"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "cpls-hyphen"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "cpls2."
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "cpls2.c"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "cpls2.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "nonexistingfilename.cc "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "nonexistingfilename.cc" "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "nonexistingfilename.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b "nonexistingfilename.cc""
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'cpls-"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'cpls-hyphen"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'cpls2."
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'cpls2.c"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'cpls2.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'nonexistingfilename.cc "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'nonexistingfilename.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'nonexistingfilename.cc' "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b 'nonexistingfilename.cc'"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b cpls-"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b cpls-hyphen"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b cpls2."
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b cpls2.c"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b cpls2.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b nonexistingfilename.cc "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: source-complete-appends-colon: tab complete "b nonexistingfilename.cc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-overload: cmd complete "b -function template_overload_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-overload: cmd complete "b template_overload_fn"
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_overload_fn" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_overload_fn" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_overload_fn" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_overload_fn" completion list with bp location list: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_struct<int>::template_overload_fn" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_struct<int>::template_overload_fn" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_struct<int>::template_overload_fn" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-overload: compare "b -function template_struct<int>::template_overload_fn" completion list with bp location list: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_overload_fn" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_overload_fn" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_overload_fn" completion list with bp location list: matches
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_overload_fn" completion list with bp location list: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_struct<int>::template_overload_fn" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_struct<int>::template_overload_fn" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_struct<int>::template_overload_fn" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-overload: compare "b template_struct<int>::template_overload_fn" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-overload: tab complete "b -function template_overload_fn"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-overload: tab complete "b template_overload_fn"
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: "b -function template2_fn" creates no bp locations: delete all breakpoints in delete_breakpoints
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: "b -function template2_fn" creates no bp locations: matches
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: "b -function template2_fn" creates no bp locations: set breakpoint
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: "b template2_fn" creates no bp locations: delete all breakpoints in delete_breakpoints
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: "b template2_fn" creates no bp locations: matches
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: "b template2_fn" creates no bp locations: set breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b -function template2_struct<template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int> template2_struct<template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: cmd complete "b template2_struct<template2_ret_type<int>"
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_fn<int, int>" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_fn<int, int>" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_fn<int, int>" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_fn<int, int>" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_fn<int, int>
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_fn<int, int>" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_fn<int, int>" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_fn<int, int>" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_fn<int, int>" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_fn<int, int>
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: delete all breakpoints in delete_breakpoints
new FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: info breakpoint
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: matches
new UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>" completion list with bp location list: set breakpoint
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: compare "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int> template2_struct<template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b -function template2_struct<template2_ret_type<int>"
PASS -> UNRESOLVED: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_s"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int> template2_struct<template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_ret_type<int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_st"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_str"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_stru"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struc"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_r"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_re"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_ty"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_typ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >:"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::t"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::te"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::tem"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::temp"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::templ"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::templa"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::templat"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_f"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, "
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, i"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, in"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, int"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int, int>
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int> >::template2_fn<int,"
PASS -> FAIL: gdb.linespec/cpcompletion.exp: template-ret-type: tab complete "b template2_struct<template2_ret_type<int>"
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:
<https://git.sergiodj.net/gdb-xfails.git/tree/xfails/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=7619e10a>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=7619e10a>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Make "frame apply" support -OPT options
@ 2019-06-13 3:56 sergiodj+buildbot
2019-06-15 12:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 3:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5d7071341dd3c01d38fc01398ef8b23b1bd3783c ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 5d7071341dd3c01d38fc01398ef8b23b1bd3783c
Make "frame apply" support -OPT options
This adds support for '-'-style options to the "frame apply" family of
commands -- "frame apply COUNT", "frame apply level", "frame apply
all", "faas" and "tfaas".
The -q/-c/-s flags were already supported, -past-main/-past-entry is
new:
~~~
(gdb) help frame apply all
Apply a command to all frames.
Usage: frame apply all [OPTION]... COMMAND
Prints the frame location information followed by COMMAND output.
By default, an error raised during the execution of COMMAND
aborts "frame apply".
Options:
-q
Disables printing the frame location information.
-c
Print any error raised by COMMAND and continue.
-s
Silently ignore any errors or empty output produced by COMMAND.
-past-main [on|off]
Set whether backtraces should continue past "main".
Normally the caller of "main" is not of interest, so GDB will terminate
the backtrace at "main". Set this if you need to see the rest
of the stack trace.
-past-entry [on|off]
Set whether backtraces should continue past the entry point of a program.
Normally there are no callers beyond the entry point of a program, so GDB
will terminate the backtrace there. Set this if you need to see
the rest of the stack trace.
~~~
TAB completion of options is now supported. Also, TAB completion of
COMMAND in "frame apply all COMMAND" does the right thing now, making
use of complete_command, added by the previous patch. E.g.:
(gdb) thread apply all -ascending frame apply all -past-main print -[TAB]
-address -elements -pretty -symbol
-array -null-stop -repeats -union
-array-indexes -object -static-members -vtbl
(gdb) thread apply all -ascending frame apply all -past-main print glo[TAB]
global1 global2
The change to tfaas_command is necessary because otherwise you get
this:
(gdb) tfaas --
Unrecognized option at: frame apply all -s --
That's because the above is equivalent to:
(gdb) thread apply all -s frame apply all -s --
and the "--" instructs "thread apply" to consider everything up to
"--" as its command options. And from that view, "frame" is an
invalid option.
The change makes tfaas be equivalent to:
(gdb) thread apply all -s -- frame apply all -s --
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* cli/cli-utils.c (parse_flags_qcs): Use validate_flags_qcs.
(validate_flags_qcs): New.
* cli/cli-utils.h (struct qcs_flags): Change field types to int.
(validate_flags_qcs): Declare.
* stack.c (qcs_flag_option_def, fr_qcs_flags_option_defs): New.
(make_frame_apply_options_def_group): New.
(frame_apply_command_count): Process options with
gdb::option::process_options.
(frame_apply_completer): New.
(frame_apply_level_completer, frame_apply_all_completer)
(frame_apply_completer): New.
(_initialize_stack): Update help of "frame apply", "frame apply
level", "frame apply all" and "faas" to mention supported options
and install command completers.
* stack.h (frame_apply_all_completer): Declare.
* thread.c: Include "stack.h".
(tfaas_command): Add "--".
(_initialize_thread): Update help "tfaas" to mention supported
options and install command completer.
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.base/options.exp (test-frame-apply): New.
(top level): Test print commands with different "frame apply"
prefixes.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Make "thread apply" use the gdb::option framework
@ 2019-06-13 4:21 sergiodj+buildbot
2019-06-15 15:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-13 4:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6665660a411ead049daa85cac5c629d637e22044 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 6665660a411ead049daa85cac5c629d637e22044
Make "thread apply" use the gdb::option framework
Similarly to the "frame apply" patch, this makes the "thread apply"
family of commands -- "thread apply TID", "thread apply all" and
"taas" use the gdb::option framework for '-'-style options.
No new options are added, but there are some user-visible changes:
- Can now abbreviate and complete "-ascending"
- We now have a completer for "thread apply" commands
Can now complete options ("thread apply all -[TAB]"), and also,
'thread apply all COMMAND[TAB]' now does what you'd expect, by
making use of the new complete_command routine.
- "help" output tweaked with auto-generated option descriptions:
~~~
Usage: thread apply all [OPTION]... COMMAND
Prints per-inferior thread number and target system's thread id
followed by COMMAND output.
By default, an error raised during the execution of COMMAND
aborts "thread apply".
Options:
-ascending
Call COMMAND for all threads in ascending order.
The default is descending order.
-q
Disables printing the thread information.
-c
Print any error raised by COMMAND and continue.
-s
Silently ignore any errors or empty output produced by COMMAND.
~~~
The "By default ..." sentence is new as well.
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* thread.c: Include "cli/cli-option.h".
(tp_array_compar_ascending): Global.
(tp_array_compar): Delete function.
(tp_array_compar_ascending, tp_array_compar_descending): New
functions.
(ascending_option_def, qcs_flag_option_def)
(thr_qcs_flags_option_defs)
(make_thread_apply_all_options_def_group)
(make_thread_apply_options_def_group): New.
(thread_apply_all_command): Use gdb::option::process_options.
(thread_apply_command_completer)
(thread_apply_all_command_completer): New.
(thread_apply_command): Use gdb::option::process_options.
(_initialize_thread): Delete THREAD_APPLY_FLAGS_HELP, replace it
with a new THREAD_APPLY_OPTION_HELP. Use gdb::option::build_help
to generate help text of "thread apply". Adjust "taas"'s help.
* tid-parse.c (tid_range_parser::in_thread_range): New method.
* tid-parse.h (tid_range_parser::in_thread_range): New method.
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.base/options.exp (test-thread-apply): New.
(top level): Call it.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix gdb build with -std=gnu++11
@ 2019-06-13 10:19 sergiodj+buildbot
2019-06-15 17:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] sim/common: wire up new unordered comparisons
@ 2019-06-13 14:32 sergiodj+buildbot
2019-06-15 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] sim/testsuite/or1k: Add tests for unordered compares
@ 2019-06-13 15:25 sergiodj+buildbot
2019-06-15 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Regenerate with approved autotools version
@ 2019-06-14 6:59 sergiodj+buildbot
2019-06-15 21:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] sim/testsuite/or1k: Add test for 64-bit fpu operations
@ 2019-06-14 7:17 sergiodj+buildbot
2019-06-15 20:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 7:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b4f9e0034660e15d233627f9c5a732ab023b7daf ***
Author: Stafford Horne <shorne@gmail.com>
Branch: master
Commit: b4f9e0034660e15d233627f9c5a732ab023b7daf
sim/testsuite/or1k: Add test for 64-bit fpu operations
This is a very basic test but it ensure the machine is wired up
correctly and that the assembler works.
sim/testsuite/sim/or1k/ChangeLog:
yyyy-mm-dd Stafford Horne <shorne@gmail.com>
* fpu64a32.S: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix "set integer-command unlimited junk"
@ 2019-06-14 9:52 sergiodj+buildbot
2019-06-15 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 9:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4c04873103043dc9a1c8d6cdeea1b9b1f545f375 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 4c04873103043dc9a1c8d6cdeea1b9b1f545f375
Fix "set integer-command unlimited junk"
With integer commands that support "unlimited", we currently fail to
notice junk after "unlimited":
(gdb) show print elements
Limit on string chars or array elements to print is 200.
(gdb) set print elements unlimited foo
(gdb) show print elements
Limit on string chars or array elements to print is unlimited.
This commit fixes that. After, we get:
(gdb) set print elements unlimited foo
Junk after "unlimited": foo
gdb/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* cli/cli-setshow.c (cli/cli-setshow.c): New parameter
'expression'. When parsing an expression, error out if there's
junk after "unlimited".
(parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited)
(do_set_command): Adjust calls to is_unlimited_literal.
gdb/testsuite/ChangeLog:
2019-06-13 Pedro Alves <palves@redhat.com>
* gdb.base/settings.exp (test-integer): Test junk after
"unlimited".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PowerPC comment fixes
@ 2019-06-14 13:09 sergiodj+buildbot
2019-06-15 21:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 13:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d4b87b1eb6439e1cd01d1a9f90dcf19428db4b17 ***
Author: Alan Modra <amodra@gmail.com>
Branch: master
Commit: d4b87b1eb6439e1cd01d1a9f90dcf19428db4b17
PowerPC comment fixes
"paddi rt,sym@pcrel" as an abbreviation for "paddi rt,0,sym@pcrel,1"
is invalid, so replace with "pla rt,sym@pcrel" which is a valid form
of "pla rt,sym@pcrel(0),1".
* elf64-ppc.c: Fix comments involving paddi.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs
@ 2019-06-14 14:49 sergiodj+buildbot
2019-06-15 21:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix gdb.ada/vla.exp
@ 2019-06-14 14:49 sergiodj+buildbot
2019-06-15 21:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Recognize _ in attribute names
@ 2019-06-14 15:48 sergiodj+buildbot
2019-06-16 0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Use scoped_restore_terminal_state in annotate.c
@ 2019-06-14 16:19 sergiodj+buildbot
2019-06-16 2:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Allow re-assigning to convenience variables
@ 2019-06-14 19:25 sergiodj+buildbot
2019-06-16 1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-14 19:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f411722cbc18820e5266ec4c2aadd2269eb15447 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: f411722cbc18820e5266ec4c2aadd2269eb15447
Allow re-assigning to convenience variables
In Ada mode, re-assigning an array of a different size to a
convenience variable will cause an error:
(gdb) set lang ada
(gdb) set $v := "abc"
(gdb) set $v := "abcd"
cannot assign arrays of different length
However, this does not really make sense -- instead, it should always
be possible to overwrite a convenience variable.
This patch fixes this bug.
This was reviewed off-list by Joel. I'm checking it in.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_evaluate_subexp) <case BINOP_ASSIGN>: Always
allow assignment to an internalvar.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* gdb.ada/set_wstr.exp: Add reassignment test.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Warn if add-symbol-file does not provide any symbols
@ 2019-06-14 22:55 sergiodj+buildbot
2019-06-16 8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Minor NEWS rearrangement
@ 2019-06-14 23:38 sergiodj+buildbot
2019-06-16 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Remove file path from test name
@ 2019-06-15 22:01 sergiodj+buildbot
2019-06-16 14:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-16 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Remove unused parameter
@ 2019-06-15 23:31 sergiodj+buildbot
2019-06-16 14:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-15 23:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT afda45a206f83389782a400f86668714400a1cb7 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: afda45a206f83389782a400f86668714400a1cb7
gdb: Remove unused parameter
The parameter 'fullname' is always passed as NULL to the function
get_filename_and_charpos in source.c, so lets remove the parameter.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* source.c (get_filename_and_charpos): Remove fullname
parameter.
(identify_source_line): Update call to get_filename_and_charpos.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/mi: New commands to catch C++ exceptions
@ 2019-06-16 0:13 sergiodj+buildbot
2019-06-16 15:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Don't allow annotations to influence what else GDB prints
@ 2019-06-16 2:06 sergiodj+buildbot
2019-06-16 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 2:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ec8e2b6d3051f0b4b2a8eee9917898e95046c62f ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: ec8e2b6d3051f0b4b2a8eee9917898e95046c62f
gdb: Don't allow annotations to influence what else GDB prints
The annotations should be additional information printed by GDB to be
consumed by users (GUIs), but GDB shouldn't reduce what it prints
based on whether annotations are on or not. However, this is what
happens for annotate_source_line.
This commit makes annotate_source_line a void function that simply
outputs the annotation information, GDB will then print the contents
of the source line to the terminal in the normal way.
Some tests needed to be updated after this commit.
gdb/ChangeLog:
* annotate.c (annotate_source_line): Change return type to void,
update implementation to match.
* annotate.h (annotate_source_line): Change return type to void,
update header comment.
* stack.c (print_frame_info): Don't change what frame information
is printed based on whether annotations are on or not.
gdb/testsuite/ChangeLog:
* gdb.base/annota1.exp: Update expected results.
* gdb.cp/annota2.exp: Likewise.
* gdb.cp/annota3.exp: Likewise.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove some NULL checks from the TUI
@ 2019-06-16 16:53 sergiodj+buildbot
2019-06-16 20:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Write index for dwz -m file
@ 2019-06-16 20:58 sergiodj+buildbot
2019-06-17 4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-16 20:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c4973306879b6079bdfc997474a2cbbd89f49bd2 ***
Author: Simon Marchi <simon.marchi@polymtl.ca>
Branch: master
Commit: c4973306879b6079bdfc997474a2cbbd89f49bd2
Write index for dwz -m file
PR 24445 ("dwz multifile index not written to index cache") exposed the
fact that we are not doing things right when we generate an index for an
object file that has is linked to a dwz file. The same happens whether
the index is generated with the intent of populating the index cache or
using the save gdb-index command.
The problem can be observed when running these tests with the
cc-with-dwz-m board:
FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats
FAIL: gdb.dwarf2/gdb-index.exp: index used
FAIL: gdb.dwarf2/gdb-index.exp: index used after symbol reloading
When generating the index for such file and inspecting the CU list of the
resulting index (with readelf --debug-dump=gdb_index), we can see something
like:
CU table:
[ 0] 0x0 - 0xb9
[ 1] 0x0 - 0x44
This is supposed to be a sorted list of the ranges of all CUs in the
file this index represents, so already having some overlap is a red
flag. It turns out that we save the ranges of CUs coming from both the
main file and the dwz file in the same index.
After digging a little bit, it became quite obvious that the index in
the main file should only list the CUs present in the main file, and a
separate index should be generated for the dwz file, listing the CUs
present in that file.
First, that's what happens if you run dwz on a file that already has a
GDB index embedded. Second, dwarf2read.c has code to read an index from
a dwz file. The index in the dwz file is actually required to be
present, if the main file has an index.
So this patch changes write_psymtabs_to_index to generate an index for
the dwz file, if present. That index only contains a CU list, just like
what the dwz tool does when processing a file that already contains an
index.
Some notes about the implementation:
- The file management (creating a temp file, make sure it's
close/removed on error - in the right order) is a bit heavy in
write_psymtabs_to_index, and I needed to add a third file. I factored
this pattern in a separate class, index_wip_file.
- It became a bit tedious to keep the call to assert_file_size in
write_psymtabs_to_index, write_gdbindex would have had to return two
sizes. Instead, I moved the calls to assert_file_size where the file
is written. The downside is that we lose the filename at this point,
but it was only used for the very improbable case of ftell failing, so
I think it's not a problem.
- The actual writing of the index file is factored out to
write_gdbindex_1, so it can be re-used for both index files.
- While the "save gdb-index" command will now write two .gdb-index
files, this patch does not update the gdb-add-index.sh script, this
will come in a later patch.
gdb/ChangeLog:
YYYY-MM-DD Simon Marchi <simon.marchi@efficios.com>
PR gdb/24445
* dwarf-index-write.h (write_psymtabs_to_index): Add
dwz_basename parameter.
* dwarf-index-write.c (write_gdbindex): Move file writing to
write_gdbindex_1. Change return type void.
(assert_file_size): Move up, remove filename parameter.
(write_gdbindex_1): New function.
(write_debug_names): Change return type to void, call
assert_file_size.
(struct index_wip_file): New struct.
(write_psymtabs_to_index): Add dwz_basename parameter. Move
file logic to index_wip_file. Write index for dwz file if
needed.
(save_gdb_index_command): Pass basename of dwz file, if present.
* dwarf-index-cache.c (index_cache::store): Obtain and pass
build-id of dwz file, if present.
* dwarf2read.c (struct dwz_file): Move to dwarf2read.h.
(dwarf2_get_dwz_file): Likewise.
* dwarf2read.h (struct dwz_file): Move from dwarf2read.c.
(dwarf2_get_dwz_file): Likewise.
gdb/testsuite/ChangeLog:
YYYY-MM-DD Tom de Vries <tdevries@suse.de>
PR gdb/24445
* gdb.dwarf2/gdb-index.exp (add_gdb_index): Update dwz file with
generated index.
^ permalink raw reply [flat|nested] 4390+ 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-17 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] aarch64: remove unnecessary loc_hash_table traversal
@ 2019-06-17 18:56 sergiodj+buildbot
2019-06-17 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX
@ 2019-06-17 19:36 sergiodj+buildbot
2019-06-17 20:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR gdb/24364: Don't call dtrace_process_dof with NULL dof.
@ 2019-06-18 2:06 sergiodj+buildbot
2019-06-18 7:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 2:06 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT ba9777bef059df0926ad5dd6813d5785cb652ccf ***
Author: Paul Pluzhnikov <ppluzhnikov@google.com>
Branch: master
Commit: ba9777bef059df0926ad5dd6813d5785cb652ccf
PR gdb/24364: Don't call dtrace_process_dof with NULL dof.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb] Fix heap-buffer-overflow in child_path
@ 2019-06-18 7:53 sergiodj+buildbot
2019-06-18 16:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Break up long debug_flags line in fission.exp
@ 2019-06-18 16:46 sergiodj+buildbot
2019-06-18 17:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 16:46 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 86e04673b48d5f8121f28b7958cc5a0d9dd01132 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 86e04673b48d5f8121f28b7958cc5a0d9dd01132
[gdb/testsuite] Break up long debug_flags line in fission.exp
gdb/testsuite/ChangeLog:
2019-06-18 Tom de Vries <tdevries@suse.de>
* boards/fission.exp: Break up long debug_flags line.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add comment to list0.h
@ 2019-06-18 17:21 sergiodj+buildbot
2019-06-18 18:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Use -fuse-ld=gold in fission.exp
@ 2019-06-18 18:53 sergiodj+buildbot
2019-06-19 4:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-18 18:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0ed4690a67e2c4703d9088312de652d0d5f1aaaf ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: 0ed4690a67e2c4703d9088312de652d0d5f1aaaf
[gdb/testsuite] Use -fuse-ld=gold in fission.exp
The target board fission.exp requires the gold linker (because it supports
--gdb-index).
When running the target board on a system where the default linker is not
gold, most tests will fail to compile.
Fix this by adding "-fuse-ld=gold" ( supported in gcc since version 4.8).
gdb/testsuite/ChangeLog:
2019-06-18 Tom de Vries <tdevries@suse.de>
* boards/fission.exp (debug_flags): Add "-fuse-ld=gold".
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Remove use of deprecated_interactive_hook
@ 2019-06-19 5:18 sergiodj+buildbot
2019-06-19 8:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 5:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 494986d596a977e1d24f9f068696f5b3e993ebf7 ***
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Branch: master
Commit: 494986d596a977e1d24f9f068696f5b3e993ebf7
gdb: Remove use of deprecated_interactive_hook
The deprecated_interactive_hook is not used within GDB. It is used in
gdbtk, however this patch removes that use:
https://sourceware.org/ml/insight/2019-q2/msg00001.html
So I think there is no longer a reason to keep this hook around.
This patch removes it. There should be no user visible changes after
this commit.
gdb/ChangeLog:
* defs.h (deprecated_interactive_hook): Delete declaration.
* interps.c (clear_interpreter_hooks): Remove use of
deprecated_interactive_hook.
* top.c (deprecated_interactive_hook): Delete definition.
* utils.c (maybe_quit): Remove use of deprecated_interactive_hook.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Instantiate a single source highlighter
@ 2019-06-19 12:58 sergiodj+buildbot
2019-06-19 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 12:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dcf3792354ddcd6e10e59e32060e34b27246e7da ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: dcf3792354ddcd6e10e59e32060e34b27246e7da
Instantiate a single source highlighter
It occurred to me that there's no reason to make a new source
highlighter each time gdb needs to highlight some source code.
Instead, a single one can be created and then simply reused each time.
This patch implements this idea. Tested on x86-64 Fedora 29.
gdb/ChangeLog
2019-06-19 Tom Tromey <tromey@adacore.com>
* source-cache.c (highlighter): New global.
(source_cache::get_source_lines): Create a highlighter on demand.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix crash when setting breakpoint condition
@ 2019-06-19 14:38 sergiodj+buildbot
2019-06-19 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 14:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 680e1beed31da40080f61a35f6ccd626de818056 ***
Author: Tom Tromey <tromey@adacore.com>
Branch: master
Commit: 680e1beed31da40080f61a35f6ccd626de818056
Fix crash when setting breakpoint condition
gdb could crash when setting a breakpoint condition on a breakpoint
when using the Ada language. The problem occurred because the
ada_evaluate_subexp would try to evaluate the array to compute its
attributes, but evaluating can't really be done at this time.
This patch fixes the problem by arranging not to try to evaluate in
EVAL_AVOID_SIDE_EFFECTS mode when computing an attribute.
Tested on x86-64 Fedora 29. Because this is Ada-specific, and because
Joel approved it internally, I am checking it in.
gdb/ChangeLog
2019-06-19 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_evaluate_subexp) <case OP_ATR_FIRST>: Handle
EVAL_AVOID_SIDE_EFFECTS specially.
gdb/testsuite/ChangeLog
2019-06-19 Tom Tromey <tromey@adacore.com>
* gdb.ada/length_cond.exp: New file.
* gdb.ada/length_cond/length_cond.adb: New file.
* gdb.ada/length_cond/pck.adb: New file.
* gdb.ada/length_cond/pck.ads: New file.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb] Fix build breaker with gcc 4.8
@ 2019-06-19 17:31 sergiodj+buildbot
2019-06-20 5:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-19 17:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f23f598e28ad39dac7ae87cdc400d2f6b27dc403 ***
Author: Tom de Vries <tdevries@suse.de>
Branch: master
Commit: f23f598e28ad39dac7ae87cdc400d2f6b27dc403
[gdb] Fix build breaker with gcc 4.8
When compiling with gcc 4.8, we run into:
...
/usr/include/c++/4.8/bits/unordered_map.h:100:18: required from \
class std::unordered_map<sect_offset, std::vector<sect_offset> >
src/gdb/dwarf2read.h:260:5: required from here
/usr/include/c++/4.8/bits/hashtable_policy.h:1070:12: error: invalid use of \
incomplete type struct std::hash<sect_offset>
...
Fix this by setting the Hash template parameter of the unordered_map to
gdb::hash_enum<sect_offset>, rather than using the default
std::hash<sect_offset>.
Build and reg-tested on x86_64-linux with gcc 4.8.
gdb/ChangeLog:
2019-06-19 Tom de Vries <tdevries@suse.de>
* dwarf2read.h (abstract_to_concrete): Change type to
std::unordered_map<sect_offset, std::vector<sect_offset>,
gdb::hash_enum<sect_offset>>.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-06-19 17:31 [binutils-gdb] [gdb] Fix build breaker with gcc 4.8 sergiodj+buildbot
@ 2019-06-20 5:03 ` sergiodj+buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2019-06-20 5:03 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/8422>
Commit(s) tested:
f23f598e28ad39dac7ae87cdc400d2f6b27dc403
Author(s) (in the same order as the commits):
Tom de Vries <tdevries@suse.de>
Subject:
[gdb] Fix build breaker with gcc 4.8
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/f2/f23f598e28ad39dac7ae87cdc400d2f6b27dc403/>
*** Diff to previous build ***
============================
PASS -> FAIL: gdb.base/options.exp: test-backtrace: cmd complete "backtrace
PASS -> FAIL: gdb.base/options.exp: test-backtrace: cmd complete "backtrace -xxx"
PASS -> FAIL: gdb.base/options.exp: test-backtrace: cmd complete "backtrace 1 + xxx"
PASS -> FAIL: gdb.base/options.exp: test-backtrace: tab complete "backtrace
PASS -> FAIL: gdb.base/options.exp: test-backtrace: tab complete "backtrace -xxx"
PASS -> FAIL: gdb.base/options.exp: test-backtrace: tab complete "backtrace 1 + xxx"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "faas "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "faas -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "faas -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "faas -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "faas -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply 1 "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply 1 -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply 1 -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply 1 -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply 1 -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply all "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply all -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply all -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply all -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply all -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply all"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply level 0 "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply level 0 -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply level 0 -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply level 0 -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply level 0 -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "frame apply level 0-"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "tfaas "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "tfaas -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "tfaas -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "tfaas -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: cmd complete "tfaas -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: faas -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: faas -- -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: faas -foo
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply 1 -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply 1 -- -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply 1 -foo
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply all -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply all -- -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply all -foo
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply level 0 -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply level 0 -- -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply level 0 -foo
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: frame apply level 0-
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: cmd complete "faas --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: cmd complete "frame apply 1 --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: cmd complete "frame apply all --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: cmd complete "frame apply level 0 --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: cmd complete "tfaas --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: faas --
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: frame apply 1 --
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: frame apply all --
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: frame apply level 0 --
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: tab complete "faas --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: tab complete "frame apply 1 --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: tab complete "frame apply all --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: tab complete "frame apply level 0 --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: tab complete "tfaas --"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: no-trailing-space: tfaas --
new FAIL: gdb.base/options.exp: test-frame-apply: set max-completions 0
new FAIL: gdb.base/options.exp: test-frame-apply: set max-completions 2
new FAIL: gdb.base/options.exp: test-frame-apply: show max-completions
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "faas "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "faas -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "faas -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "faas -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "faas -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply 1 "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply 1 -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply 1 -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply 1 -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply 1 -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply all "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply all -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply all -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply all -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply all -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply all"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply level 0 "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply level 0 -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply level 0 -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply level 0 -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply level 0 -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "frame apply level 0-"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "tfaas "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "tfaas -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "tfaas -- -"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "tfaas -foo"
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tab complete "tfaas -s "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tfaas -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tfaas -- -
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: tfaas -foo
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: cmd complete "faas -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: cmd complete "frame apply 1 -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: cmd complete "frame apply all -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: cmd complete "frame apply level 0 -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: cmd complete "tfaas -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: faas --
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: frame apply 1 --
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: frame apply all --
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: frame apply level 0 --
new FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: set max-completions 0
new FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: set max-completions 2
new FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: show max-completions
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: tab complete "faas -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: tab complete "frame apply 1 -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: tab complete "frame apply all -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: tab complete "frame apply level 0 -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: tab complete "tfaas -- "
PASS -> FAIL: gdb.base/options.exp: test-frame-apply: trailing-space: tfaas --
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "frame apply level 1-"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "taas "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "taas -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "taas -- -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "taas -c "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "taas -foo"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "taas"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply 1 "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply 1 -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply 1 -- -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply 1 -c "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply 1 -foo"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply all "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply all -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply all -- -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply all -c "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply all -foo"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: cmd complete "thread apply all"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: cmd complete "taas --"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: cmd complete "thread apply 1 --"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: cmd complete "thread apply all --"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: taas --
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: tab complete "taas --"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: tab complete "thread apply 1 --"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: tab complete "thread apply all --"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: thread apply 1 --
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: no-trailing-space: thread apply all --
new FAIL: gdb.base/options.exp: test-thread-apply: set max-completions 0
new FAIL: gdb.base/options.exp: test-thread-apply: set max-completions 2
new FAIL: gdb.base/options.exp: test-thread-apply: show max-completions
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: taas -
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: taas -- -
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: taas -foo
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "frame apply level 1-"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "taas "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "taas -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "taas -- -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "taas -c "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "taas -foo"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "taas"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply 1 "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply 1 -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply 1 -- -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply 1 -c "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply 1 -foo"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply all "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply all -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply all -- -"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply all -c "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply all -foo"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: tab complete "thread apply all"
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: thread apply 1 -
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: thread apply 1 -- -
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: thread apply 1 -foo
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: thread apply 1-
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: thread apply all -
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: thread apply all -- -
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: thread apply all -foo
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: cmd complete "taas -- "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: cmd complete "thread apply 1 -- "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: cmd complete "thread apply all -- "
new FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: set max-completions 0
new FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: set max-completions 2
new FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: show max-completions
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: taas --
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: tab complete "taas -- "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: tab complete "thread apply 1 -- "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: tab complete "thread apply all -- "
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: thread apply 1 --
PASS -> FAIL: gdb.base/options.exp: test-thread-apply: trailing-space: thread apply all --
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail?id=6e1b9537>
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/Debian-s390x-native-gdbserver-m64/xfails/master/xfail.table?id=6e1b9537>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] i386: Check vector length for EVEX broadcast instructions
@ 2019-06-20 5:24 sergiodj+buildbot
2019-06-20 9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Don't declare tui_init_content_element
@ 2019-06-20 9:51 sergiodj+buildbot
2019-06-20 10:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdbserver] Fix s390x -m31 gdbserver build
@ 2019-06-21 7:56 sergiodj+buildbot
2019-06-21 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24689, string table corruption
@ 2019-06-21 12:52 sergiodj+buildbot
2019-06-21 13:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] libctf: dump header offsets into the debugging output
@ 2019-06-21 14:34 sergiodj+buildbot
2019-06-21 17:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix nullptr in with_command_1
@ 2019-08-21 21:57 gdb-buildbot
2019-08-21 22:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-21 21:57 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 26c957f12762816a90d5145c7c527ca48c890855 ***
commit 26c957f12762816a90d5145c7c527ca48c890855
Author: Pedro Alves <palves@redhat.com>
AuthorDate: Wed Aug 21 21:11:33 2019 +0100
Commit: Pedro Alves <palves@redhat.com>
CommitDate: Wed Aug 21 21:11:33 2019 +0100
Fix nullptr in with_command_1
Running 'with' without arguments crashes GDB. This fixes it.
gdb/ChangeLog:
2019-08-21 Bogdan Harjoc <harjoc@gmail.com>
* cli/cli-cmds.c (with_command_1): Error out if no arguments.
gdb/testsuite/ChangeLog:
2019-08-21 Pedro Alves <palves@redhat.com>
* gdb.base/with.exp: Test "with" with no arguments.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 01e60fb189..966bfb7d9f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-21 Bogdan Harjoc <harjoc@gmail.com>
+
+ * cli/cli-cmds.c (with_command_1): Error out if no arguments.
+
2019-08-21 Christian Biesinger <cbiesinger@google.com>
* tui/tui-data.h (tui_gen_win_info): Add an =default
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 30e0958b60..4fc656775c 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -217,6 +217,9 @@ void
with_command_1 (const char *set_cmd_prefix,
cmd_list_element *setlist, const char *args, int from_tty)
{
+ if (args == nullptr)
+ error (_("Missing arguments."));
+
const char *delim = strstr (args, "--");
const char *nested_cmd = nullptr;
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7fea9cd071..e56cc16628 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-21 Pedro Alves <palves@redhat.com>
+
+ * gdb.base/with.exp: Test "with" with no arguments.
+
2019-08-21 Tom de Vries <tdevries@suse.de>
* gdb.base/gdb-caching-proc.exp: Sort files.
diff --git a/gdb/testsuite/gdb.base/with.exp b/gdb/testsuite/gdb.base/with.exp
index 9ea768563a..a972296d78 100644
--- a/gdb/testsuite/gdb.base/with.exp
+++ b/gdb/testsuite/gdb.base/with.exp
@@ -220,6 +220,8 @@ with_test_prefix "run control" {
# Check errors.
with_test_prefix "errors" {
+ gdb_test "with" "Missing arguments\\."
+
# Try both an unknown root setting and an unknown prefixed
# setting. The errors come from different locations in the
# sources.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] ARM CMSE symbols
@ 2019-08-22 5:38 gdb-buildbot
2019-08-22 9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-22 5:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT baf46cd78048e1b959462567556e1de1ef6b9039 ***
commit baf46cd78048e1b959462567556e1de1ef6b9039
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Thu Aug 22 11:21:48 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 22 14:14:23 2019 +0930
ARM CMSE symbols
This patch removes use of st_target_internal to cache the result of
comparing symbol names against CMSE_PREFIX. The problem with setting
a bit in st_target_internal in swap_symbol_in is that calling
bfd_elf_sym_name from swap_symbol_in requires symtab_hdr, and you
don't know for sure whether swap_symbol_in is operating on dynsyms
(and thus elf_tdata (abfd)->dynsymtab_hdr should be used) or on the
normal symtab (thus elf_tdata (abfd)->symtab_hdr). You can make an
educated guess based on abfd->flags & DYNAMIC but that relies on
knowing a lot about calls to bfd_elf_get_elf_syms, and is fragile in
the face of possible future changes.
include/
* elf/arm.h (ARM_GET_SYM_CMSE_SPCL, ARM_SET_SYM_CMSE_SPCL): Delete.
bfd/
* elf32-arm.c (cmse_scan): Don't use ARM_GET_SYM_CMSE_SPCL,
instead recognize CMSE_PREFIX in symbol name.
(elf32_arm_gc_mark_extra_sections): Likewise.
(elf32_arm_filter_cmse_symbols): Don't test ARM_GET_SYM_CMSE_SPCL.
(elf32_arm_swap_symbol_in): Don't invoke ARM_SET_SYM_CMSE_SPCL.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 97d3726516..a725504c02 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-22 Alan Modra <amodra@gmail.com>
+
+ * elf32-arm.c (cmse_scan): Don't use ARM_GET_SYM_CMSE_SPCL,
+ instead recognize CMSE_PREFIX in symbol name.
+ (elf32_arm_gc_mark_extra_sections): Likewise.
+ (elf32_arm_filter_cmse_symbols): Don't test ARM_GET_SYM_CMSE_SPCL.
+ (elf32_arm_swap_symbol_in): Don't invoke ARM_SET_SYM_CMSE_SPCL.
+
2019-08-20 Dennis Zhang <dennis.zhang@arm.com>
* cpu-aarch64.c: New entries for Cortex-A34, Cortex-A65,
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index d1548d6db3..b675fc60c1 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -6002,12 +6002,12 @@ cmse_scan (bfd *input_bfd, struct elf32_arm_link_hash_table *htab,
if (i < ext_start)
{
cmse_sym = &local_syms[i];
- /* Not a special symbol. */
- if (!ARM_GET_SYM_CMSE_SPCL (cmse_sym->st_target_internal))
- continue;
sym_name = bfd_elf_string_from_elf_section (input_bfd,
symtab_hdr->sh_link,
cmse_sym->st_name);
+ if (!sym_name || !CONST_STRNEQ (sym_name, CMSE_PREFIX))
+ continue;
+
/* Special symbol with local binding. */
cmse_invalid = TRUE;
}
@@ -6015,9 +6015,7 @@ cmse_scan (bfd *input_bfd, struct elf32_arm_link_hash_table *htab,
{
cmse_hash = elf32_arm_hash_entry (sym_hashes[i - ext_start]);
sym_name = (char *) cmse_hash->root.root.root.string;
-
- /* Not a special symbol. */
- if (!ARM_GET_SYM_CMSE_SPCL (cmse_hash->root.target_internal))
+ if (!CONST_STRNEQ (sym_name, CMSE_PREFIX))
continue;
/* Special symbol has incorrect binding or type. */
@@ -15990,7 +15988,8 @@ elf32_arm_gc_mark_extra_sections (struct bfd_link_info *info,
/* Assume it is a special symbol. If not, cmse_scan will
warn about it and user can do something about it. */
- if (ARM_GET_SYM_CMSE_SPCL (cmse_hash->root.target_internal))
+ if (CONST_STRNEQ (cmse_hash->root.root.root.string,
+ CMSE_PREFIX))
{
cmse_sec = cmse_hash->root.root.u.def.section;
if (!cmse_sec->gc_mark
@@ -18610,9 +18609,6 @@ elf32_arm_filter_cmse_symbols (bfd *abfd ATTRIBUTE_UNUSED,
|| cmse_hash->root.type != STT_FUNC)
continue;
- if (!ARM_GET_SYM_CMSE_SPCL (cmse_hash->root.target_internal))
- continue;
-
syms[dst_count++] = sym;
}
free (cmse_name);
@@ -19935,9 +19931,6 @@ elf32_arm_swap_symbol_in (bfd * abfd,
const void *pshn,
Elf_Internal_Sym *dst)
{
- Elf_Internal_Shdr *symtab_hdr;
- const char *name = NULL;
-
if (!bfd_elf32_swap_symbol_in (abfd, psrc, pshn, dst))
return FALSE;
dst->st_target_internal = 0;
@@ -19966,13 +19959,6 @@ elf32_arm_swap_symbol_in (bfd * abfd,
else
ARM_SET_SYM_BRANCH_TYPE (dst->st_target_internal, ST_BRANCH_UNKNOWN);
- /* Mark CMSE special symbols. */
- symtab_hdr = & elf_symtab_hdr (abfd);
- if (symtab_hdr->sh_size)
- name = bfd_elf_sym_name (abfd, symtab_hdr, dst, NULL);
- if (name && CONST_STRNEQ (name, CMSE_PREFIX))
- ARM_SET_SYM_CMSE_SPCL (dst->st_target_internal);
-
return TRUE;
}
diff --git a/include/ChangeLog b/include/ChangeLog
index 1813cb38d8..e779c17702 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-22 Alan Modra <amodra@gmail.com>
+
+ * elf/arm.h (ARM_GET_SYM_CMSE_SPCL, ARM_SET_SYM_CMSE_SPCL): Delete.
+
2019-08-09 Mihailo Stojanovic <mihailo.stojanovic@rt-rk.com>
* elf/mips.h (SHT_GNU_XHASH): New define.
diff --git a/include/elf/arm.h b/include/elf/arm.h
index 5cb9970644..75fb5e26ca 100644
--- a/include/elf/arm.h
+++ b/include/elf/arm.h
@@ -399,11 +399,4 @@ enum arm_st_branch_type {
| ((TYPE) & ENUM_ARM_ST_BRANCH_TYPE_BITMASK))
#endif
-/* Get or set whether a symbol is a special symbol of an entry function of CMSE
- secure code. */
-#define ARM_GET_SYM_CMSE_SPCL(SYM_TARGET_INTERNAL) \
- (((SYM_TARGET_INTERNAL) >> 2) & 1)
-#define ARM_SET_SYM_CMSE_SPCL(SYM_TARGET_INTERNAL) \
- (SYM_TARGET_INTERNAL) |= 4
-
#endif /* _ELF_ARM_H */
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] AArch64: Fix LD crash on weak and undefined TLS symbols. (PR/24602).
@ 2019-08-22 11:36 gdb-buildbot
2019-08-22 12:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-22 11:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 652afeef247770b22c44ca292d1f4c65be40a696 ***
commit 652afeef247770b22c44ca292d1f4c65be40a696
Author: Tamar Christina <tamar.christina@arm.com>
AuthorDate: Thu Aug 22 11:35:35 2019 +0100
Commit: Tamar Christina <tamar.christina@arm.com>
CommitDate: Thu Aug 22 11:43:15 2019 +0100
AArch64: Fix LD crash on weak and undefined TLS symbols. (PR/24602).
This patch fixes a few linker crashes due to TLS code reaching an assert when it
shouldn't.
The first scenario is with weak TLS symbols that remain weak during linking. In
this case the mid-end would not have seen a TLS symbol and so wouldn't have
allocated the TLS section. We currently assert here and the linker crashes with
a not very useful message.
This patch changes this to return the value 0 for the TLS symbol in question
emulating what lld and gold and other BFD targets do. However because weak TLS
is implementation defined and we don't define any behavior for it I also emit a
warning to the user to inform them of such.
Secondly when a strong TLS reference is undefined. The linker crashes even after
it correctly reported that there is an undefined reference. This changes it so
that it gracefully exits and reports a useful error.
bfd/ChangeLog:
PR ld/24601
* elfnn-aarch64.c (aarch64_relocate): Handle weak TLS and undefined TLS.
Also Pass input_bfd to _bfd_aarch64_elf_resolve_relocation.
* elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Use it.
* elfxx-aarch64.h (_bfd_aarch64_elf_resolve_relocation): Emit warning
for weak TLS.
ld/ChangeLog:
PR ld/24601
* testsuite/ld-aarch64/aarch64-elf.exp (undef-tls, weak-tls): New.
* testsuite/ld-aarch64/undef-tls.d: New test.
* testsuite/ld-aarch64/undef-tls.s: New test.
* testsuite/ld-aarch64/weak-tls.d: New test.
* testsuite/ld-aarch64/weak-tls.s: New test.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a725504c02..ef9eee4716 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-22 Tamar Christina <tamar.christina@arm.com>
+
+ PR ld/24601
+ * elfnn-aarch64.c (aarch64_relocate): Handle weak TLS and undefined TLS.
+ Also Pass input_bfd to _bfd_aarch64_elf_resolve_relocation.
+ * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Use it.
+ * elfxx-aarch64.h (_bfd_aarch64_elf_resolve_relocation): Emit warning
+ for weak TLS.
+
2019-08-22 Alan Modra <amodra@gmail.com>
* elf32-arm.c (cmse_scan): Don't use ARM_GET_SYM_CMSE_SPCL,
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 4e6cbc9a3a..fd44505da4 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -3004,7 +3004,8 @@ aarch64_relocate (unsigned int r_type, bfd *input_bfd, asection *input_section,
+ offset);
r_type = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type);
- value = _bfd_aarch64_elf_resolve_relocation (r_type, place, value, 0, FALSE);
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, r_type, place,
+ value, 0, FALSE);
return _bfd_aarch64_elf_put_addend (input_bfd,
input_section->contents + offset, r_type,
howto, value) == bfd_reloc_ok;
@@ -5585,7 +5586,8 @@ bad_ifunc_reloc:
/* FALLTHROUGH */
case BFD_RELOC_AARCH64_CALL26:
case BFD_RELOC_AARCH64_JUMP26:
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
signed_addend,
weak_undef_p);
return _bfd_aarch64_elf_put_addend (input_bfd, hit_data, bfd_r_type,
@@ -5662,7 +5664,8 @@ bad_ifunc_reloc:
addend = (globals->root.sgot->output_section->vma
+ globals->root.sgot->output_offset);
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
addend, weak_undef_p);
return _bfd_aarch64_elf_put_addend (input_bfd, hit_data, bfd_r_type, howto, value);
case BFD_RELOC_AARCH64_ADD_LO12:
@@ -5840,7 +5843,8 @@ bad_ifunc_reloc:
signed_addend = 0;
}
}
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
signed_addend, weak_undef_p);
*unresolved_reloc_p = FALSE;
break;
@@ -5900,7 +5904,8 @@ bad_ifunc_reloc:
case BFD_RELOC_AARCH64_MOVW_G2_S:
case BFD_RELOC_AARCH64_MOVW_G3:
case BFD_RELOC_AARCH64_TSTBR14:
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
signed_addend, weak_undef_p);
break;
@@ -5945,7 +5950,8 @@ bad_ifunc_reloc:
if (aarch64_relocation_aginst_gp_p (bfd_r_type))
addend = (globals->root.sgot->output_section->vma
+ globals->root.sgot->output_offset);
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
addend, weak_undef_p);
}
else
@@ -5992,7 +5998,8 @@ bad_ifunc_reloc:
if (aarch64_relocation_aginst_gp_p (bfd_r_type))
addend = base_got->output_section->vma + base_got->output_offset;
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
addend, weak_undef_p);
}
@@ -6029,7 +6036,8 @@ bad_ifunc_reloc:
+ globals->root.sgot->output_section->vma
+ globals->root.sgot->output_offset);
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
0, weak_undef_p);
*unresolved_reloc_p = FALSE;
break;
@@ -6042,7 +6050,8 @@ bad_ifunc_reloc:
return bfd_reloc_notsupported;
value = symbol_got_offset (input_bfd, h, r_symndx);
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
0, weak_undef_p);
*unresolved_reloc_p = FALSE;
break;
@@ -6063,10 +6072,26 @@ bad_ifunc_reloc:
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1:
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC:
case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2:
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
- signed_addend - dtpoff_base (info),
- weak_undef_p);
- break;
+ {
+ if (!(weak_undef_p || elf_hash_table (info)->tls_sec))
+ {
+ int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%pB: TLS relocation %s against undefined symbol `%s'"),
+ input_bfd, elfNN_aarch64_howto_table[howto_index].name,
+ h->root.root.string);
+ bfd_set_error (bfd_error_bad_value);
+ return bfd_reloc_notsupported;
+ }
+
+ bfd_vma def_value
+ = weak_undef_p ? 0 : signed_addend - dtpoff_base (info);
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
+ def_value, weak_undef_p);
+ break;
+ }
case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12:
case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12:
@@ -6084,11 +6109,27 @@ bad_ifunc_reloc:
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1:
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2:
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
- signed_addend - tpoff_base (info),
- weak_undef_p);
- *unresolved_reloc_p = FALSE;
- break;
+ {
+ if (!(weak_undef_p || elf_hash_table (info)->tls_sec))
+ {
+ int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%pB: TLS relocation %s against undefined symbol `%s'"),
+ input_bfd, elfNN_aarch64_howto_table[howto_index].name,
+ h->root.root.string);
+ bfd_set_error (bfd_error_bad_value);
+ return bfd_reloc_notsupported;
+ }
+
+ bfd_vma def_value
+ = weak_undef_p ? 0 : signed_addend - tpoff_base (info);
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
+ def_value, weak_undef_p);
+ *unresolved_reloc_p = FALSE;
+ break;
+ }
case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:
case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:
@@ -6103,7 +6144,8 @@ bad_ifunc_reloc:
+ globals->root.sgotplt->output_offset
+ globals->sgotplt_jump_table_size);
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
0, weak_undef_p);
*unresolved_reloc_p = FALSE;
break;
@@ -6121,7 +6163,8 @@ bad_ifunc_reloc:
value -= (globals->root.sgot->output_section->vma
+ globals->root.sgot->output_offset);
- value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
+ value = _bfd_aarch64_elf_resolve_relocation (input_bfd, bfd_r_type,
+ place, value,
0, weak_undef_p);
*unresolved_reloc_p = FALSE;
break;
diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c
index 33af6c22e1..1f69280713 100644
--- a/bfd/elfxx-aarch64.c
+++ b/bfd/elfxx-aarch64.c
@@ -395,10 +395,12 @@ _bfd_aarch64_elf_put_addend (bfd *abfd,
}
bfd_vma
-_bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
+_bfd_aarch64_elf_resolve_relocation (bfd *input_bfd,
+ bfd_reloc_code_real_type r_type,
bfd_vma place, bfd_vma value,
bfd_vma addend, bfd_boolean weak_undef_p)
{
+ bfd_boolean tls_reloc = TRUE;
switch (r_type)
{
case BFD_RELOC_AARCH64_NONE:
@@ -446,6 +448,8 @@ _bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
case BFD_RELOC_AARCH64_MOVW_G2_NC:
case BFD_RELOC_AARCH64_MOVW_G2_S:
case BFD_RELOC_AARCH64_MOVW_G3:
+ tls_reloc = FALSE;
+ /* fall-through. */
case BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:
case BFD_RELOC_AARCH64_TLSDESC_OFF_G1:
case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
@@ -466,6 +470,15 @@ _bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type r_type,
case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12:
case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12:
case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12:
+ /* Weak Symbols and TLS relocations are implementation defined. For this
+ case we choose to emit 0. */
+ if (weak_undef_p && tls_reloc)
+ {
+ _bfd_error_handler (_("%pB: warning: Weak TLS is implementation "
+ "defined and may not work as expected"),
+ input_bfd);
+ value = place;
+ }
value = value + addend;
break;
diff --git a/bfd/elfxx-aarch64.h b/bfd/elfxx-aarch64.h
index 9ab13bb865..f5988529d7 100644
--- a/bfd/elfxx-aarch64.h
+++ b/bfd/elfxx-aarch64.h
@@ -40,8 +40,8 @@ _bfd_aarch64_elf_put_addend (bfd *, bfd_byte *, bfd_reloc_code_real_type,
reloc_howto_type *, bfd_signed_vma);
extern bfd_vma
-_bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type, bfd_vma, bfd_vma,
- bfd_vma, bfd_boolean);
+_bfd_aarch64_elf_resolve_relocation (bfd *, bfd_reloc_code_real_type, bfd_vma,
+ bfd_vma, bfd_vma, bfd_boolean);
extern bfd_boolean
_bfd_aarch64_elf_grok_prstatus (bfd *, Elf_Internal_Note *);
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4f71ce81bd..ed646acffa 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-22 Tamar Christina <tamar.christina@arm.com>
+
+ PR ld/24601
+ * testsuite/ld-aarch64/aarch64-elf.exp (undef-tls, weak-tls): New.
+ * testsuite/ld-aarch64/undef-tls.d: New test.
+ * testsuite/ld-aarch64/undef-tls.s: New test.
+ * testsuite/ld-aarch64/weak-tls.d: New test.
+ * testsuite/ld-aarch64/weak-tls.s: New test.
+
2019-08-20 Tamar Christina <tamar.christina@arm.com>
* testsuite/ld-arm/cortex-a8-fix-b-plt.d: Update Testcase.
diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp
index ab8d15271c..631fde0f31 100644
--- a/ld/testsuite/ld-aarch64/aarch64-elf.exp
+++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp
@@ -424,3 +424,5 @@ run_dump_test "bti-pac-plt-1"
run_dump_test "bti-pac-plt-2"
run_dump_test "bti-warn"
+run_dump_test "weak-tls"
+run_dump_test "undef-tls"
diff --git a/ld/testsuite/ld-aarch64/undef-tls.d b/ld/testsuite/ld-aarch64/undef-tls.d
new file mode 100644
index 0000000000..8b43ca4c1d
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/undef-tls.d
@@ -0,0 +1,17 @@
+#source: undef-tls.s
+#ld: -e0 --emit-relocs
+#objdump: -dr
+#...
+#error:.*: in function `get':.*
+#error:.*: undefined reference to `tls'.*
+#error:.*: TLS relocation R_AARCH64_TLSLE_ADD_TPREL_HI12 against undefined symbol `tls'.*
+#error:.*: dangerous relocation: unsupported relocation.*
+#error:.*: undefined reference to `tls'.*
+#error:.*: TLS relocation R_AARCH64_TLSLE_ADD_TPREL_LO12_NC against undefined symbol `tls'.*
+#error:.*: dangerous relocation: unsupported relocation.*
+#error:.*: undefined reference to `dtl'.*
+#error:.*: TLS relocation R_AARCH64_TLSLD_ADD_DTPREL_HI12 against undefined symbol `dtl'.*
+#error:.*: dangerous relocation: unsupported relocation.*
+#error:.*: undefined reference to `dtl'.*
+#error:.*: TLS relocation R_AARCH64_TLSLD_ADD_DTPREL_LO12 against undefined symbol `dtl'.*
+#error:.*: dangerous relocation: unsupported relocation.*
diff --git a/ld/testsuite/ld-aarch64/undef-tls.s b/ld/testsuite/ld-aarch64/undef-tls.s
new file mode 100644
index 0000000000..6d57afbb54
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/undef-tls.s
@@ -0,0 +1,13 @@
+ .global get
+ .type get, %function
+get:
+.LFB0:
+ mrs x0, tpidr_el0
+ add x0, x0, #:tprel_hi12:tls, lsl #12
+ add x0, x0, #:tprel_lo12_nc:tls
+ add x0, x0, #:dtprel_hi12:dtl
+ add x0, x0, #:dtprel_lo12:dtl
+ ret
+.LFE0:
+ .size get, .-get
+
diff --git a/ld/testsuite/ld-aarch64/weak-tls.d b/ld/testsuite/ld-aarch64/weak-tls.d
new file mode 100644
index 0000000000..a826940689
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/weak-tls.d
@@ -0,0 +1,8 @@
+#source: weak-tls.s
+#ld: -e0 --emit-relocs
+#objdump: -dr
+#...
+#error:.*: warning: Weak TLS is implementation defined and may not work as expected.*
+#error:.*: warning: Weak TLS is implementation defined and may not work as expected.*
+#error:.*: in function `get':.*
+#error:.*: relocation truncated to fit: R_AARCH64_TLSLD_ADD_DTPREL_LO12 against undefined symbol `dtl'.*
diff --git a/ld/testsuite/ld-aarch64/weak-tls.s b/ld/testsuite/ld-aarch64/weak-tls.s
new file mode 100644
index 0000000000..3520a85589
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/weak-tls.s
@@ -0,0 +1,16 @@
+ .global get
+ .type get, %function
+ .global dtl
+ .weak dtl
+get:
+.LFB0:
+ mrs x0, tpidr_el0
+ add x0, x0, #:tprel_hi12:tls, lsl #12
+ add x0, x0, #:tprel_lo12_nc:tls
+ add x0, x0, #:dtprel_hi12:dtl
+ add x0, x0, #:dtprel_lo12:dtl
+ ret
+.LFE0:
+ .size get, .-get
+ .weak tls
+
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Remove some dead code from the parser
@ 2019-08-22 12:18 gdb-buildbot
2019-08-22 13:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-22 12:18 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 43771869e5021b6bdc02b6eaae103a33c05a821c ***
commit 43771869e5021b6bdc02b6eaae103a33c05a821c
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Thu Aug 22 10:07:00 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Thu Aug 22 12:34:42 2019 +0100
gdb/fortran: Remove some dead code from the parser
The Fortran parser contains some code that looks like it was probably
inherited from the C/C++ parser as it checks to see if the current
language is C++, which should never be true when we're in the Fortran
parser.
gdb/ChangeLog:
* f-exp.y (yylex): Remove is_a_field_of_this local variable, and
all uses as this was never set to anything but a zero value.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 966bfb7d9f..b6d200d3d8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-22 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * f-exp.y (yylex): Remove is_a_field_of_this local variable, and
+ all uses as this was never set to anything but a zero value.
+
2019-08-21 Bogdan Harjoc <harjoc@gmail.com>
* cli/cli-cmds.c (with_command_1): Error out if no arguments.
diff --git a/gdb/f-exp.y b/gdb/f-exp.y
index 14ea3869bb..9784ad57d8 100644
--- a/gdb/f-exp.y
+++ b/gdb/f-exp.y
@@ -1275,7 +1275,6 @@ yylex (void)
{
std::string tmp = copy_name (yylval.sval);
struct block_symbol result;
- struct field_of_this_result is_a_field_of_this;
enum domain_enum_tag lookup_domains[] =
{
STRUCT_DOMAIN,
@@ -1286,15 +1285,8 @@ yylex (void)
for (int i = 0; i < ARRAY_SIZE (lookup_domains); ++i)
{
- /* Initialize this in case we *don't* use it in this call; that
- way we can refer to it unconditionally below. */
- memset (&is_a_field_of_this, 0, sizeof (is_a_field_of_this));
-
result = lookup_symbol (tmp.c_str (), pstate->expression_context_block,
- lookup_domains[i],
- pstate->language ()->la_language
- == language_cplus
- ? &is_a_field_of_this : NULL);
+ lookup_domains[i], NULL);
if (result.symbol && SYMBOL_CLASS (result.symbol) == LOC_TYPEDEF)
{
yylval.tsym.type = SYMBOL_TYPE (result.symbol);
@@ -1323,14 +1315,14 @@ yylex (void)
if (hextype == INT)
{
yylval.ssym.sym = result;
- yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
+ yylval.ssym.is_a_field_of_this = false;
return NAME_OR_INT;
}
}
/* Any other kind of symbol */
yylval.ssym.sym = result;
- yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
+ yylval.ssym.is_a_field_of_this = false;
return NAME;
}
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix an illegal memory access when dumping corrupt x86_64 PE unwind data.
@ 2019-08-22 14:33 gdb-buildbot
2019-08-22 14:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-22 14:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 03da31c6764c1bca9b0b0529344a8ea933c825ea ***
commit 03da31c6764c1bca9b0b0529344a8ea933c825ea
Author: Nick Clifton <nickc@redhat.com>
AuthorDate: Thu Aug 22 14:37:03 2019 +0100
Commit: Nick Clifton <nickc@redhat.com>
CommitDate: Thu Aug 22 14:37:03 2019 +0100
Fix an illegal memory access when dumping corrupt x86_64 PE unwind data.
PR 24922
* pei-x86_64.c (pex64_xdata_print_uwd_codes): Add checks before
reading data from extra records.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ef9eee4716..1c08d38908 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-22 Nick Clifton <nickc@redhat.com>
+
+ PR 24922
+ * pei-x86_64.c (pex64_xdata_print_uwd_codes): Add checks before
+ reading data from extra records.
+
2019-08-22 Tamar Christina <tamar.christina@arm.com>
PR ld/24601
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index 8a88827b82..2588e6c6e9 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -228,27 +228,41 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
int unexpected = FALSE;
fprintf (file, "\t pc+0x%02x: ", (unsigned int) dta[0]);
+
switch (PEX64_UNWCODE_CODE (dta[1]))
{
case UWOP_PUSH_NONVOL:
fprintf (file, "push %s", pex_regs[info]);
break;
+
case UWOP_ALLOC_LARGE:
if (info == 0)
{
- tmp = bfd_get_16 (abfd, &dta[2]) * 8;
+ if (dta + 4 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_16 (abfd, dta + 2) * 8;
i++;
}
else
{
- tmp = bfd_get_32 (abfd, &dta[2]);
+ if (dta + 6 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_32 (abfd, dta + 2);
i += 2;
}
fprintf (file, "alloc large area: rsp = rsp - 0x%x", tmp);
break;
+
case UWOP_ALLOC_SMALL:
fprintf (file, "alloc small area: rsp = rsp - 0x%x", (info + 1) * 8);
break;
+
case UWOP_SET_FPREG:
/* According to the documentation, info field is unused. */
fprintf (file, "FPReg: %s = rsp + 0x%x (info = 0x%x)",
@@ -257,22 +271,40 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
unexpected = ui->FrameRegister == 0;
save_allowed = FALSE;
break;
+
case UWOP_SAVE_NONVOL:
- tmp = bfd_get_16 (abfd, &dta[2]) * 8;
+ if (dta + 4 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_16 (abfd, dta + 2) * 8;
i++;
fprintf (file, "save %s at rsp + 0x%x", pex_regs[info], tmp);
unexpected = !save_allowed;
break;
+
case UWOP_SAVE_NONVOL_FAR:
- tmp = bfd_get_32 (abfd, &dta[2]);
+ if (dta + 6 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_32 (abfd, dta + 2);
i += 2;
fprintf (file, "save %s at rsp + 0x%x", pex_regs[info], tmp);
unexpected = !save_allowed;
break;
+
case UWOP_SAVE_XMM:
if (ui->Version == 1)
{
- tmp = bfd_get_16 (abfd, &dta[2]) * 8;
+ if (dta + 4 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_16 (abfd, dta + 2) * 8;
i++;
fprintf (file, "save mm%u at rsp + 0x%x", info, tmp);
unexpected = !save_allowed;
@@ -283,24 +315,43 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
unexpected = TRUE;
}
break;
+
case UWOP_SAVE_XMM_FAR:
- tmp = bfd_get_32 (abfd, &dta[2]) * 8;
+ if (dta + 6 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_32 (abfd, dta + 2) * 8;
i += 2;
fprintf (file, "save mm%u at rsp + 0x%x", info, tmp);
unexpected = !save_allowed;
break;
+
case UWOP_SAVE_XMM128:
- tmp = bfd_get_16 (abfd, &dta[2]) * 16;
+ if (dta + 4 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_16 (abfd, dta + 2) * 16;
i++;
fprintf (file, "save xmm%u at rsp + 0x%x", info, tmp);
unexpected = !save_allowed;
break;
+
case UWOP_SAVE_XMM128_FAR:
- tmp = bfd_get_32 (abfd, &dta[2]) * 16;
+ if (dta + 6 > ui->rawUnwindCodesEnd)
+ {
+ fprintf (file, _("warning: corrupt unwind data\n"));
+ return;
+ }
+ tmp = bfd_get_32 (abfd, dta + 2) * 16;
i += 2;
fprintf (file, "save xmm%u at rsp + 0x%x", info, tmp);
unexpected = !save_allowed;
break;
+
case UWOP_PUSH_MACHFRAME:
fprintf (file, "interrupt entry (SS, old RSP, EFLAGS, CS, RIP");
if (info == 0)
@@ -310,11 +361,13 @@ pex64_xdata_print_uwd_codes (FILE *file, bfd *abfd,
else
fprintf (file, ", unknown(%u))", info);
break;
+
default:
/* PR 17512: file: 2245-7442-0.004. */
fprintf (file, _("Unknown: %x"), PEX64_UNWCODE_CODE (dta[1]));
break;
- }
+ }
+
if (unexpected)
fprintf (file, " [Unexpected!]");
fputc ('\n', file);
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Arm: Add support for missing CPUs
@ 2019-08-22 15:14 gdb-buildbot
2019-08-22 16:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-22 15:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0535e5d74d6164c49473fe0ce89213aa2b6270b8 ***
commit 0535e5d74d6164c49473fe0ce89213aa2b6270b8
Author: Dennis Zhang <dennis.zhang@arm.com>
AuthorDate: Thu Aug 22 15:21:32 2019 +0100
Commit: Tamar Christina <tamar.christina@arm.com>
CommitDate: Thu Aug 22 15:35:43 2019 +0100
Arm: Add support for missing CPUs
This patch adds support for following CPUs:
Cortex-M35P, Cortex-A77, Cortex-A76AE.
Related specifications can be found at https://developer.arm.com/ip-products/processors.
gas/ChangeLog:
* config/tc-arm.c: New entries for Cortex-M35P, Cortex-A77,
and Cortex-A76AE.
* doc/c-arm.texi: Document new processors.
* testsuite/gas/arm/cpu-cortex-a76ae.d: New test.
* testsuite/gas/arm/cpu-cortex-a77.d: New test.
* testsuite/gas/arm/cpu-cortex-m35p.d: New test.
bfd/ChangeLog:
* cpu-arm.c: New entries for Cortex-M35P, Cortex-A77, Cortex-A76AE.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c08d38908..0eb514d314 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-22 Dennis Zhang <dennis.zhang@arm.com>
+
+ * cpu-arm.c: New entries for Cortex-M35P, Cortex-A77, Cortex-A76AE.
+
2019-08-22 Nick Clifton <nickc@redhat.com>
PR 24922
diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c
index 5a5da93cb4..8d70b84b8b 100644
--- a/bfd/cpu-arm.c
+++ b/bfd/cpu-arm.c
@@ -147,12 +147,15 @@ processors[] =
{ bfd_mach_arm_8, "cortex-a73" },
{ bfd_mach_arm_8, "cortex-a75" },
{ bfd_mach_arm_8, "cortex-a76" },
+ { bfd_mach_arm_8, "cortex-a76ae" },
+ { bfd_mach_arm_8, "cortex-a77" },
{ bfd_mach_arm_6SM, "cortex-m0" },
{ bfd_mach_arm_6SM, "cortex-m0plus" },
{ bfd_mach_arm_6SM, "cortex-m1" },
{ bfd_mach_arm_8M_BASE, "cortex-m23" },
{ bfd_mach_arm_7, "cortex-m3" },
{ bfd_mach_arm_8M_MAIN, "cortex-m33" },
+ { bfd_mach_arm_8M_MAIN, "cortex-m35p" },
{ bfd_mach_arm_7EM, "cortex-m4" },
{ bfd_mach_arm_7EM, "cortex-m7" },
{ bfd_mach_arm_7, "cortex-r4" },
diff --git a/gas/ChangeLog b/gas/ChangeLog
index bd9887e424..4d6b571a42 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-22 Dennis Zhang <dennis.zhang@arm.com>
+
+ * config/tc-arm.c: New entries for Cortex-M35P, Cortex-A77,
+ and Cortex-A76AE.
+ * doc/c-arm.texi: Document new processors.
+ * testsuite/gas/arm/cpu-cortex-a76ae.d: New test.
+ * testsuite/gas/arm/cpu-cortex-a77.d: New test.
+ * testsuite/gas/arm/cpu-cortex-m35p.d: New test.
+
2019-08-22 Bosco Garca <jbgg.gnu@gmail.com>
Nick Clifton <nickc@redhat.com>
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index c58748dfaa..27c6f0e52f 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -30591,6 +30591,12 @@ static const struct arm_cpu_option_table arm_cpus[] =
ARM_CPU_OPT ("cortex-a76", "Cortex-A76", ARM_ARCH_V8_2A,
ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
+ ARM_CPU_OPT ("cortex-a76ae", "Cortex-A76AE", ARM_ARCH_V8_2A,
+ ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
+ ARM_CPU_OPT ("cortex-a77", "Cortex-A77", ARM_ARCH_V8_2A,
+ ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
ARM_CPU_OPT ("ares", "Ares", ARM_ARCH_V8_2A,
ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
@@ -30612,6 +30618,9 @@ static const struct arm_cpu_option_table arm_cpus[] =
ARM_CPU_OPT ("cortex-r52", "Cortex-R52", ARM_ARCH_V8R,
ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
FPU_ARCH_NEON_VFP_ARMV8),
+ ARM_CPU_OPT ("cortex-m35p", "Cortex-M35P", ARM_ARCH_V8M_MAIN,
+ ARM_FEATURE_CORE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP),
+ FPU_NONE),
ARM_CPU_OPT ("cortex-m33", "Cortex-M33", ARM_ARCH_V8M_MAIN,
ARM_FEATURE_CORE_LOW (ARM_EXT_V5ExP | ARM_EXT_V6_DSP),
FPU_NONE),
diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi
index 481eddf0cf..175de8eae1 100644
--- a/gas/doc/c-arm.texi
+++ b/gas/doc/c-arm.texi
@@ -129,6 +129,8 @@ recognized:
@code{cortex-a73},
@code{cortex-a75},
@code{cortex-a76},
+@code{cortex-a76ae},
+@code{cortex-a77},
@code{ares},
@code{cortex-r4},
@code{cortex-r4f},
@@ -136,6 +138,7 @@ recognized:
@code{cortex-r7},
@code{cortex-r8},
@code{cortex-r52},
+@code{cortex-m35p},
@code{cortex-m33},
@code{cortex-m23},
@code{cortex-m7},
diff --git a/gas/testsuite/gas/arm/cpu-cortex-a76ae.d b/gas/testsuite/gas/arm/cpu-cortex-a76ae.d
new file mode 100644
index 0000000000..7f7cf2952c
--- /dev/null
+++ b/gas/testsuite/gas/arm/cpu-cortex-a76ae.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a76ae CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a76ae
+# objdump: -d -mcortex-a76ae
+
+#...
diff --git a/gas/testsuite/gas/arm/cpu-cortex-a77.d b/gas/testsuite/gas/arm/cpu-cortex-a77.d
new file mode 100644
index 0000000000..caff73fe07
--- /dev/null
+++ b/gas/testsuite/gas/arm/cpu-cortex-a77.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-a77 CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-a77
+# objdump: -d -mcortex-a77
+
+#...
diff --git a/gas/testsuite/gas/arm/cpu-cortex-m35p.d b/gas/testsuite/gas/arm/cpu-cortex-m35p.d
new file mode 100644
index 0000000000..f60339f662
--- /dev/null
+++ b/gas/testsuite/gas/arm/cpu-cortex-m35p.d
@@ -0,0 +1,6 @@
+# name: Assemble and dump for cortex-m35p CPU
+# source: nop-asm.s
+# as: -mcpu=cortex-m35p
+# objdump: -d -M force-thumb -mcortex-m35p
+
+#...
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Make gdb_test message more informative in multi-term-settings.exp
@ 2019-08-22 16:40 gdb-buildbot
2019-08-22 18:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-22 16:40 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 395fad095c9cbc5a8b10557443da981cc3f61885 ***
commit 395fad095c9cbc5a8b10557443da981cc3f61885
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Aug 22 16:54:59 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Aug 22 16:54:59 2019 +0200
[gdb/testsuite] Make gdb_test message more informative in multi-term-settings.exp
This racy fail message, reported in PR24929:
...
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: \
stop with control-c
...
does not make clear which gdb_test fails here:
...
if {$expect_ttou} {
gdb_test "" "Quit" "stop with control-c"
} else {
gdb_test "" "received signal SIGINT.*" "stop with control-c"
}
...
Fix this by making the gdb_test message argument more informative.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-08-22 Tom de Vries <tdevries@suse.de>
* gdb.multi/multi-term-settings.exp (coretest): Make gdb_test messages
more informative.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e56cc16628..639bea20e7 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-22 Tom de Vries <tdevries@suse.de>
+
+ * gdb.multi/multi-term-settings.exp (coretest): Make gdb_test messages
+ more informative.
+
2019-08-21 Pedro Alves <palves@redhat.com>
* gdb.base/with.exp: Test "with" with no arguments.
diff --git a/gdb/testsuite/gdb.multi/multi-term-settings.exp b/gdb/testsuite/gdb.multi/multi-term-settings.exp
index fd3883b692..1c550aaa2e 100644
--- a/gdb/testsuite/gdb.multi/multi-term-settings.exp
+++ b/gdb/testsuite/gdb.multi/multi-term-settings.exp
@@ -212,9 +212,9 @@ proc coretest {inf1_how inf2_how} {
send_gdb "\003"
if {$expect_ttou} {
- gdb_test "" "Quit" "stop with control-c"
+ gdb_test "" "Quit" "stop with control-c (Quit)"
} else {
- gdb_test "" "received signal SIGINT.*" "stop with control-c"
+ gdb_test "" "received signal SIGINT.*" "stop with control-c (SIGINT)"
}
# Useful for debugging in case the Ctrl-C above fails.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Make GDB compile with Python 3 on MinGW
@ 2019-08-22 23:24 gdb-buildbot
2019-08-23 4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-22 23:24 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 272044897e178835f596c96740c5a1800ec6f9fb ***
commit 272044897e178835f596c96740c5a1800ec6f9fb
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 13 14:48:05 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Thu Aug 22 17:44:58 2019 -0500
Make GDB compile with Python 3 on MinGW
PyFile_FromString and PyFile_AsFile have been removed in Python 3.
There is no obvious replacement that works here, and we can't just
pass our FILE* to a DLL in Windows because it may use a different
C runtime.
So we just call a Python function which reads and executes file
contents. Care must be taken to execute it in the context of
__main__.
Tested by inverting the ifdef and running the testsuite on Debian
Linux (even without the patch, I failed at running the testsuite
on Windows). I did test with both Python 2 and 3.
gdb/ChangeLog:
2019-08-22 Christian Biesinger <cbiesinger@google.com>
* python/lib/gdb/__init__.py (_execute_file): New function.
* python/python.c (python_run_simple_file): Call gdb._execute_file
on Windows.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b6d200d3d8..ac84245c34 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-22 Christian Biesinger <cbiesinger@google.com>
+
+ * python/lib/gdb/__init__.py (_execute_file): New function.
+ * python/python.c (python_run_simple_file): Call gdb._execute_file
+ on Windows.
+
2019-08-22 Andrew Burgess <andrew.burgess@embecosm.com>
* f-exp.y (yylex): Remove is_a_field_of_this local variable, and
diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py
index 8af9e47117..9c23970f39 100644
--- a/gdb/python/lib/gdb/__init__.py
+++ b/gdb/python/lib/gdb/__init__.py
@@ -106,6 +106,32 @@ def _execute_unwinders(pending_frame):
return None
+def _execute_file(filepath):
+ """This function is used to replace Python 2's PyRun_SimpleFile.
+
+ Loads and executes the given file.
+
+ We could use the runpy module, but its documentation says:
+ "Furthermore, any functions and classes defined by the executed code are
+ not guaranteed to work correctly after a runpy function has returned."
+ """
+ globals = sys.modules['__main__'].__dict__
+ set_file = False
+ # Set file (if not set) so that the imported file can use it (e.g. to
+ # access file-relative paths). This matches what PyRun_SimpleFile does.
+ if not hasattr(globals, '__file__'):
+ globals['__file__'] = filepath
+ set_file = True
+ try:
+ with open(filepath, 'rb') as file:
+ # We pass globals also as locals to match what Python does
+ # in PyRun_SimpleFile.
+ compiled = compile(file.read(), filepath, 'exec')
+ exec(compiled, globals, globals)
+ finally:
+ if set_file:
+ del globals['__file__']
+
# Convenience variable to GDB's python directory
PYTHONDIR = os.path.dirname(os.path.dirname(__file__))
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 162470dcc0..cca7c4cd6b 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -323,9 +323,8 @@ python_interactive_command (const char *arg, int from_tty)
A FILE * from one runtime does not necessarily operate correctly in
the other runtime.
- To work around this potential issue, we create on Windows hosts the
- FILE object using Python routines, thus making sure that it is
- compatible with the Python library. */
+ To work around this potential issue, we run code in Python to load
+ the script. */
static void
python_run_simple_file (FILE *file, const char *filename)
@@ -339,15 +338,21 @@ python_run_simple_file (FILE *file, const char *filename)
/* Because we have a string for a filename, and are using Python to
open the file, we need to expand any tilde in the path first. */
gdb::unique_xmalloc_ptr<char> full_path (tilde_expand (filename));
- gdbpy_ref<> python_file (PyFile_FromString (full_path.get (), (char *) "r"));
- if (python_file == NULL)
+
+ if (gdb_python_module == nullptr
+ || ! PyObject_HasAttrString (gdb_python_module, "_execute_file"))
+ error (_("Installation error: gdb._execute_file function is missing"));
+
+ gdbpy_ref<> return_value
+ (PyObject_CallMethod (gdb_python_module, "_execute_file", "s",
+ full_path.get ()));
+ if (return_value == nullptr)
{
- gdbpy_print_stack ();
- error (_("Error while opening file: %s"), full_path.get ());
+ /* Use PyErr_PrintEx instead of gdbpy_print_stack to better match the
+ behavior of the non-Windows codepath. */
+ PyErr_PrintEx(0);
}
- PyRun_SimpleFile (PyFile_AsFile (python_file.get ()), filename);
-
#endif /* _WIN32 */
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR24933, Memory leak in elf_x86_64_get_synthetic_symtab
@ 2019-08-23 10:41 gdb-buildbot
2019-08-23 12:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-23 10:41 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2600d80ccd04666f28608364be74d7ee552977ae ***
commit 2600d80ccd04666f28608364be74d7ee552977ae
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Fri Aug 23 19:16:25 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Fri Aug 23 19:29:51 2019 +0930
PR24933, Memory leak in elf_x86_64_get_synthetic_symtab
PR 24933
* elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Don't exit
on error without freeing plts[] contents.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0eb514d314..b39acb19b2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-23 Alan Modra <amodra@gmail.com>
+
+ PR 24933
+ * elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Don't exit
+ on error without freeing plts[] contents.
+
2019-08-22 Dennis Zhang <dennis.zhang@arm.com>
* cpu-arm.c: New entries for Cortex-M35P, Cortex-A77, Cortex-A76AE.
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 78ed41ad38..634f911ca5 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2171,17 +2171,18 @@ _bfd_x86_elf_get_synthetic_symtab (bfd *abfd,
bfd_vma);
bfd_boolean (*valid_plt_reloc_p) (unsigned int);
+ dynrelbuf = NULL;
if (count == 0)
- return -1;
+ goto bad_return;
dynrelbuf = (arelent **) bfd_malloc (relsize);
if (dynrelbuf == NULL)
- return -1;
+ goto bad_return;
dynrelcount = bfd_canonicalize_dynamic_reloc (abfd, dynrelbuf,
dynsyms);
if (dynrelcount <= 0)
- return -1;
+ goto bad_return;
/* Sort the relocs by address. */
qsort (dynrelbuf, dynrelcount, sizeof (arelent *),
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Stop the BFD library from failing when encountering a second set of relocs for the same section.
@ 2019-08-23 13:01 gdb-buildbot
2019-08-23 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-23 13:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT a7ba389645d178c43100ec47e513389ae8bf8f93 ***
commit a7ba389645d178c43100ec47e513389ae8bf8f93
Author: Nick Clifton <nickc@redhat.com>
AuthorDate: Fri Aug 23 13:22:02 2019 +0100
Commit: Nick Clifton <nickc@redhat.com>
CommitDate: Fri Aug 23 13:22:02 2019 +0100
Stop the BFD library from failing when encountering a second set of relocs for the same section.
PR 24456
* elf.c (bfd_section_from_shdr): Issue an informative warning
message and continue processing other sections after encountering
a reloc section for a section which already has other relocs
associated with it.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b39acb19b2..00afa81398 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-23 Nick Clifton <nickc@redhat.com>
+
+ PR 24456
+ * elf.c (bfd_section_from_shdr): Issue an informative warning
+ message and continue processing other sections after encountering
+ a reloc section for a section which already has other relocs
+ associated with it.
+
2019-08-23 Alan Modra <amodra@gmail.com>
PR 24933
diff --git a/bfd/elf.c b/bfd/elf.c
index 42ae1627ba..5a061c9110 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -2466,9 +2466,18 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
else
p_hdr = &esdt->rel.hdr;
- /* PR 17512: file: 0b4f81b7. */
+ /* PR 17512: file: 0b4f81b7.
+ Also see PR 24456, for a file which deliberately has two reloc
+ sections. */
if (*p_hdr != NULL)
- goto fail;
+ {
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%pB: warning: multiple relocation sections for section %pA \
+found - ignoring all but the first"),
+ abfd, target_sect);
+ goto success;
+ }
hdr2 = (Elf_Internal_Shdr *) bfd_alloc (abfd, sizeof (*hdr2));
if (hdr2 == NULL)
goto fail;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] or1k: Fix incorrect value in PLT GOT entries, causing infinite loop
@ 2019-08-23 14:14 gdb-buildbot
2019-08-23 15:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-23 14:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 09f7b0de537d465fc8ed9f9433e348c1bc78aab2 ***
commit 09f7b0de537d465fc8ed9f9433e348c1bc78aab2
Author: Stafford Horne <shorne@gmail.com>
AuthorDate: Fri Aug 23 22:25:55 2019 +0900
Commit: Stafford Horne <shorne@gmail.com>
CommitDate: Fri Aug 23 22:25:55 2019 +0900
or1k: Fix incorrect value in PLT GOT entries, causing infinite loop
The PLT GOT entry should point to the first PLT entry which contains the
runtime linker function. It was pointing back to the symbol PLT entry
causing an infinite loop.
I found this when testing the OpenRISC glibc port which uses the runtime
dynamic linker. It seems other libc's we use so far have not been
making use of the initial PLT GOT entries.
bfd/ChangeLog:
* elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for
PLT GOT entries.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 00afa81398..981e0cd4e9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-23 Stafford Horne <shorne@gmail.com>
+
+ * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for
+ PLT GOT entries.
+
2019-08-23 Nick Clifton <nickc@redhat.com>
PR 24456
diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
index c2069a3180..0d1336ceac 100644
--- a/bfd/elf32-or1k.c
+++ b/bfd/elf32-or1k.c
@@ -2377,8 +2377,11 @@ or1k_elf_finish_dynamic_symbol (bfd *output_bfd,
or1k_write_plt_entry (output_bfd, splt->contents + h->plt.offset,
plt0, plt1, plt2, OR1K_JR(12));
- /* Fill in the entry in the global offset table. */
- bfd_put_32 (output_bfd, plt_addr, sgot->contents + got_offset);
+ /* Fill in the entry in the global offset table. We initialize it to
+ point to the top of the plt. This is done to lazy lookup the actual
+ symbol as the first plt entry will be setup by libc to call the
+ runtime dynamic linker. */
+ bfd_put_32 (output_bfd, plt_base_addr, sgot->contents + got_offset);
/* Fill in the entry in the .rela.plt section. */
rela.r_offset = got_addr;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix bug in nios2 prologue analysis.
@ 2019-08-23 16:00 gdb-buildbot
2019-08-23 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-23 16:00 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT de8af80891ff0eee61cd219b316e176e9ae88e91 ***
commit de8af80891ff0eee61cd219b316e176e9ae88e91
Author: Sandra Loosemore <sandra@codesourcery.com>
AuthorDate: Fri Aug 23 08:18:54 2019 -0700
Commit: Sandra Loosemore <sandra@codesourcery.com>
CommitDate: Fri Aug 23 08:18:54 2019 -0700
Fix bug in nios2 prologue analysis.
The nios2 prologue analyzer was mistakenly using an unsigned int field
to represent a 32-bit signed value. This caused problems with an
incorrect conversion being applied to negative values when they were
automatically promoted for addition to a 64-bit CORE_ADDR value.
This patch fixes test failures in gdb.base/large-frame.exp and
gdb.dwarf2/dw2-ref-missing-frame.exp. Normally the nios2 backend
prefers to use the dwarf2 unwinder so the prologue analyzer is only
invoked if there is no dwarf2 information.
2019-08-23 Sandra Loosemore <sandra@codesourcery.com>
gdb/
* nios2-tdep.c (struct reg_value): Improve comments. Make
the offset field signed.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ac84245c34..df8488b109 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-23 Sandra Loosemore <sandra@codesourcery.com>
+
+ * nios2-tdep.c (struct reg_value): Improve comments. Make
+ the offset field signed.
+
2019-08-22 Christian Biesinger <cbiesinger@google.com>
* python/lib/gdb/__init__.py (_execute_file): New function.
diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c
index 2a21c33b83..8d685d4aca 100644
--- a/gdb/nios2-tdep.c
+++ b/gdb/nios2-tdep.c
@@ -58,13 +58,15 @@ static int nios2_debug = 0;
analysis; see the reg_value and reg_saved tables in
struct nios2_unwind_cache, respectively. */
-/* struct reg_value is used to record that a register has the same value
- as reg at the given offset from the start of a function. */
+/* struct reg_value is used to record that a register has reg's initial
+ value at the start of a function plus the given constant offset.
+ If reg == 0, then the value is just the offset.
+ If reg < 0, then the value is unknown. */
struct reg_value
{
int reg;
- unsigned int offset;
+ int offset;
};
/* struct reg_saved is used to record that a register value has been saved at
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Move gdb-dlfcn.[ch] to gdbsupport/
@ 2019-08-23 18:28 gdb-buildbot
2019-08-24 0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-23 18:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2d41fa1165c0e28d938ee3bae5c32db371dccf29 ***
commit 2d41fa1165c0e28d938ee3bae5c32db371dccf29
Author: Sergio Durigan Junior <sergiodj@redhat.com>
AuthorDate: Wed Aug 21 16:22:45 2019 -0400
Commit: Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Fri Aug 23 13:13:18 2019 -0400
Move gdb-dlfcn.[ch] to gdbsupport/
I need to use 'gdb_dlopen' inside 'gdbsupport/', but it's not yet
supported there. This commit moves 'gdb-dlfcn.[ch]' to 'gdbsupport/',
which makes it available also on gdbserver.
gdb/ChangeLog:
2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
* configure.ac: Don't check for 'dlfcn.h' (moved to
gdbsupport/common.m4).
* Makefile.in (COMMON_SFILES): Move 'gdb-dlfcn.c' to
'gdbsupport/'.
(HFILES_NO_SRCDIR): Likewise, for 'gdb-dlfcn.h'.
* compile/compile-c-support.c: Include
'gdbsupport/gdb-dlfcn.h'.
* gdbsupport/common.m4: Check for 'dlfcn.h'.
* gdb-dlfcn.c: Move to...
* gdbsupport/gdb-dlfcn.c: ... here.
* gdb-dlfcn.h: Move to...
* gdbsupport/gdb-dlfcn.h: ... here.
gdb/gdbserver/ChangeLog:
2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile.in (SFILES): Add 'gdbsupport/gdb-dlfcn.c'.
(OBS): Add 'gdbsupport/gdb-dlfcn.o'.
* config.in: Regenerate.
* configure: Regenerate.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index df8488b109..1d85249789 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,18 @@
+2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * configure.ac: Don't check for 'dlfcn.h' (moved to
+ gdbsupport/common.m4).
+ * Makefile.in (COMMON_SFILES): Move 'gdb-dlfcn.c' to
+ 'gdbsupport/'.
+ (HFILES_NO_SRCDIR): Likewise, for 'gdb-dlfcn.h'.
+ * compile/compile-c-support.c: Include
+ 'gdbsupport/gdb-dlfcn.h'.
+ * gdbsupport/common.m4: Check for 'dlfcn.h'.
+ * gdb-dlfcn.c: Move to...
+ * gdbsupport/gdb-dlfcn.c: ... here.
+ * gdb-dlfcn.h: Move to...
+ * gdbsupport/gdb-dlfcn.h: ... here.
+
2019-08-23 Sandra Loosemore <sandra@codesourcery.com>
* nios2-tdep.c (struct reg_value): Improve comments. Make
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index d5d095aae4..e7e26a44a0 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -964,6 +964,7 @@ COMMON_SFILES = \
gdbsupport/filestuff.c \
gdbsupport/format.c \
gdbsupport/job-control.c \
+ gdbsupport/gdb-dlfcn.c \
gdbsupport/gdb_tilde_expand.c \
gdbsupport/gdb_vecs.c \
gdbsupport/netstuff.c \
@@ -1028,7 +1029,6 @@ COMMON_SFILES = \
frame-unwind.c \
gcore.c \
gdb_bfd.c \
- gdb-dlfcn.c \
gdb_obstack.c \
gdb_regex.c \
gdb_usleep.c \
@@ -1262,7 +1262,6 @@ HFILES_NO_SRCDIR = \
gcore.h \
gdb_bfd.h \
gdb_curses.h \
- gdb-dlfcn.h \
gdb_expat.h \
gdb_obstack.h \
gdb_proc_service.h \
@@ -1460,6 +1459,7 @@ HFILES_NO_SRCDIR = \
gdbsupport/environ.h \
gdbsupport/fileio.h \
gdbsupport/format.h \
+ gdbsupport/gdb-dlfcn.h \
gdbsupport/gdb_assert.h \
gdbsupport/gdb_tilde_expand.h \
gdbsupport/gdb_locale.h \
diff --git a/gdb/compile/compile-c-support.c b/gdb/compile/compile-c-support.c
index a6727e83af..9de827a72c 100644
--- a/gdb/compile/compile-c-support.c
+++ b/gdb/compile/compile-c-support.c
@@ -22,12 +22,12 @@
#include "compile-c.h"
#include "compile-cplus.h"
#include "compile.h"
-#include "gdb-dlfcn.h"
#include "c-lang.h"
#include "macrotab.h"
#include "macroscope.h"
#include "regcache.h"
#include "gdbsupport/function-view.h"
+#include "gdbsupport/gdb-dlfcn.h"
#include "gdbsupport/preprocessor.h"
#include "gdbarch.h"
diff --git a/gdb/configure b/gdb/configure
index cb71bbf057..22a5f6051d 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -12024,8 +12024,7 @@ for ac_header in nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
sys/reg.h sys/debugreg.h sys/select.h \
- termios.h elf_hp.h \
- dlfcn.h
+ termios.h elf_hp.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"
@@ -13516,7 +13515,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
fi
- for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h
+ for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.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"
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 5a18c16405..9da8818fb5 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1308,8 +1308,7 @@ AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
sys/reg.h sys/debugreg.h sys/select.h \
- termios.h elf_hp.h \
- dlfcn.h])
+ termios.h elf_hp.h])
AC_CHECK_HEADERS(sys/user.h, [], [],
[#if HAVE_SYS_PARAM_H
# include <sys/param.h>
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index adac3e8c8d..faafdfd967 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * Makefile.in (SFILES): Add 'gdbsupport/gdb-dlfcn.c'.
+ (OBS): Add 'gdbsupport/gdb-dlfcn.o'.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
2019-08-15 Tom Tromey <tromey@adacore.com>
* target.c (target_write_memory): Use gdb::byte_vector.
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index ba0356b1d5..ca0a4cbd10 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -210,6 +210,7 @@ SFILES = \
$(srcdir)/gdbsupport/fileio.c \
$(srcdir)/gdbsupport/filestuff.c \
$(srcdir)/gdbsupport/job-control.c \
+ $(srcdir)/gdbsupport/gdb-dlfcn.c \
$(srcdir)/gdbsupport/gdb_tilde_expand.c \
$(srcdir)/gdbsupport/gdb_vecs.c \
$(srcdir)/gdbsupport/netstuff.c \
@@ -255,6 +256,7 @@ OBS = \
gdbsupport/fileio.o \
gdbsupport/filestuff.o \
gdbsupport/format.o \
+ gdbsupport/gdb-dlfcn.o \
gdbsupport/gdb_tilde_expand.o \
gdbsupport/gdb_vecs.o \
gdbsupport/netstuff.o \
diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in
index 3991964f9b..f05e9be48a 100644
--- a/gdb/gdbserver/config.in
+++ b/gdb/gdbserver/config.in
@@ -90,6 +90,9 @@
/* Define to 1 if you have the `dladdr' function. */
#undef HAVE_DLADDR
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
/* Define to 1 if the system has the type `Elf32_auxv_t'. */
#undef HAVE_ELF32_AUXV_T
diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
index 7e5be51cb2..692cb0f308 100755
--- a/gdb/gdbserver/configure
+++ b/gdb/gdbserver/configure
@@ -6807,7 +6807,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
fi
- for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h
+ for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.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"
diff --git a/gdb/gdbsupport/common.m4 b/gdb/gdbsupport/common.m4
index 5701dd9829..903889463f 100644
--- a/gdb/gdbsupport/common.m4
+++ b/gdb/gdbsupport/common.m4
@@ -29,7 +29,8 @@ AC_DEFUN([GDB_AC_COMMON], [
sys/resource.h sys/socket.h dnl
sys/un.h sys/wait.h dnl
thread_db.h wait.h dnl
- termios.h)
+ termios.h dnl
+ dlfcn.h)
AC_CHECK_FUNCS([fdwalk getrlimit pipe pipe2 socketpair sigaction])
diff --git a/gdb/gdb-dlfcn.c b/gdb/gdbsupport/gdb-dlfcn.c
similarity index 99%
rename from gdb/gdb-dlfcn.c
rename to gdb/gdbsupport/gdb-dlfcn.c
index 4d060d4eb1..921f10f3d8 100644
--- a/gdb/gdb-dlfcn.c
+++ b/gdb/gdbsupport/gdb-dlfcn.c
@@ -17,7 +17,7 @@
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 "common-defs.h"
#include "gdb-dlfcn.h"
#ifdef HAVE_DLFCN_H
diff --git a/gdb/gdb-dlfcn.h b/gdb/gdbsupport/gdb-dlfcn.h
similarity index 100%
rename from gdb/gdb-dlfcn.h
rename to gdb/gdbsupport/gdb-dlfcn.h
diff --git a/gdb/jit.c b/gdb/jit.c
index 87f8d8f885..5fef03700c 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -36,7 +36,7 @@
#include "symfile.h"
#include "symtab.h"
#include "target.h"
-#include "gdb-dlfcn.h"
+#include "gdbsupport/gdb-dlfcn.h"
#include <sys/stat.h>
#include "gdb_bfd.h"
#include "readline/tilde.h"
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PowerPC64 segfault in ppc64_elf_edit_toc
@ 2019-08-24 1:17 gdb-buildbot
2019-08-24 22:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-24 1:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6d5554a605a8ce908ba04b00fd960d02ca9fc613 ***
commit 6d5554a605a8ce908ba04b00fd960d02ca9fc613
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Sat Aug 24 09:59:03 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Sat Aug 24 10:05:40 2019 +0930
PowerPC64 segfault in ppc64_elf_edit_toc
Found on a GOT reference to __ehdr_start, which is tweaked to be
undefined weak at some stages of linking. SYMBOL_REFERENCES_LOCAL
isn't a sufficient test.
* elf64-ppc.c (ppc64_elf_edit_toc): Exclude undefined weak
symbols from GOT optimisation.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 981e0cd4e9..9f7a8cfc6a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-24 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_edit_toc): Exclude undefined weak
+ symbols from GOT optimisation.
+
2019-08-23 Stafford Horne <shorne@gmail.com>
* elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 60918d91a1..4eba829450 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -9112,6 +9112,11 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
r_symndx, ibfd))
goto got_error_ret;
+ if (sym_sec == NULL
+ || sym_sec->output_section == NULL
+ || discarded_section (sym_sec))
+ continue;
+
if (!SYMBOL_REFERENCES_LOCAL (info, h))
continue;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix compile warning in symtab.c
@ 2019-08-24 22:23 gdb-buildbot
2019-08-25 9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-24 22:23 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d0509ba44323dc5550852f0dbdcb2ccc2818d5b3 ***
commit d0509ba44323dc5550852f0dbdcb2ccc2818d5b3
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Aug 9 14:25:15 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Sat Aug 24 16:45:59 2019 -0500
Fix compile warning in symtab.c
My compiler (g++ 8.2) can't tell that *bsc_ptr and *slot_ptr are
only used in the cases when it does get initialized. Just initialize
the vars earlier to avoid the warning, there does not seem to be a
downside to it.
../../gdb/symtab.c: In function block_symbol lookup_static_symbol(const char*, domain_enum):
../../gdb/symtab.c:1366:11: warning: slot may be used uninitialized in this function [-Wmaybe-uninitialized]
xfree (slot->value.not_found.name);
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../gdb/symtab.c:2578:29: note: slot was declared here
struct symbol_cache_slot *slot;
^~~~
../../gdb/symtab.c:1405:3: warning: bsc may be used uninitialized in this function [-Wmaybe-uninitialized]
if (bsc == NULL)
^~
../../gdb/symtab.c:2577:30: note: bsc was declared here
struct block_symbol_cache *bsc;
^~~
../../gdb/symtab.c: In function block_symbol lookup_global_symbol(const char*, const block*, domain_enum):
../../gdb/symtab.c:1366:11: warning: slot may be used uninitialized in this function [-Wmaybe-uninitialized]
xfree (slot->value.not_found.name);
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../gdb/symtab.c:2658:29: note: slot was declared here
struct symbol_cache_slot *slot;
^~~~
../../gdb/symtab.c:1409:14: warning: bsc may be used uninitialized in this function [-Wmaybe-uninitialized]
++bsc->collisions;
~~~~~^~~~~~~~~~
../../gdb/symtab.c:2657:30: note: bsc was declared here
struct block_symbol_cache *bsc;
^~~
gdb/ChangeLog:
2019-08-22 Christian Biesinger <cbiesinger@google.com>
* symtab.c (symbol_cache_lookup): Always initialize *bsc_ptr and *slot_ptr.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1d85249789..073ed74b4f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-22 Christian Biesinger <cbiesinger@google.com>
+
+ * symtab.c (symbol_cache_lookup): Always initialize *bsc_ptr and
+ *slot_ptr.
+
2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
* configure.ac: Don't check for 'dlfcn.h' (moved to
diff --git a/gdb/symtab.c b/gdb/symtab.c
index cd208ab921..d85c77b4ce 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1297,9 +1297,8 @@ set_symbol_cache_size_handler (const char *args, int from_tty,
The result is the symbol if found, SYMBOL_LOOKUP_FAILED if a previous lookup
failed (and thus this one will too), or NULL if the symbol is not present
in the cache.
- If the symbol is not present in the cache, then *BSC_PTR and *SLOT_PTR are
- set to the cache and slot of the symbol to save the result of a full lookup
- attempt. */
+ *BSC_PTR and *SLOT_PTR are set to the cache and slot of the symbol, which
+ can be used to save the result of a full lookup attempt. */
static struct block_symbol
symbol_cache_lookup (struct symbol_cache *cache,
@@ -1326,6 +1325,9 @@ symbol_cache_lookup (struct symbol_cache *cache,
hash = hash_symbol_entry (objfile_context, name, domain);
slot = bsc->symbols + hash % bsc->size;
+ *bsc_ptr = bsc;
+ *slot_ptr = slot;
+
if (eq_symbol_entry (slot, objfile_context, name, domain))
{
if (symbol_lookup_debug)
@@ -1343,9 +1345,6 @@ symbol_cache_lookup (struct symbol_cache *cache,
/* Symbol is not present in the cache. */
- *bsc_ptr = bsc;
- *slot_ptr = slot;
-
if (symbol_lookup_debug)
{
fprintf_unfiltered (gdb_stdlog,
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Convert the RX target to make use of target descriptions.
@ 2019-08-25 11:38 gdb-buildbot
2019-08-25 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-25 11:38 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e3ec872f8012377e50f0c9c888d2bc3163a356b2 ***
commit e3ec872f8012377e50f0c9c888d2bc3163a356b2
Author: Yoshinori Sato <ysato@users.sourceforge.jp>
AuthorDate: Wed Aug 21 00:24:37 2019 +0900
Commit: Yoshinori Sato <ysato@users.sourceforge.jp>
CommitDate: Sun Aug 25 17:00:08 2019 +0900
Convert the RX target to make use of target descriptions.
gdb/ChangeLog
2019-08-25 Yoshinori Sato <ysato@users.sourceforge.jp>
* gdb/rx-tdep.c (rx_register_names): New.
(rx_register_name): Delete.
(rx_psw_type): Delete.
(rx_fpsw_type): Delete.
(rx_register_type): Delete.
(rx_gdbarch_init): Convert target-descriptions.
(_initialize_rx_tdep): Add initialize_tdesc_rx.
* gdb/features/Makefile: Add rx.xml.
* gdb/features/rx.xml: New.
* gdb/features/rx.c: Generated.
* gdb/NEWS: Mention target description support.
gdb/doc/ChangeLog:
2019-08-25 Yoshinori Sato <ysato@users.sourceforge.jp>
* gdb.texinfo (Standard Target Features): Add RX Features sub-section.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 073ed74b4f..cbb83347f1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2019-08-25 Yoshinori Sato <ysato@users.sourceforge.jp>
+
+ * gdb/rx-tdep.c (rx_register_names): New.
+ (rx_register_name): Delete.
+ (rx_psw_type): Delete.
+ (rx_fpsw_type): Delete.
+ (rx_register_type): Delete.
+ (rx_gdbarch_init): Convert target-descriptions.
+ (_initialize_rx_tdep): Add initialize_tdesc_rx.
+ * gdb/features/Makefile: Add rx.xml.
+ * gdb/features/rx.xml: New.
+ * gdb/features/rx.c: Generated.
+ * gdb/NEWS: Mention target description support.
+
2019-08-22 Christian Biesinger <cbiesinger@google.com>
* symtab.c (symbol_cache_lookup): Always initialize *bsc_ptr and
diff --git a/gdb/NEWS b/gdb/NEWS
index 0a4e0f260f..0d78237085 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -27,6 +27,8 @@
provide the exitcode or exit status of the shell commands launched by
GDB commands such as "shell", "pipe" and "make".
+* The RX port now supports XML target descriptions.
+
* Python API
** The gdb.Value type has a new method 'format_string' which returns a
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 339f3375e0..7fa73fb40f 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-25 Yoshinori Sato <ysato@users.sourceforge.jp>
+
+ * gdb.texinfo (Standard Target Features): Add RX Features sub-section.
+
2019-08-16 Alan Hayward <alan.hayward@arm.com>
* gdb.texinfo (AArch64 Pointer Authentication)
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index bcf0420779..e1bc8143e6 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -44084,6 +44084,7 @@ registers using the capitalization used in the description.
* OpenRISC 1000 Features::
* PowerPC Features::
* RISC-V Features::
+* RX Features::
* S/390 and System z Features::
* Sparc Features::
* TIC6x Features::
@@ -44514,6 +44515,15 @@ target has floating point hardware, but can be moved into the csr
feature if the target has the floating point control registers, but no
other floating point hardware.
+@node RX Features
+@subsection RX Features
+@cindex target descriptions, RX Features
+
+The @samp{org.gnu.gdb.rx.core} feature is required for RX
+targets. It should contain the registers @samp{r0} through
+@samp{r15}, @samp{usp}, @samp{isp}, @samp{psw}, @samp{pc}, @samp{intb},
+@samp{bpsw}, @samp{bpc}, @samp{fintv}, @samp{fpsw}, and @samp{acc}.
+
@node S/390 and System z Features
@subsection S/390 and System z Features
@cindex target descriptions, S/390 features
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 0c84faf405..2b65d46df0 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -161,6 +161,7 @@ XMLTOC = \
rs6000/powerpc-vsx64.xml \
rs6000/powerpc-vsx64l.xml \
rs6000/rs6000.xml \
+ rx.xml \
s390-linux32.xml \
s390-linux32v1.xml \
s390-linux32v2.xml \
@@ -238,6 +239,7 @@ FEATURE_XMLFILES = aarch64-core.xml \
riscv/64bit-cpu.xml \
riscv/64bit-csr.xml \
riscv/64bit-fpu.xml \
+ rx.xml \
tic6x-c6xp.xml \
tic6x-core.xml \
tic6x-gp.xml
diff --git a/gdb/features/rx.c b/gdb/features/rx.c
new file mode 100644
index 0000000000..d2c29c126f
--- /dev/null
+++ b/gdb/features/rx.c
@@ -0,0 +1,80 @@
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
+ Original: rx.xml.tmp */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_rx;
+static void
+initialize_tdesc_rx (void)
+{
+ struct target_desc *result = allocate_target_description ();
+ struct tdesc_feature *feature;
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.rx.core");
+ tdesc_type_with_fields *type_with_fields;
+ type_with_fields = tdesc_create_flags (feature, "psw_flags", 4);
+ tdesc_add_flag (type_with_fields, 0, "C");
+ tdesc_add_flag (type_with_fields, 1, "Z");
+ tdesc_add_flag (type_with_fields, 2, "S");
+ tdesc_add_flag (type_with_fields, 3, "O");
+ tdesc_add_flag (type_with_fields, 16, "I");
+ tdesc_add_flag (type_with_fields, 17, "U");
+ tdesc_add_flag (type_with_fields, 20, "PM");
+ tdesc_add_flag (type_with_fields, 24, "IPL0");
+ tdesc_add_flag (type_with_fields, 25, "IPL1");
+ tdesc_add_flag (type_with_fields, 26, "IPL2");
+ tdesc_add_flag (type_with_fields, 27, "IPL3");
+
+ type_with_fields = tdesc_create_flags (feature, "fpsw_flags", 4);
+ tdesc_add_flag (type_with_fields, 0, "RM0");
+ tdesc_add_flag (type_with_fields, 1, "RM1");
+ tdesc_add_flag (type_with_fields, 2, "CV");
+ tdesc_add_flag (type_with_fields, 3, "CO");
+ tdesc_add_flag (type_with_fields, 4, "CZ");
+ tdesc_add_flag (type_with_fields, 5, "CU");
+ tdesc_add_flag (type_with_fields, 6, "CX");
+ tdesc_add_flag (type_with_fields, 7, "CE");
+ tdesc_add_flag (type_with_fields, 8, "DN");
+ tdesc_add_flag (type_with_fields, 10, "EV");
+ tdesc_add_flag (type_with_fields, 11, "EO");
+ tdesc_add_flag (type_with_fields, 12, "EZ");
+ tdesc_add_flag (type_with_fields, 13, "EU");
+ tdesc_add_flag (type_with_fields, 14, "EX");
+ tdesc_add_flag (type_with_fields, 26, "FV");
+ tdesc_add_flag (type_with_fields, 27, "FO");
+ tdesc_add_flag (type_with_fields, 28, "FZ");
+ tdesc_add_flag (type_with_fields, 29, "FU");
+ tdesc_add_flag (type_with_fields, 30, "FX");
+ tdesc_add_flag (type_with_fields, 31, "FS");
+
+ tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "data_ptr");
+ 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, "usp", 16, 1, NULL, 32, "data_ptr");
+ tdesc_create_reg (feature, "isp", 17, 1, NULL, 32, "data_ptr");
+ tdesc_create_reg (feature, "psw", 18, 1, NULL, 32, "psw_flags");
+ tdesc_create_reg (feature, "pc", 19, 1, NULL, 32, "code_ptr");
+ tdesc_create_reg (feature, "intb", 20, 1, NULL, 32, "data_ptr");
+ tdesc_create_reg (feature, "bpsw", 21, 1, NULL, 32, "psw_flags");
+ tdesc_create_reg (feature, "bpc", 22, 1, NULL, 32, "code_ptr");
+ tdesc_create_reg (feature, "fintv", 23, 1, NULL, 32, "code_ptr");
+ tdesc_create_reg (feature, "fpsw", 24, 1, NULL, 32, "fpsw_flags");
+ tdesc_create_reg (feature, "acc", 25, 1, NULL, 64, "uint64");
+
+ tdesc_rx = result;
+}
diff --git a/gdb/features/rx.xml b/gdb/features/rx.xml
new file mode 100644
index 0000000000..597f92974b
--- /dev/null
+++ b/gdb/features/rx.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 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. -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.rx.core">
+ <reg name="r0" bitsize="32" type="data_ptr"/>
+ <reg name="r1" bitsize="32" type="uint32"/>
+ <reg name="r2" bitsize="32" type="uint32"/>
+ <reg name="r3" bitsize="32" type="uint32"/>
+ <reg name="r4" bitsize="32" type="uint32"/>
+ <reg name="r5" bitsize="32" type="uint32"/>
+ <reg name="r6" bitsize="32" type="uint32"/>
+ <reg name="r7" bitsize="32" type="uint32"/>
+ <reg name="r8" bitsize="32" type="uint32"/>
+ <reg name="r9" bitsize="32" type="uint32"/>
+ <reg name="r10" bitsize="32" type="uint32"/>
+ <reg name="r11" bitsize="32" type="uint32"/>
+ <reg name="r12" bitsize="32" type="uint32"/>
+ <reg name="r13" bitsize="32" type="uint32"/>
+ <reg name="r14" bitsize="32" type="uint32"/>
+ <reg name="r15" bitsize="32" type="uint32"/>
+
+ <flags id="psw_flags" size="4">
+ <field name="C" start="0" end="0"/>
+ <field name="Z" start="1" end="1"/>
+ <field name="S" start="2" end="2"/>
+ <field name="O" start="3" end="3"/>
+ <field name="I" start="16" end="16"/>
+ <field name="U" start="17" end="17"/>
+ <field name="PM" start="20" end="20"/>
+ <field name="IPL0" start="24" end="24"/>
+ <field name="IPL1" start="25" end="25"/>
+ <field name="IPL2" start="26" end="26"/>
+ <field name="IPL3" start="27" end="27"/>
+ </flags>
+
+ <flags id="fpsw_flags" size="4">
+ <field name="RM0" start="0" end="0"/>
+ <field name="RM1" start="1" end="1"/>
+ <field name="CV" start="2" end="2"/>
+ <field name="CO" start="3" end="3"/>
+ <field name="CZ" start="4" end="4"/>
+ <field name="CU" start="5" end="5"/>
+ <field name="CX" start="6" end="6"/>
+ <field name="CE" start="7" end="7"/>
+ <field name="DN" start="8" end="8"/>
+ <field name="EV" start="10" end="10"/>
+ <field name="EO" start="11" end="11"/>
+ <field name="EZ" start="12" end="12"/>
+ <field name="EU" start="13" end="13"/>
+ <field name="EX" start="14" end="14"/>
+ <field name="FV" start="26" end="26"/>
+ <field name="FO" start="27" end="27"/>
+ <field name="FZ" start="28" end="28"/>
+ <field name="FU" start="29" end="29"/>
+ <field name="FX" start="30" end="30"/>
+ <field name="FS" start="31" end="31"/>
+ </flags>
+
+ <reg name="usp" bitsize="32" type="data_ptr"/>
+ <reg name="isp" bitsize="32" type="data_ptr"/>
+ <reg name="psw" bitsize="32" type="psw_flags"/>
+ <reg name="pc" bitsize="32" type="code_ptr"/>
+ <reg name="intb" bitsize="32" type="data_ptr"/>
+ <reg name="bpsw" bitsize="32" type="psw_flags"/>
+ <reg name="bpc" bitsize="32" type="code_ptr"/>
+ <reg name="fintv" bitsize="32" type="code_ptr"/>
+ <reg name="fpsw" bitsize="32" type="fpsw_flags"/>
+ <reg name="acc" bitsize="64" type="uint64"/>
+</feature>
diff --git a/gdb/rx-tdep.c b/gdb/rx-tdep.c
index 4cbf919db9..45cc8b4535 100644
--- a/gdb/rx-tdep.c
+++ b/gdb/rx-tdep.c
@@ -33,11 +33,15 @@
#include "value.h"
#include "gdbcore.h"
#include "dwarf2-frame.h"
+#include "remote.h"
+#include "target-descriptions.h"
#include "elf/rx.h"
#include "elf-bfd.h"
#include <algorithm>
+#include "features/rx.c"
+
/* Certain important register numbers. */
enum
{
@@ -114,117 +118,13 @@ struct rx_prologue
int reg_offset[RX_NUM_REGS];
};
-/* Implement the "register_name" gdbarch method. */
-static const char *
-rx_register_name (struct gdbarch *gdbarch, int regnr)
-{
- static const char *const reg_names[] = {
- "r0",
- "r1",
- "r2",
- "r3",
- "r4",
- "r5",
- "r6",
- "r7",
- "r8",
- "r9",
- "r10",
- "r11",
- "r12",
- "r13",
- "r14",
- "r15",
- "usp",
- "isp",
- "psw",
- "pc",
- "intb",
- "bpsw",
- "bpc",
- "fintv",
- "fpsw",
- "acc"
- };
-
- return reg_names[regnr];
-}
-
-/* Construct the flags type for PSW and BPSW. */
-
-static struct type *
-rx_psw_type (struct gdbarch *gdbarch)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
- if (tdep->rx_psw_type == NULL)
- {
- tdep->rx_psw_type = arch_flags_type (gdbarch, "rx_psw_type", 32);
- append_flags_type_flag (tdep->rx_psw_type, 0, "C");
- append_flags_type_flag (tdep->rx_psw_type, 1, "Z");
- append_flags_type_flag (tdep->rx_psw_type, 2, "S");
- append_flags_type_flag (tdep->rx_psw_type, 3, "O");
- append_flags_type_flag (tdep->rx_psw_type, 16, "I");
- append_flags_type_flag (tdep->rx_psw_type, 17, "U");
- append_flags_type_flag (tdep->rx_psw_type, 20, "PM");
- append_flags_type_flag (tdep->rx_psw_type, 24, "IPL0");
- append_flags_type_flag (tdep->rx_psw_type, 25, "IPL1");
- append_flags_type_flag (tdep->rx_psw_type, 26, "IPL2");
- append_flags_type_flag (tdep->rx_psw_type, 27, "IPL3");
- }
- return tdep->rx_psw_type;
-}
-
-/* Construct flags type for FPSW. */
-
-static struct type *
-rx_fpsw_type (struct gdbarch *gdbarch)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
- if (tdep->rx_fpsw_type == NULL)
- {
- tdep->rx_fpsw_type = arch_flags_type (gdbarch, "rx_fpsw_type", 32);
- append_flags_type_flag (tdep->rx_fpsw_type, 0, "RM0");
- append_flags_type_flag (tdep->rx_fpsw_type, 1, "RM1");
- append_flags_type_flag (tdep->rx_fpsw_type, 2, "CV");
- append_flags_type_flag (tdep->rx_fpsw_type, 3, "CO");
- append_flags_type_flag (tdep->rx_fpsw_type, 4, "CZ");
- append_flags_type_flag (tdep->rx_fpsw_type, 5, "CU");
- append_flags_type_flag (tdep->rx_fpsw_type, 6, "CX");
- append_flags_type_flag (tdep->rx_fpsw_type, 7, "CE");
- append_flags_type_flag (tdep->rx_fpsw_type, 8, "DN");
- append_flags_type_flag (tdep->rx_fpsw_type, 10, "EV");
- append_flags_type_flag (tdep->rx_fpsw_type, 11, "EO");
- append_flags_type_flag (tdep->rx_fpsw_type, 12, "EZ");
- append_flags_type_flag (tdep->rx_fpsw_type, 13, "EU");
- append_flags_type_flag (tdep->rx_fpsw_type, 14, "EX");
- append_flags_type_flag (tdep->rx_fpsw_type, 26, "FV");
- append_flags_type_flag (tdep->rx_fpsw_type, 27, "FO");
- append_flags_type_flag (tdep->rx_fpsw_type, 28, "FZ");
- append_flags_type_flag (tdep->rx_fpsw_type, 29, "FU");
- append_flags_type_flag (tdep->rx_fpsw_type, 30, "FX");
- append_flags_type_flag (tdep->rx_fpsw_type, 31, "FS");
- }
-
- return tdep->rx_fpsw_type;
-}
-
-/* Implement the "register_type" gdbarch method. */
-static struct type *
-rx_register_type (struct gdbarch *gdbarch, int reg_nr)
-{
- if (reg_nr == RX_PC_REGNUM)
- return builtin_type (gdbarch)->builtin_func_ptr;
- else if (reg_nr == RX_PSW_REGNUM || reg_nr == RX_BPSW_REGNUM)
- return rx_psw_type (gdbarch);
- else if (reg_nr == RX_FPSW_REGNUM)
- return rx_fpsw_type (gdbarch);
- else if (reg_nr == RX_ACC_REGNUM)
- return builtin_type (gdbarch)->builtin_unsigned_long_long;
- else
- return builtin_type (gdbarch)->builtin_unsigned_long;
-}
+/* RX register names */
+static const char *const rx_register_names[] = {
+ "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
+ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
+ "usp", "isp", "psw", "pc", "intb", "bpsw","bpc","fintv",
+ "fpsw", "acc",
+};
/* Function for finding saved registers in a 'struct pv_area'; this
@@ -1044,6 +944,8 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
struct gdbarch *gdbarch;
struct gdbarch_tdep *tdep;
int elf_flags;
+ struct tdesc_arch_data *tdesc_data = NULL;
+ const struct target_desc *tdesc = info.target_desc;
/* Extract the elf_flags if available. */
if (info.abfd != NULL
@@ -1065,16 +967,42 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
return arches->gdbarch;
}
- /* None found, create a new architecture from the information
- provided. */
+ if (tdesc == NULL)
+ tdesc = tdesc_rx;
+
+ /* Check any target description for validity. */
+ if (tdesc_has_registers (tdesc))
+ {
+ const struct tdesc_feature *feature;
+ bool valid_p = true;
+
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.rx.core");
+
+ if (feature != NULL)
+ {
+ tdesc_data = tdesc_data_alloc ();
+ for (int i = 0; i < RX_NUM_REGS; i++)
+ valid_p &= tdesc_numbered_register (feature, tdesc_data, i,
+ rx_register_names[i]);
+ }
+
+ if (!valid_p)
+ {
+ tdesc_data_cleanup (tdesc_data);
+ return NULL;
+ }
+ }
+
+ gdb_assert(tdesc_data != NULL);
+
tdep = XCNEW (struct gdbarch_tdep);
gdbarch = gdbarch_alloc (&info, tdep);
tdep->elf_flags = elf_flags;
set_gdbarch_num_regs (gdbarch, RX_NUM_REGS);
+ tdesc_use_registers (gdbarch, tdesc, tdesc_data);
+
set_gdbarch_num_pseudo_regs (gdbarch, 0);
- set_gdbarch_register_name (gdbarch, rx_register_name);
- set_gdbarch_register_type (gdbarch, rx_register_type);
set_gdbarch_pc_regnum (gdbarch, RX_PC_REGNUM);
set_gdbarch_sp_regnum (gdbarch, RX_SP_REGNUM);
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
@@ -1092,6 +1020,7 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_ptr_bit (gdbarch, 32);
set_gdbarch_float_bit (gdbarch, 32);
set_gdbarch_float_format (gdbarch, floatformats_ieee_single);
+
if (elf_flags & E_FLAG_RX_64BIT_DOUBLES)
{
set_gdbarch_double_bit (gdbarch, 64);
@@ -1132,4 +1061,5 @@ void
_initialize_rx_tdep (void)
{
register_gdbarch_init (bfd_arch_rx, rx_gdbarch_init);
+ initialize_tdesc_rx ();
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] dwarf2read: replace gdb::optional<bool> with enum
@ 2019-08-25 23:11 gdb-buildbot
2019-08-26 2:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-25 23:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT beadd3e84ed8e652015f07eb4734a6d3b17e79cb ***
commit beadd3e84ed8e652015f07eb4734a6d3b17e79cb
Author: Simon Marchi <simon.marchi@efficios.com>
AuthorDate: Sun Aug 25 18:09:47 2019 -0400
Commit: Simon Marchi <simon.marchi@efficios.com>
CommitDate: Sun Aug 25 18:09:47 2019 -0400
dwarf2read: replace gdb::optional<bool> with enum
gdb::optional<bool> is dangerous, because it's easy to do:
if (opt_bool)
when you actually meant
if (*opt_bool)
or vice-versa. The first checks if the optional is set, the second
checks if the wrapped bool is true.
Replace it with an enum that explicitly defines the three possible
states.
gdb/ChangeLog:
* dwarf2read.c (dw2_debug_names_iterator::next): Use enum to
represent whether the symbol is static, dynamic, or we don't
know.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cbb83347f1..5f64ca6d4a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-25 Simon Marchi <simon.marchi@efficios.com>
+
+ * dwarf2read.c (dw2_debug_names_iterator::next): Use enum to
+ represent whether the symbol is static, dynamic, or we don't
+ know.
+
2019-08-25 Yoshinori Sato <ysato@users.sourceforge.jp>
* gdb/rx-tdep.c (rx_register_names): New.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index de9755f6ce..a0b989fd0c 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -5843,7 +5843,11 @@ dw2_debug_names_iterator::next ()
return NULL;
}
const mapped_debug_names::index_val &indexval = indexval_it->second;
- gdb::optional<bool> is_static;
+ enum class symbol_linkage {
+ unknown,
+ static_,
+ extern_,
+ } symbol_linkage = symbol_linkage::unknown;
dwarf2_per_cu_data *per_cu = NULL;
for (const mapped_debug_names::index_val::attr &attr : indexval.attr_vec)
{
@@ -5895,12 +5899,12 @@ dw2_debug_names_iterator::next ()
case DW_IDX_GNU_internal:
if (!m_map.augmentation_is_gdb)
break;
- is_static = true;
+ symbol_linkage = symbol_linkage::static_;
break;
case DW_IDX_GNU_external:
if (!m_map.augmentation_is_gdb)
break;
- is_static = false;
+ symbol_linkage = symbol_linkage::extern_;
break;
}
}
@@ -5910,10 +5914,11 @@ dw2_debug_names_iterator::next ()
goto again;
/* Check static vs global. */
- if (is_static.has_value () && m_block_index.has_value ())
+ if (symbol_linkage != symbol_linkage::unknown && m_block_index.has_value ())
{
const bool want_static = *m_block_index == STATIC_BLOCK;
- if (want_static != *is_static)
+ const bool symbol_is_static = symbol_linkage == symbol_linkage::static_;
+ if (want_static != symbol_is_static)
goto again;
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] dwarf2read: fix compilation issue with gcc 4.8
@ 2019-08-26 2:14 gdb-buildbot
2019-08-26 13:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-26 2:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 23c13d42999cdcf9d224f089891fd3f3c8bdc6aa ***
commit 23c13d42999cdcf9d224f089891fd3f3c8bdc6aa
Author: Simon Marchi <simon.marchi@efficios.com>
AuthorDate: Sun Aug 25 21:30:02 2019 -0400
Commit: Simon Marchi <simon.marchi@efficios.com>
CommitDate: Sun Aug 25 21:30:12 2019 -0400
dwarf2read: fix compilation issue with gcc 4.8
gcc 4.8 (and probably other versions too) doesn't like that the local
variable symbol_linkage has the same name as the enum class defined in
the same context:
CXX dwarf2read.o
/home/smarchi/src/binutils-gdb/gdb/dwarf2read.c: In member function dwarf2_per_cu_data* dw2_debug_names_iterator::next():
/home/smarchi/src/binutils-gdb/gdb/dwarf2read.c:5850:22: error: symbol_linkage is not a class, namespace, or enumeration
} symbol_linkage = symbol_linkage::unknown;
^
Rename the local variable to avoid this.
This problem was originally reported with the Netbsd builder on the
buildbot, which uses gcc 5.5, I believe. I am not able to test it on
that builder right now, but chances are that the fix will work there
too.
gdb/ChangeLog:
* dwarf2read.c (dw2_debug_names_iterator::next): Rename local
variable symbol_linkage to symbol_linkage_.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5f64ca6d4a..d4b1e539c3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-25 Simon Marchi <simon.marchi@efficios.com>
+
+ * dwarf2read.c (dw2_debug_names_iterator::next): Rename local
+ variable symbol_linkage to symbol_linkage_.
+
2019-08-25 Simon Marchi <simon.marchi@efficios.com>
* dwarf2read.c (dw2_debug_names_iterator::next): Use enum to
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a0b989fd0c..af4af195a0 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -5847,7 +5847,7 @@ dw2_debug_names_iterator::next ()
unknown,
static_,
extern_,
- } symbol_linkage = symbol_linkage::unknown;
+ } symbol_linkage_ = symbol_linkage::unknown;
dwarf2_per_cu_data *per_cu = NULL;
for (const mapped_debug_names::index_val::attr &attr : indexval.attr_vec)
{
@@ -5899,12 +5899,12 @@ dw2_debug_names_iterator::next ()
case DW_IDX_GNU_internal:
if (!m_map.augmentation_is_gdb)
break;
- symbol_linkage = symbol_linkage::static_;
+ symbol_linkage_ = symbol_linkage::static_;
break;
case DW_IDX_GNU_external:
if (!m_map.augmentation_is_gdb)
break;
- symbol_linkage = symbol_linkage::extern_;
+ symbol_linkage_ = symbol_linkage::extern_;
break;
}
}
@@ -5914,10 +5914,11 @@ dw2_debug_names_iterator::next ()
goto again;
/* Check static vs global. */
- if (symbol_linkage != symbol_linkage::unknown && m_block_index.has_value ())
+ if (symbol_linkage_ != symbol_linkage::unknown && m_block_index.has_value ())
{
const bool want_static = *m_block_index == STATIC_BLOCK;
- const bool symbol_is_static = symbol_linkage == symbol_linkage::static_;
+ const bool symbol_is_static =
+ symbol_linkage_ == symbol_linkage::static_;
if (want_static != symbol_is_static)
goto again;
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use raw strings on gdb.python/py-xmethods.exp (and fix Python 3.8's "SyntaxWarning: invalid escape sequence")
@ 2019-08-26 13:56 gdb-buildbot
2019-08-26 17:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-26 13:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d9c4ba536c522b8dc2194d4100270a159be7894a ***
commit d9c4ba536c522b8dc2194d4100270a159be7894a
Author: Sergio Durigan Junior <sergiodj@redhat.com>
AuthorDate: Sun Aug 25 12:10:35 2019 -0400
Commit: Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Mon Aug 26 09:18:37 2019 -0400
Use raw strings on gdb.python/py-xmethods.exp (and fix Python 3.8's "SyntaxWarning: invalid escape sequence")
The way unrecognized escape sequences are handled has changed in
Python 3.8: users now see a SyntaxWarning message, which will
eventually become a SyntaxError in future versions of Python:
(gdb) source /blabla/gdb.python/py-xmethods/py-xmethods.py
/blabla/gdb.python/py-xmethods/py-xmethods.py:204: SyntaxWarning: invalid escape seque
nce \+
'operator\+',
/blabla/gdb.python/py-xmethods/py-xmethods.py:211: SyntaxWarning: invalid escape seque
nce \+
'operator\+\+',
One of our testcases, gdb.python/py-xmethods.exp, contains strings in
the form of "operator\+". This is not recognized by Python, but is
still needed by the testsuite to work properly. The solution is
simple: we just have to make sure these strings are marked as
raw (i.e, r""). This is what this patch does. I took the opportunity
to also convert other strings to raw, which, in two cases, allowed the
removal of an extra backslash.
I tested this using Python 3.7 and Python 3.8, and everything works
fine.
I think I could push this as obvious, but decided to send it to
gdb-patches just in case.
gdb/testsuite/ChangeLog:
2019-08-26 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.python/py-xmethods.exp: Use raw strings when passing
arguments to SimpleXMethodMatcher.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 639bea20e7..e8445f8e88 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-26 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * gdb.python/py-xmethods.exp: Use raw strings when passing
+ arguments to SimpleXMethodMatcher.
+
2019-08-22 Tom de Vries <tdevries@suse.de>
* gdb.multi/multi-term-settings.exp (coretest): Make gdb_test messages
diff --git a/gdb/testsuite/gdb.python/py-xmethods.py b/gdb/testsuite/gdb.python/py-xmethods.py
index 587842d736..cea48b80d8 100644
--- a/gdb/testsuite/gdb.python/py-xmethods.py
+++ b/gdb/testsuite/gdb.python/py-xmethods.py
@@ -199,34 +199,34 @@ class G_methods_matcher(XMethodMatcher):
global_dm_list = [
- SimpleXMethodMatcher('A_plus_A',
- '^dop::A$',
- 'operator\+',
+ SimpleXMethodMatcher(r'A_plus_A',
+ r'^dop::A$',
+ r'operator\+',
A_plus_A,
# This is a replacement, hence match the arg type
# exactly!
type_A.const().reference()),
- SimpleXMethodMatcher('plus_plus_A',
- '^dop::A$',
- 'operator\+\+',
+ SimpleXMethodMatcher(r'plus_plus_A',
+ r'^dop::A$',
+ r'operator\+\+',
plus_plus_A),
- SimpleXMethodMatcher('A_geta',
- '^dop::A$',
- '^geta$',
+ SimpleXMethodMatcher(r'A_geta',
+ r'^dop::A$',
+ r'^geta$',
A_geta),
- SimpleXMethodMatcher('A_getarrayind',
- '^dop::A$',
- '^getarrayind$',
+ SimpleXMethodMatcher(r'A_getarrayind',
+ r'^dop::A$',
+ r'^getarrayind$',
A_getarrayind,
type_int),
- SimpleXMethodMatcher('A_indexoper',
- '^dop::A$',
- 'operator\\[\\]',
+ SimpleXMethodMatcher(r'A_indexoper',
+ r'^dop::A$',
+ r'operator\[\]',
A_indexoper,
type_int),
- SimpleXMethodMatcher('B_indexoper',
- '^dop::B$',
- 'operator\\[\\]',
+ SimpleXMethodMatcher(r'B_indexoper',
+ r'^dop::B$',
+ r'operator\[\]',
B_indexoper,
type_int)
]
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true
@ 2019-08-26 17:29 gdb-buildbot
2019-08-26 18:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-26 17:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT b694989f508a83dd7c1f5d0d08716439d312e1cb ***
commit b694989f508a83dd7c1f5d0d08716439d312e1cb
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Mon Aug 26 18:48:02 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Mon Aug 26 18:48:02 2019 +0200
[gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true
The tcl proc skip_libstdcxx_probe_tests currently returns 0 if the probe tests
need to be skipped, while tcl interprets 0 as false rather than true, which is
confusing.
Fix this by making skip_libstdcxx_probe_tests return 1 if the probe tests need
to be skipped.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-08-26 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
* tests need to be skipped.
* gdb.cp/exceptprint.exp: Update call to skip_libstdcxx_probe_tests.
* gdb.mi/mi-catch-cpp-exceptions.exp: Update call to
mi_skip_libstdcxx_probe_tests.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e8445f8e88..c41b4981e3 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-26 Tom de Vries <tdevries@suse.de>
+
+ * lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
+ * tests need to be skipped.
+ * gdb.cp/exceptprint.exp: Update call to skip_libstdcxx_probe_tests.
+ * gdb.mi/mi-catch-cpp-exceptions.exp: Update call to
+ mi_skip_libstdcxx_probe_tests.
+
2019-08-26 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.python/py-xmethods.exp: Use raw strings when passing
diff --git a/gdb/testsuite/gdb.cp/exceptprint.exp b/gdb/testsuite/gdb.cp/exceptprint.exp
index 46378d1b69..f6dcd0f5bd 100644
--- a/gdb/testsuite/gdb.cp/exceptprint.exp
+++ b/gdb/testsuite/gdb.cp/exceptprint.exp
@@ -27,7 +27,7 @@ if {![runto_main]} {
return -1
}
-if {![skip_libstdcxx_probe_tests]} {
+if {[skip_libstdcxx_probe_tests]} {
untested "could not find libstdc++ stap probe"
return -1
}
diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
index 029dc1bd02..2951497882 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
+++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
@@ -36,7 +36,7 @@ mi_gdb_load ${binfile}
if {![mi_run_to_main]} {
return -1
}
-set libstdcxx_probe_tests_supported [mi_skip_libstdcxx_probe_tests]
+set libstdcxx_probe_tests_supported [expr ![mi_skip_libstdcxx_probe_tests]]
# Grab some line numbers we'll need.
set catch_1_lineno [gdb_get_line_number "Catch 1"]
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index af56e8aa12..76805fb5ec 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3158,20 +3158,21 @@ proc skip_unwinder_tests {} {
return $ok
}
-# Return 0 if we should skip tests that require the libstdc++ stap
+# Return 1 if we should skip tests that require the libstdc++ stap
# probes. This must be invoked while gdb is running, after shared
# libraries have been loaded. PROMPT_REGEXP is the expected prompt.
proc skip_libstdcxx_probe_tests_prompt { prompt_regexp } {
- set ok 0
+ set supported 0
gdb_test_multiple "info probe" "check for stap probe in libstdc++" {
-re ".*libstdcxx.*catch.*\r\n$prompt_regexp" {
- set ok 1
+ set supported 1
}
-re "\r\n$prompt_regexp" {
}
} "$prompt_regexp"
- return $ok
+ set skip [expr !$supported]
+ return $skip
}
# As skip_libstdcxx_probe_tests_prompt, with gdb_prompt.
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb, c++] Improve error message when using libstdcxx without SDT probes
@ 2019-08-26 18:01 gdb-buildbot
2019-08-26 19:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-26 18:01 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 5c31b35808e467d39d05ffa95428e22bb10fd72d ***
commit 5c31b35808e467d39d05ffa95428e22bb10fd72d
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Mon Aug 26 19:24:59 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Mon Aug 26 19:24:59 2019 +0200
[gdb, c++] Improve error message when using libstdcxx without SDT probes
When using catch catch/rethrow/catch, a libstdcxx with SDT probes is required
for both the regexp argument, and the convenience variable $_exception (
https://sourceware.org/gdb/current/onlinedocs/gdb/Set-Catchpoints.html ).
Currently, when using these features with a libstdcxx without SDT probes, we
get the cryptic error message:
...
not stopped at a C++ exception catchpoint
...
Improve this by instead emitting the more helpful:
...
did not find exception probe (does libstdcxx have SDT probes?)
...
Tested on x86_64-linux.
gdb/ChangeLog:
2019-08-26 Tom de Vries <tdevries@suse.de>
PR c++/24852
* break-catch-throw.c (fetch_probe_arguments): Improve error mesage
when pc_probe.prob == NULL.
gdb/testsuite/ChangeLog:
2019-08-26 Tom de Vries <tdevries@suse.de>
PR c++/24852
* gdb.cp/no-libstdcxx-probe.exp: New test.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d4b1e539c3..f171031961 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-26 Tom de Vries <tdevries@suse.de>
+
+ PR c++/24852
+ * break-catch-throw.c (fetch_probe_arguments): Improve error mesage
+ when pc_probe.prob == NULL.
+
2019-08-25 Simon Marchi <simon.marchi@efficios.com>
* dwarf2read.c (dw2_debug_names_iterator::next): Rename local
diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c
index 0677a55ee5..2d91285312 100644
--- a/gdb/break-catch-throw.c
+++ b/gdb/break-catch-throw.c
@@ -106,8 +106,10 @@ fetch_probe_arguments (struct value **arg0, struct value **arg1)
unsigned n_args;
pc_probe = find_probe_by_pc (pc);
- if (pc_probe.prob == NULL
- || pc_probe.prob->get_provider () != "libstdcxx"
+ if (pc_probe.prob == NULL)
+ error (_("did not find exception probe (does libstdcxx have SDT probes?)"));
+
+ if (pc_probe.prob->get_provider () != "libstdcxx"
|| (pc_probe.prob->get_name () != "catch"
&& pc_probe.prob->get_name () != "throw"
&& pc_probe.prob->get_name () != "rethrow"))
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index c41b4981e3..3117fe78bf 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-26 Tom de Vries <tdevries@suse.de>
+
+ PR c++/24852
+ * gdb.cp/no-libstdcxx-probe.exp: New test.
+
2019-08-26 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (skip_libstdcxx_probe_tests_prompt): Return 1 if probe
diff --git a/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp b/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp
new file mode 100644
index 0000000000..79826ea2d2
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp
@@ -0,0 +1,41 @@
+# 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/>.
+
+standard_testfile exceptprint.cc
+
+if {[skip_cplus_tests]} {
+ return -1
+}
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
+ return -1
+}
+
+if {![runto_main]} {
+ return -1
+}
+
+if { [skip_libstdcxx_probe_tests] == 0 } {
+ untested "Have libstdc++ stap probe"
+ return -1
+}
+
+gdb_test "catch throw" "Catchpoint $decimal \\(throw\\)" \
+ "catch throw"
+
+gdb_test "continue" "Continuing.*Catchpoint $decimal.*"
+
+gdb_test "print \$_exception" \
+ "did not find exception probe \\(does libstdcxx have SDT probes\\?\\).*"
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Factor out the common code in lookup_{static,global}_symbol
@ 2019-08-26 22:05 gdb-buildbot
2019-08-27 5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-26 22:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 9aa5520697ee3b65bfbb705c21c2dfb2c0dee12e ***
commit 9aa5520697ee3b65bfbb705c21c2dfb2c0dee12e
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Fri Aug 2 19:59:37 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Mon Aug 26 16:24:33 2019 -0500
Factor out the common code in lookup_{static,global}_symbol
The two functions are extremely similar; this factors out their code into
a shared _internal function.
gdb/ChangeLog:
2019-08-26 Christian Biesinger <cbiesinger@google.com>
* symtab.c (lookup_static_symbol): Call the new function (and move
it down to be next to lookup_global_symbol).
(struct global_sym_lookup_data): Add block_enum member and rename to...
(struct global_or_static_sym_lookup_data): ...this.
(lookup_symbol_global_iterator_cb): Pass block_index instead of
GLOBAL_BLOCK to lookup_symbol_in_objfile and rename to...
(lookup_symbol_global_or_static_iterator_cb): ...this.
(lookup_global_or_static_symbol): New function.
(lookup_global_symbol): Call new function.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f171031961..dda3115532 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-08-26 Christian Biesinger <cbiesinger@google.com>
+
+ * symtab.c (lookup_static_symbol): Call the new function (and move
+ it down to be next to lookup_global_symbol).
+ (struct global_sym_lookup_data): Add block_enum member and rename to...
+ (struct global_or_static_sym_lookup_data): ...this.
+ (lookup_symbol_global_iterator_cb): Pass block_index instead of
+ GLOBAL_BLOCK to lookup_symbol_in_objfile and rename to...
+ (lookup_symbol_global_or_static_iterator_cb): ...this.
+ (lookup_global_or_static_symbol): New function.
+ (lookup_global_symbol): Call new function.
+
2019-08-26 Tom de Vries <tdevries@suse.de>
PR c++/24852
diff --git a/gdb/symtab.c b/gdb/symtab.c
index d85c77b4ce..787ecfe33b 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2566,47 +2566,9 @@ lookup_symbol_in_objfile (struct objfile *objfile, enum block_enum block_index,
return result;
}
-/* See symtab.h. */
-
-struct block_symbol
-lookup_static_symbol (const char *name, const domain_enum domain)
-{
- struct symbol_cache *cache = get_symbol_cache (current_program_space);
- struct block_symbol result;
- struct block_symbol_cache *bsc;
- struct symbol_cache_slot *slot;
-
- /* Lookup in STATIC_BLOCK is not current-objfile-dependent, so just pass
- NULL for OBJFILE_CONTEXT. */
- result = symbol_cache_lookup (cache, NULL, STATIC_BLOCK, name, domain,
- &bsc, &slot);
- if (result.symbol != NULL)
- {
- if (SYMBOL_LOOKUP_FAILED_P (result))
- return {};
- return result;
- }
-
- for (objfile *objfile : current_program_space->objfiles ())
- {
- result = lookup_symbol_in_objfile (objfile, STATIC_BLOCK, name, domain);
- if (result.symbol != NULL)
- {
- /* Still pass NULL for OBJFILE_CONTEXT here. */
- symbol_cache_mark_found (bsc, slot, NULL, result.symbol,
- result.block);
- return result;
- }
- }
-
- /* Still pass NULL for OBJFILE_CONTEXT here. */
- symbol_cache_mark_not_found (bsc, slot, NULL, name, domain);
- return {};
-}
-
/* Private data to be used with lookup_symbol_global_iterator_cb. */
-struct global_sym_lookup_data
+struct global_or_static_sym_lookup_data
{
/* The name of the symbol we are searching for. */
const char *name;
@@ -2614,27 +2576,30 @@ struct global_sym_lookup_data
/* The domain to use for our search. */
domain_enum domain;
+ /* The block index in which to search. */
+ enum block_enum block_index;
+
/* The field where the callback should store the symbol if found.
It should be initialized to {NULL, NULL} before the search is started. */
struct block_symbol result;
};
/* A callback function for gdbarch_iterate_over_objfiles_in_search_order.
- It searches by name for a symbol in the GLOBAL_BLOCK of the given
- OBJFILE. The arguments for the search are passed via CB_DATA,
- which in reality is a pointer to struct global_sym_lookup_data. */
+ It searches by name for a symbol in the block given by BLOCK_INDEX of the
+ given OBJFILE. The arguments for the search are passed via CB_DATA, which
+ in reality is a pointer to struct global_or_static_sym_lookup_data. */
static int
-lookup_symbol_global_iterator_cb (struct objfile *objfile,
- void *cb_data)
+lookup_symbol_global_or_static_iterator_cb (struct objfile *objfile,
+ void *cb_data)
{
- struct global_sym_lookup_data *data =
- (struct global_sym_lookup_data *) cb_data;
+ struct global_or_static_sym_lookup_data *data =
+ (struct global_or_static_sym_lookup_data *) cb_data;
gdb_assert (data->result.symbol == NULL
&& data->result.block == NULL);
- data->result = lookup_symbol_in_objfile (objfile, GLOBAL_BLOCK,
+ data->result = lookup_symbol_in_objfile (objfile, data->block_index,
data->name, data->domain);
/* If we found a match, tell the iterator to stop. Otherwise,
@@ -2642,25 +2607,28 @@ lookup_symbol_global_iterator_cb (struct objfile *objfile,
return (data->result.symbol != NULL);
}
-/* See symtab.h. */
+/* This function contains the common code of lookup_{global,static}_symbol.
+ OBJFILE is only used if BLOCK_INDEX is GLOBAL_SCOPE, in which case it is
+ the objfile to start the lookup in. */
-struct block_symbol
-lookup_global_symbol (const char *name,
- const struct block *block,
- const domain_enum domain)
+static struct block_symbol
+lookup_global_or_static_symbol (const char *name,
+ enum block_enum block_index,
+ struct objfile *objfile,
+ const domain_enum domain)
{
struct symbol_cache *cache = get_symbol_cache (current_program_space);
struct block_symbol result;
- struct objfile *objfile;
- struct global_sym_lookup_data lookup_data;
+ struct global_or_static_sym_lookup_data lookup_data;
struct block_symbol_cache *bsc;
struct symbol_cache_slot *slot;
- objfile = lookup_objfile_from_block (block);
+ gdb_assert (block_index == GLOBAL_BLOCK || block_index == STATIC_BLOCK);
+ gdb_assert (objfile == nullptr || block_index == GLOBAL_BLOCK);
/* First see if we can find the symbol in the cache.
This works because we use the current objfile to qualify the lookup. */
- result = symbol_cache_lookup (cache, objfile, GLOBAL_BLOCK, name, domain,
+ result = symbol_cache_lookup (cache, objfile, block_index, name, domain,
&bsc, &slot);
if (result.symbol != NULL)
{
@@ -2678,10 +2646,11 @@ lookup_global_symbol (const char *name,
{
memset (&lookup_data, 0, sizeof (lookup_data));
lookup_data.name = name;
+ lookup_data.block_index = block_index;
lookup_data.domain = domain;
gdbarch_iterate_over_objfiles_in_search_order
(objfile != NULL ? get_objfile_arch (objfile) : target_gdbarch (),
- lookup_symbol_global_iterator_cb, &lookup_data, objfile);
+ lookup_symbol_global_or_static_iterator_cb, &lookup_data, objfile);
result = lookup_data.result;
}
@@ -2693,6 +2662,25 @@ lookup_global_symbol (const char *name,
return result;
}
+/* See symtab.h. */
+
+struct block_symbol
+lookup_static_symbol (const char *name, const domain_enum domain)
+{
+ return lookup_global_or_static_symbol (name, STATIC_BLOCK, nullptr, domain);
+}
+
+/* See symtab.h. */
+
+struct block_symbol
+lookup_global_symbol (const char *name,
+ const struct block *block,
+ const domain_enum domain)
+{
+ struct objfile *objfile = lookup_objfile_from_block (block);
+ return lookup_global_or_static_symbol (name, GLOBAL_BLOCK, objfile, domain);
+}
+
int
symbol_matches_domain (enum language symbol_language,
domain_enum symbol_domain,
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Add support for the MVE VMOV instruction to the ARM assembler. This instruction copies the value of one vector register to another vector register. The patch also modifies the decoding of VORR instruction which is effecting decoding of VMOV instruction.
@ 2019-08-27 11:48 gdb-buildbot
2019-08-27 15:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-27 11:48 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c4a23bf878f2e9a64034006c91596401faf6db3e ***
commit c4a23bf878f2e9a64034006c91596401faf6db3e
Author: Srinath Parvathaneni <srinath.parvathaneni@arm.com>
AuthorDate: Tue Aug 27 12:08:21 2019 +0100
Commit: Nick Clifton <nickc@redhat.com>
CommitDate: Tue Aug 27 12:08:21 2019 +0100
Add support for the MVE VMOV instruction to the ARM assembler. This instruction copies the value of one vector register to another vector register. The patch also modifies the decoding of VORR instruction which is effecting decoding of VMOV instruction.
gas * config/tc-arm.c (parse_neon_mov): Add check to accept vector
register to both the arguments in VMOV instruction.
* testsuite/gas/arm/mve-vmov-1.d: Modify.
* testsuite/gas/arm/mve-vmov-1.s: Likewise.
* testsuite/gas/arm/mve-vorr.d: Likewise.
opcodes * arm-dis.c (mve_opcodes): Add entry for MVE_VMOV_VEC_TO_VEC.
(is_mve_undefined): Add case for MVE_VMOV_VEC_TO_VEC.
(print_insn_mve): Add condition to check Qm==Qn of VORR instruction.
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ff9b3e4762..980d970bbc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * config/tc-arm.c (parse_neon_mov): Add check to accept vector
+ register to both the arguments in VMOV instruction.
+ * testsuite/gas/arm/mve-vmov-1.d: Modify.
+ * testsuite/gas/arm/mve-vmov-1.s: Likewise.
+ * testsuite/gas/arm/mve-vorr.d: Likewise.
+
2019-08-23 Nick Clifton <nickc@redhat.com>
* po/sv.po: Updated Swedish translation.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 27c6f0e52f..9a367ca728 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -6743,8 +6743,10 @@ parse_neon_mov (char **str, int *which_operand)
inst.operands[i].present = 1;
}
}
- else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype,
- &optype)) != FAIL)
+ else if (((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype,
+ &optype)) != FAIL)
+ || ((val = arm_typed_reg_parse (&ptr, REG_TYPE_MQ, &rtype,
+ &optype)) != FAIL))
{
/* Case 0: VMOV<c><q> <Qd>, <Qm>
Case 1: VMOV<c><q> <Dd>, <Dm>
diff --git a/gas/testsuite/gas/arm/mve-vmov-1.d b/gas/testsuite/gas/arm/mve-vmov-1.d
index 5f317d8646..504b3e7936 100644
--- a/gas/testsuite/gas/arm/mve-vmov-1.d
+++ b/gas/testsuite/gas/arm/mve-vmov-1.d
@@ -4154,3 +4154,28 @@ Disassembly of section .text:
[^>]*> ef80 0e74 vmov.i64 q0, #0x0000000000ff0000
[^>]*> ef80 0e72 vmov.i64 q0, #0x000000000000ff00
[^>]*> ef80 0e71 vmov.i64 q0, #0x00000000000000ff
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef2e e15e vmov q7, q7
diff --git a/gas/testsuite/gas/arm/mve-vmov-1.s b/gas/testsuite/gas/arm/mve-vmov-1.s
index 60c77d0a7c..d24fae60f3 100644
--- a/gas/testsuite/gas/arm/mve-vmov-1.s
+++ b/gas/testsuite/gas/arm/mve-vmov-1.s
@@ -130,3 +130,9 @@ vmov.i64 q0, #4278190080 @ 0x00000000FF000000
vmov.i64 q0, #16711680 @ 0x00000000000FF0000
vmov.i64 q0, #65280 @ 0x0000000000000FF00
vmov.i64 q0, #255 @ 0x000000000000000FF
+
+.irp op1, q0, q1, q2, q4, q7
+.irp op2, q0, q1, q2, q4, q7
+vmov \op1, \op2
+.endr
+.endr
diff --git a/gas/testsuite/gas/arm/mve-vorr.d b/gas/testsuite/gas/arm/mve-vorr.d
index 72dcc89538..96a69d8d13 100644
--- a/gas/testsuite/gas/arm/mve-vorr.d
+++ b/gas/testsuite/gas/arm/mve-vorr.d
@@ -5,14 +5,14 @@
.*: +file format .*arm.*
Disassembly of section .text:
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
[^>]*> ef20 0152 vorr q0, q0, q1
[^>]*> ef20 0152 vorr q0, q0, q1
[^>]*> ef20 0152 vorr q0, q0, q1
@@ -53,14 +53,14 @@ Disassembly of section .text:
[^>]*> ef22 0150 vorr q0, q1, q0
[^>]*> ef22 0150 vorr q0, q1, q0
[^>]*> ef22 0150 vorr q0, q1, q0
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
[^>]*> ef22 0154 vorr q0, q1, q2
[^>]*> ef22 0154 vorr q0, q1, q2
[^>]*> ef22 0154 vorr q0, q1, q2
@@ -101,14 +101,14 @@ Disassembly of section .text:
[^>]*> ef24 0152 vorr q0, q2, q1
[^>]*> ef24 0152 vorr q0, q2, q1
[^>]*> ef24 0152 vorr q0, q2, q1
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
[^>]*> ef24 0158 vorr q0, q2, q4
[^>]*> ef24 0158 vorr q0, q2, q4
[^>]*> ef24 0158 vorr q0, q2, q4
@@ -149,14 +149,14 @@ Disassembly of section .text:
[^>]*> ef28 0154 vorr q0, q4, q2
[^>]*> ef28 0154 vorr q0, q4, q2
[^>]*> ef28 0154 vorr q0, q4, q2
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
[^>]*> ef28 015e vorr q0, q4, q7
[^>]*> ef28 015e vorr q0, q4, q7
[^>]*> ef28 015e vorr q0, q4, q7
@@ -197,22 +197,22 @@ Disassembly of section .text:
[^>]*> ef2e 0158 vorr q0, q7, q4
[^>]*> ef2e 0158 vorr q0, q7, q4
[^>]*> ef2e 0158 vorr q0, q7, q4
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
[^>]*> ef20 2152 vorr q1, q0, q1
[^>]*> ef20 2152 vorr q1, q0, q1
[^>]*> ef20 2152 vorr q1, q0, q1
@@ -253,14 +253,14 @@ Disassembly of section .text:
[^>]*> ef22 2150 vorr q1, q1, q0
[^>]*> ef22 2150 vorr q1, q1, q0
[^>]*> ef22 2150 vorr q1, q1, q0
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
[^>]*> ef22 2154 vorr q1, q1, q2
[^>]*> ef22 2154 vorr q1, q1, q2
[^>]*> ef22 2154 vorr q1, q1, q2
@@ -301,14 +301,14 @@ Disassembly of section .text:
[^>]*> ef24 2152 vorr q1, q2, q1
[^>]*> ef24 2152 vorr q1, q2, q1
[^>]*> ef24 2152 vorr q1, q2, q1
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
[^>]*> ef24 2158 vorr q1, q2, q4
[^>]*> ef24 2158 vorr q1, q2, q4
[^>]*> ef24 2158 vorr q1, q2, q4
@@ -349,14 +349,14 @@ Disassembly of section .text:
[^>]*> ef28 2154 vorr q1, q4, q2
[^>]*> ef28 2154 vorr q1, q4, q2
[^>]*> ef28 2154 vorr q1, q4, q2
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
[^>]*> ef28 215e vorr q1, q4, q7
[^>]*> ef28 215e vorr q1, q4, q7
[^>]*> ef28 215e vorr q1, q4, q7
@@ -397,22 +397,22 @@ Disassembly of section .text:
[^>]*> ef2e 2158 vorr q1, q7, q4
[^>]*> ef2e 2158 vorr q1, q7, q4
[^>]*> ef2e 2158 vorr q1, q7, q4
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
[^>]*> ef20 4152 vorr q2, q0, q1
[^>]*> ef20 4152 vorr q2, q0, q1
[^>]*> ef20 4152 vorr q2, q0, q1
@@ -453,14 +453,14 @@ Disassembly of section .text:
[^>]*> ef22 4150 vorr q2, q1, q0
[^>]*> ef22 4150 vorr q2, q1, q0
[^>]*> ef22 4150 vorr q2, q1, q0
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
[^>]*> ef22 4154 vorr q2, q1, q2
[^>]*> ef22 4154 vorr q2, q1, q2
[^>]*> ef22 4154 vorr q2, q1, q2
@@ -501,14 +501,14 @@ Disassembly of section .text:
[^>]*> ef24 4152 vorr q2, q2, q1
[^>]*> ef24 4152 vorr q2, q2, q1
[^>]*> ef24 4152 vorr q2, q2, q1
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
[^>]*> ef24 4158 vorr q2, q2, q4
[^>]*> ef24 4158 vorr q2, q2, q4
[^>]*> ef24 4158 vorr q2, q2, q4
@@ -549,14 +549,14 @@ Disassembly of section .text:
[^>]*> ef28 4154 vorr q2, q4, q2
[^>]*> ef28 4154 vorr q2, q4, q2
[^>]*> ef28 4154 vorr q2, q4, q2
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
[^>]*> ef28 415e vorr q2, q4, q7
[^>]*> ef28 415e vorr q2, q4, q7
[^>]*> ef28 415e vorr q2, q4, q7
@@ -597,22 +597,22 @@ Disassembly of section .text:
[^>]*> ef2e 4158 vorr q2, q7, q4
[^>]*> ef2e 4158 vorr q2, q7, q4
[^>]*> ef2e 4158 vorr q2, q7, q4
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
[^>]*> ef20 8152 vorr q4, q0, q1
[^>]*> ef20 8152 vorr q4, q0, q1
[^>]*> ef20 8152 vorr q4, q0, q1
@@ -653,14 +653,14 @@ Disassembly of section .text:
[^>]*> ef22 8150 vorr q4, q1, q0
[^>]*> ef22 8150 vorr q4, q1, q0
[^>]*> ef22 8150 vorr q4, q1, q0
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
[^>]*> ef22 8154 vorr q4, q1, q2
[^>]*> ef22 8154 vorr q4, q1, q2
[^>]*> ef22 8154 vorr q4, q1, q2
@@ -701,14 +701,14 @@ Disassembly of section .text:
[^>]*> ef24 8152 vorr q4, q2, q1
[^>]*> ef24 8152 vorr q4, q2, q1
[^>]*> ef24 8152 vorr q4, q2, q1
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
[^>]*> ef24 8158 vorr q4, q2, q4
[^>]*> ef24 8158 vorr q4, q2, q4
[^>]*> ef24 8158 vorr q4, q2, q4
@@ -749,14 +749,14 @@ Disassembly of section .text:
[^>]*> ef28 8154 vorr q4, q4, q2
[^>]*> ef28 8154 vorr q4, q4, q2
[^>]*> ef28 8154 vorr q4, q4, q2
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
[^>]*> ef28 815e vorr q4, q4, q7
[^>]*> ef28 815e vorr q4, q4, q7
[^>]*> ef28 815e vorr q4, q4, q7
@@ -797,22 +797,22 @@ Disassembly of section .text:
[^>]*> ef2e 8158 vorr q4, q7, q4
[^>]*> ef2e 8158 vorr q4, q7, q4
[^>]*> ef2e 8158 vorr q4, q7, q4
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
[^>]*> ef20 e152 vorr q7, q0, q1
[^>]*> ef20 e152 vorr q7, q0, q1
[^>]*> ef20 e152 vorr q7, q0, q1
@@ -853,14 +853,14 @@ Disassembly of section .text:
[^>]*> ef22 e150 vorr q7, q1, q0
[^>]*> ef22 e150 vorr q7, q1, q0
[^>]*> ef22 e150 vorr q7, q1, q0
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
[^>]*> ef22 e154 vorr q7, q1, q2
[^>]*> ef22 e154 vorr q7, q1, q2
[^>]*> ef22 e154 vorr q7, q1, q2
@@ -901,14 +901,14 @@ Disassembly of section .text:
[^>]*> ef24 e152 vorr q7, q2, q1
[^>]*> ef24 e152 vorr q7, q2, q1
[^>]*> ef24 e152 vorr q7, q2, q1
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
[^>]*> ef24 e158 vorr q7, q2, q4
[^>]*> ef24 e158 vorr q7, q2, q4
[^>]*> ef24 e158 vorr q7, q2, q4
@@ -949,14 +949,14 @@ Disassembly of section .text:
[^>]*> ef28 e154 vorr q7, q4, q2
[^>]*> ef28 e154 vorr q7, q4, q2
[^>]*> ef28 e154 vorr q7, q4, q2
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
[^>]*> ef28 e15e vorr q7, q4, q7
[^>]*> ef28 e15e vorr q7, q4, q7
[^>]*> ef28 e15e vorr q7, q4, q7
@@ -997,14 +997,14 @@ Disassembly of section .text:
[^>]*> ef2e e158 vorr q7, q7, q4
[^>]*> ef2e e158 vorr q7, q7, q4
[^>]*> ef2e e158 vorr q7, q7, q4
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
[^>]*> ef80 0150 vorr.i32 q0, #0 ; 0x00000000
[^>]*> ff87 015f vorr.i32 q0, #255 ; 0x000000ff
[^>]*> ff87 035f vorr.i32 q0, #65280 ; 0x0000ff00
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0017bd47f5..bec2b59cc4 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * arm-dis.c (mve_opcodes): Add entry for MVE_VMOV_VEC_TO_VEC.
+ (is_mve_undefined): Add case for MVE_VMOV_VEC_TO_VEC.
+ (print_insn_mve): Add condition to check Qm==Qn of VORR instruction.
+
2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* aarch64-opc.c (aarch64_sys_regs): Update encoding of tfsre0_el1,
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 50d1306c19..8ff86bf4d6 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -2951,6 +2951,16 @@ static const struct mopcode32 mve_opcodes[] =
0xef200150, 0xffb11f51,
"vorr%v\t%13-15,22Q, %17-19,7Q, %1-3,5Q"},
+ /* Vector VMOV, vector to vector move. While decoding MVE_VORR_REG if
+ "Qm==Qn", VORR should replaced by its alias VMOV. For that to happen
+ MVE_VMOV_VEC_TO_VEC need to placed after MVE_VORR_REG in this mve_opcodes
+ array. */
+
+ {ARM_FEATURE_COPROC (FPU_MVE),
+ MVE_VMOV_VEC_TO_VEC,
+ 0xef200150, 0xffb11f51,
+ "vmov%v\t%13-15,22Q, %17-19,7Q"},
+
/* Vector VQDMULL T1 variant. */
{ARM_FEATURE_COPROC (FPU_MVE),
MVE_VQDMULL_T1,
@@ -6104,6 +6114,12 @@ is_mve_undefined (unsigned long given, enum mve_instructions matched_insn,
else
return FALSE;
+ case MVE_VMOV_VEC_TO_VEC:
+ if ((arm_decode_field (given, 5, 5) == 1)
+ || (arm_decode_field (given, 22, 22) == 1))
+ return TRUE;
+ return FALSE;
+
case MVE_VMOV_IMM_TO_VEC:
if (arm_decode_field (given, 5, 5) == 0)
{
@@ -9214,6 +9230,13 @@ print_insn_mve (struct disassemble_info *info, long given)
if (is_mve_undefined (given, insn->mve_op, &undefined_cond))
is_undefined = TRUE;
+ /* In "VORR Qd, Qm, Qn", if Qm==Qn, VORR is nothing but VMOV,
+ i.e "VMOV Qd, Qm". */
+ if ((insn->mve_op == MVE_VORR_REG)
+ && (arm_decode_field (given, 1, 3)
+ == arm_decode_field (given, 17, 19)))
+ continue;
+
for (c = insn->assembler; *c; c++)
{
if (*c == '%')
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb: Add new -n flag to some info commands
@ 2019-08-27 16:22 gdb-buildbot
2019-08-27 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-27 16:22 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 4acfdd20c9ef3c0368868b4221554f0abef04196 ***
commit 4acfdd20c9ef3c0368868b4221554f0abef04196
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Mon Jul 22 16:53:06 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Aug 27 16:21:42 2019 +0100
gdb: Add new -n flag to some info commands
The 'info variables', its alias 'whereis', and 'info functions' all
include non-debug symbols in the output by default. The list of
non-debug symbols can sometimes be quite long, resulting in the
debug symbol based results being scrolled off the screen.
This commit adds a '-n' flag to all of the commands listed above that
excludes the non-debug symbols from the results, leaving just the
debug symbol based results.
gdb/ChangeLog:
* cli/cli-utils.c (info_print_options_defs): Delete.
(make_info_print_options_def_group): Delete.
(extract_info_print_options): Delete.
(info_print_command_completer): Delete.
(info_print_args_help): Add extra parameter, and optionally
include text about -n flag.
* cli/cli-utils.h (struct info_print_options): Delete.
(extract_info_print_options): Delete declaration.
(info_print_command_completer): Delete declaration.
(info_print_args_help): Add extra parameter, extend header
comment.
* python/python.c (gdbpy_rbreak): Pass additional parameter to
search_symbols.
* stack.c (struct info_print_options): New type.
(info_print_options_defs): New file scoped variable.
(make_info_print_options_def_group): New static function.
(info_print_command_completer): New static function.
(info_locals_command): Update to use new local functions.
(info_args_command): Likewise.
(_initialize_stack): Add extra parameter to calls to
info_print_args_help.
* symtab.c (search_symbols): Add extra parameter, use this to
possibly excluse non-debug symbols.
(symtab_symbol_info): Add extra parameter, which is passed on to
search_symbols.
(struct info_print_options): New type.
(info_print_options_defs): New file scoped variable.
(make_info_print_options_def_group): New static function.
(info_print_command_completer): New static function.
(info_variables_command): Update to use local functions, and pass
extra parameter through to symtab_symbol_info.
(info_functions_command): Likewise.
(info_types_command): Pass additional argument through to
symtab_symbol_info.
(rbreak_command): Pass extra argument to search_symbols.
(_initialize_symtab): Add extra arguments for calls to
info_print_args_help, and update help text for 'info variables',
'whereis', and 'info functions' commands.
* symtab.h (search_symbols): Add extra argument to declaration.
* NEWS: Mention new flags.
gdb/doc/ChangeLog:
* gdb.texinfo (Symbols): Add information about the -n flag to
"info variables" and "info functions".
gdb/testsuite/ChangeLog:
* gdb.base/info-fun.exp: Extend to test the -n flag for 'info
functions'. Reindent as needed.
* gdb.base/info-var-f1.c: New file.
* gdb.base/info-var-f2.c: New file.
* gdb.base/info-var.exp: New file.
* gdb.base/info-var.h: New file.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dda3115532..c7d2dae4ff 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,46 @@
+2019-08-27 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * cli/cli-utils.c (info_print_options_defs): Delete.
+ (make_info_print_options_def_group): Delete.
+ (extract_info_print_options): Delete.
+ (info_print_command_completer): Delete.
+ (info_print_args_help): Add extra parameter, and optionally
+ include text about -n flag.
+ * cli/cli-utils.h (struct info_print_options): Delete.
+ (extract_info_print_options): Delete declaration.
+ (info_print_command_completer): Delete declaration.
+ (info_print_args_help): Add extra parameter, extend header
+ comment.
+ * python/python.c (gdbpy_rbreak): Pass additional parameter to
+ search_symbols.
+ * stack.c (struct info_print_options): New type.
+ (info_print_options_defs): New file scoped variable.
+ (make_info_print_options_def_group): New static function.
+ (info_print_command_completer): New static function.
+ (info_locals_command): Update to use new local functions.
+ (info_args_command): Likewise.
+ (_initialize_stack): Add extra parameter to calls to
+ info_print_args_help.
+ * symtab.c (search_symbols): Add extra parameter, use this to
+ possibly excluse non-debug symbols.
+ (symtab_symbol_info): Add extra parameter, which is passed on to
+ search_symbols.
+ (struct info_print_options): New type.
+ (info_print_options_defs): New file scoped variable.
+ (make_info_print_options_def_group): New static function.
+ (info_print_command_completer): New static function.
+ (info_variables_command): Update to use local functions, and pass
+ extra parameter through to symtab_symbol_info.
+ (info_functions_command): Likewise.
+ (info_types_command): Pass additional argument through to
+ symtab_symbol_info.
+ (rbreak_command): Pass extra argument to search_symbols.
+ (_initialize_symtab): Add extra arguments for calls to
+ info_print_args_help, and update help text for 'info variables',
+ 'whereis', and 'info functions' commands.
+ * symtab.h (search_symbols): Add extra argument to declaration.
+ * NEWS: Mention new flags.
+
2019-08-26 Christian Biesinger <cbiesinger@google.com>
* symtab.c (lookup_static_symbol): Call the new function (and move
diff --git a/gdb/NEWS b/gdb/NEWS
index 0d78237085..f382e887c0 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -256,6 +256,11 @@ maint show test-options-completion-result
printing of some header information in a similar fashion to "info
variables" and "info functions".
+ ** The "info variables", "info functions", and "whereis" commands
+ now take a '-n' flag that excludes non-debug symbols (symbols
+ from the symbol table, not from the debug info such as DWARF)
+ from the results.
+
* Completion improvements
** GDB can now complete the options of the "thread apply all" and
diff --git a/gdb/cli/cli-utils.c b/gdb/cli/cli-utils.c
index c6405505d9..b6b21c95b0 100644
--- a/gdb/cli/cli-utils.c
+++ b/gdb/cli/cli-utils.c
@@ -194,7 +194,8 @@ report_unrecognized_option_error (const char *command, const char *args)
const char *
info_print_args_help (const char *prefix,
- const char *entity_kind)
+ const char *entity_kind,
+ bool document_n_flag)
{
return xstrprintf (_("\
%sIf NAMEREGEXP is provided, only prints the %s whose name\n\
@@ -204,8 +205,11 @@ matches TYPEREGEXP. Note that the matching is done with the type\n\
printed by the 'whatis' command.\n\
By default, the command might produce headers and/or messages indicating\n\
why no %s can be printed.\n\
-The flag -q disables the production of these headers and messages."),
- prefix, entity_kind, entity_kind, entity_kind);
+The flag -q disables the production of these headers and messages.%s"),
+ prefix, entity_kind, entity_kind, entity_kind,
+ (document_n_flag ? _("\n\
+By default, the command will include non-debug symbols in the output;\n\
+these can be excluded using the -n flag.") : ""));
}
/* See documentation in cli-utils.h. */
@@ -435,58 +439,3 @@ validate_flags_qcs (const char *which_command, qcs_flags *flags)
error (_("%s: -c and -s are mutually exclusive"), which_command);
}
-/* The options used by the 'info variables' commands and similar. */
-
-static const gdb::option::option_def info_print_options_defs[] = {
- gdb::option::boolean_option_def<info_print_options> {
- "q",
- [] (info_print_options *opt) { return &opt->quiet; },
- nullptr, /* show_cmd_cb */
- nullptr /* set_doc */
- },
-
- gdb::option::string_option_def<info_print_options> {
- "t",
- [] (info_print_options *opt) { return &opt->type_regexp; },
- nullptr, /* show_cmd_cb */
- nullptr /* set_doc */
- }
-};
-
-/* Returns the option group used by 'info variables' and similar. */
-
-static gdb::option::option_def_group
-make_info_print_options_def_group (info_print_options *opts)
-{
- return {{info_print_options_defs}, opts};
-}
-
-/* See documentation in cli-utils.h. */
-
-void
-extract_info_print_options (info_print_options *opts,
- const char **args)
-{
- auto grp = make_info_print_options_def_group (opts);
- gdb::option::process_options
- (args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
- if (*args != nullptr && **args == '\0')
- *args = nullptr;
-}
-
-/* See documentation in cli-utils.h. */
-
-void
-info_print_command_completer (struct cmd_list_element *ignore,
- completion_tracker &tracker,
- const char *text, const char * /* word */)
-{
- const auto group
- = make_info_print_options_def_group (nullptr);
- if (gdb::option::complete_options
- (tracker, &text, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, group))
- return;
-
- const char *word = advance_to_expression_complete_word_point (tracker, text);
- symbol_completer (ignore, tracker, text, word);
-}
diff --git a/gdb/cli/cli-utils.h b/gdb/cli/cli-utils.h
index 17cdd842b2..cbe8ff66e1 100644
--- a/gdb/cli/cli-utils.h
+++ b/gdb/cli/cli-utils.h
@@ -47,38 +47,6 @@ extern int get_number (char **);
error instead of returning 0. */
extern ULONGEST get_ulongest (const char **pp, int trailer = '\0');
-/* Structure to hold the values of the options used by the 'info
- variables' command and other similar commands. These correspond to the
- -q and -t options. */
-
-struct info_print_options
-{
- int quiet = false;
- char *type_regexp = nullptr;
-
- ~info_print_options ()
- {
- xfree (type_regexp);
- }
-};
-
-/* Extract options from ARGS for commands like 'info variables', placing
- the options into OPTS. ARGS is updated to point to the first character
- after the options, or, if there is nothing after the options, then ARGS
- is set to nullptr. */
-
-extern void extract_info_print_options (info_print_options *opts,
- const char **args);
-
-/* Function that can be used as a command completer for 'info variable'
- and friends. This offers command option completion as well as symbol
- completion. At the moment all symbols are offered for all commands. */
-
-extern void info_print_command_completer (struct cmd_list_element *ignore,
- completion_tracker &tracker,
- const char *text,
- const char * /* word */);
-
/* Throws an error telling the user that ARGS starts with an option
unrecognized by COMMAND. */
@@ -87,10 +55,13 @@ extern void report_unrecognized_option_error (const char *command,
/* Builds the help string for a command documented by PREFIX,
- followed by the extract_info_print_args help for ENTITY_KIND. */
+ followed by the extract_info_print_args help for ENTITY_KIND. If
+ DOCUMENT_N_FLAG is true then help text descibing the -n flag is also
+ included. */
const char *info_print_args_help (const char *prefix,
- const char *entity_kind);
+ const char *entity_kind,
+ bool document_n_flag);
/* Parse a number or a range.
A number will be of the form handled by get_number.
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 7fa73fb40f..a5328259e0 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-27 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.texinfo (Symbols): Add information about the -n flag to
+ "info variables" and "info functions".
+
2019-08-25 Yoshinori Sato <ysato@users.sourceforge.jp>
* gdb.texinfo (Standard Target Features): Add RX Features sub-section.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index e1bc8143e6..53b7de91e4 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -18594,7 +18594,7 @@ The matching is case-sensitive, except on operating systems that
have case-insensitive filesystem (e.g., MS-Windows).
@kindex info functions
-@item info functions [-q]
+@item info functions [-q] [-n]
Print the names and data types of all defined functions.
Similarly to @samp{info types}, this command groups its output by source
files and annotates each function definition with its source line
@@ -18607,11 +18607,16 @@ to print the function name and type according to the
language of the function, other values mean to use
the manually specified language (see @ref{Manually, ,Set Language Manually}).
+The @samp{-n} flag excludes @dfn{non-debugging symbols} from the
+results. A non-debugging symbol is a symbol that comes from the
+executable's symbol table, not from the debug information (for
+example, DWARF) associated with the executable.
+
The optional flag @samp{-q}, which stands for @samp{quiet}, disables
printing header information and messages explaining why no functions
have been printed.
-@item info functions [-q] [-t @var{type_regexp}] [@var{regexp}]
+@item info functions [-q] [-n] [-t @var{type_regexp}] [@var{regexp}]
Like @samp{info functions}, but only print the names and data types
of the functions selected with the provided regexp(s).
@@ -18641,7 +18646,7 @@ is printed only if its name matches @var{regexp} and its type matches
@kindex info variables
-@item info variables [-q]
+@item info variables [-q] [-n]
Print the names and data types of all variables that are defined
outside of functions (i.e.@: excluding local variables).
The printed variables are grouped by source files and annotated with
@@ -18654,11 +18659,13 @@ to print the variable name and type according to the
language of the variable, other values mean to use
the manually specified language (see @ref{Manually, ,Set Language Manually}).
+The @samp{-n} flag excludes non-debugging symbols from the results.
+
The optional flag @samp{-q}, which stands for @samp{quiet}, disables
printing header information and messages explaining why no variables
have been printed.
-@item info variables [-q] [-t @var{type_regexp}] [@var{regexp}]
+@item info variables [-q] [-n] [-t @var{type_regexp}] [@var{regexp}]
Like @kbd{info variables}, but only print the variables selected
with the provided regexp(s).
diff --git a/gdb/python/python.c b/gdb/python/python.c
index cca7c4cd6b..b309ae91ba 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -739,10 +739,10 @@ gdbpy_rbreak (PyObject *self, PyObject *args, PyObject *kw)
const char **files = symtab_paths.vec.data ();
symbols = search_symbols (regex, FUNCTIONS_DOMAIN, NULL,
- symtab_paths.vec.size (), files);
+ symtab_paths.vec.size (), files, false);
}
else
- symbols = search_symbols (regex, FUNCTIONS_DOMAIN, NULL, 0, NULL);
+ symbols = search_symbols (regex, FUNCTIONS_DOMAIN, NULL, 0, NULL, false);
/* Count the number of symbols (both symbols and optionally minimal
symbols) so we can correctly check the throttle limit. */
diff --git a/gdb/stack.c b/gdb/stack.c
index 06431ea354..10a88e99ab 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -2417,13 +2417,76 @@ print_frame_local_vars (struct frame_info *frame,
}
}
+/* Structure to hold the values of the options used by the 'info
+ variables' command and other similar commands. These correspond to the
+ -q and -t options. */
+
+struct info_print_options
+{
+ int quiet = false;
+ char *type_regexp = nullptr;
+
+ ~info_print_options ()
+ {
+ xfree (type_regexp);
+ }
+};
+
+/* The options used by the 'info locals' and 'info args' commands. */
+
+static const gdb::option::option_def info_print_options_defs[] = {
+ gdb::option::boolean_option_def<info_print_options> {
+ "q",
+ [] (info_print_options *opt) { return &opt->quiet; },
+ nullptr, /* show_cmd_cb */
+ nullptr /* set_doc */
+ },
+
+ gdb::option::string_option_def<info_print_options> {
+ "t",
+ [] (info_print_options *opt) { return &opt->type_regexp; },
+ nullptr, /* show_cmd_cb */
+ nullptr /* set_doc */
+ }
+};
+
+/* Returns the option group used by 'info locals' and 'info args'
+ commands. */
+
+static gdb::option::option_def_group
+make_info_print_options_def_group (info_print_options *opts)
+{
+ return {{info_print_options_defs}, opts};
+}
+
+/* Command completer for 'info locals' and 'info args'. */
+
+static void
+info_print_command_completer (struct cmd_list_element *ignore,
+ completion_tracker &tracker,
+ const char *text, const char * /* word */)
+{
+ const auto group
+ = make_info_print_options_def_group (nullptr);
+ if (gdb::option::complete_options
+ (tracker, &text, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, group))
+ return;
+
+ const char *word = advance_to_expression_complete_word_point (tracker, text);
+ symbol_completer (ignore, tracker, text, word);
+}
+
/* Implement the 'info locals' command. */
void
info_locals_command (const char *args, int from_tty)
{
info_print_options opts;
- extract_info_print_options (&opts, &args);
+ auto grp = make_info_print_options_def_group (&opts);
+ gdb::option::process_options
+ (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+ if (args != nullptr && *args == '\0')
+ args = nullptr;
print_frame_local_vars (get_selected_frame (_("No frame selected.")),
opts.quiet, args, opts.type_regexp,
@@ -2530,7 +2593,11 @@ void
info_args_command (const char *args, int from_tty)
{
info_print_options opts;
- extract_info_print_options (&opts, &args);
+ auto grp = make_info_print_options_def_group (&opts);
+ gdb::option::process_options
+ (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+ if (args != nullptr && *args == '\0')
+ args = nullptr;
print_frame_arg_vars (get_selected_frame (_("No frame selected.")),
opts.quiet, args, opts.type_regexp, gdb_stdout);
@@ -3487,14 +3554,16 @@ Usage: info frame level LEVEL"),
All local variables of current stack frame or those matching REGEXPs.\n\
Usage: info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
Prints the local variables of the current stack frame.\n"),
- _("local variables")));
+ _("local variables"),
+ false));
set_cmd_completer_handle_brkchars (cmd, info_print_command_completer);
cmd = add_info ("args", info_args_command,
info_print_args_help (_("\
All argument variables of current stack frame or those matching REGEXPs.\n\
Usage: info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
Prints the argument variables of the current stack frame.\n"),
- _("argument variables")));
+ _("argument variables"),
+ false));
set_cmd_completer_handle_brkchars (cmd, info_print_command_completer);
if (dbx_commands)
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 787ecfe33b..7762c85708 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -4453,12 +4453,16 @@ sort_search_symbols_remove_dups (std::vector<symbol_search> *result)
Within each file the results are sorted locally; each symtab's global and
static blocks are separately alphabetized.
- Duplicate entries are removed. */
+ Duplicate entries are removed.
+
+ When EXCLUDE_MINSYMS is false then matching minsyms are also returned,
+ otherwise they are excluded. */
std::vector<symbol_search>
search_symbols (const char *regexp, enum search_domain kind,
const char *t_regexp,
- int nfiles, const char *files[])
+ int nfiles, const char *files[],
+ bool exclude_minsyms)
{
const struct blockvector *bv;
const struct block *b;
@@ -4674,6 +4678,7 @@ search_symbols (const char *regexp, enum search_domain kind,
as we assume that a minimal symbol does not have a type. */
if ((found_misc || (nfiles == 0 && kind != FUNCTIONS_DOMAIN))
+ && !exclude_minsyms
&& !treg.has_value ())
{
for (objfile *objfile : current_program_space->objfiles ())
@@ -4820,7 +4825,7 @@ print_msymbol_info (struct bound_minimal_symbol msymbol)
matches. */
static void
-symtab_symbol_info (bool quiet,
+symtab_symbol_info (bool quiet, bool exclude_minsyms,
const char *regexp, enum search_domain kind,
const char *t_regexp, int from_tty)
{
@@ -4836,7 +4841,8 @@ symtab_symbol_info (bool quiet,
/* Must make sure that if we're interrupted, symbols gets freed. */
std::vector<symbol_search> symbols = search_symbols (regexp, kind,
- t_regexp, 0, NULL);
+ t_regexp, 0, NULL,
+ exclude_minsyms);
if (!quiet)
{
@@ -4889,15 +4895,87 @@ symtab_symbol_info (bool quiet,
}
}
+/* Structure to hold the values of the options used by the 'info variables'
+ and 'info functions' commands. These correspond to the -q, -t, and -n
+ options. */
+
+struct info_print_options
+{
+ int quiet = false;
+ int exclude_minsyms = false;
+ char *type_regexp = nullptr;
+
+ ~info_print_options ()
+ {
+ xfree (type_regexp);
+ }
+};
+
+/* The options used by the 'info variables' and 'info functions'
+ commands. */
+
+static const gdb::option::option_def info_print_options_defs[] = {
+ gdb::option::boolean_option_def<info_print_options> {
+ "q",
+ [] (info_print_options *opt) { return &opt->quiet; },
+ nullptr, /* show_cmd_cb */
+ nullptr /* set_doc */
+ },
+
+ gdb::option::boolean_option_def<info_print_options> {
+ "n",
+ [] (info_print_options *opt) { return &opt->exclude_minsyms; },
+ nullptr, /* show_cmd_cb */
+ nullptr /* set_doc */
+ },
+
+ gdb::option::string_option_def<info_print_options> {
+ "t",
+ [] (info_print_options *opt) { return &opt->type_regexp; },
+ nullptr, /* show_cmd_cb */
+ nullptr /* set_doc */
+ }
+};
+
+/* Returns the option group used by 'info variables' and 'info
+ functions'. */
+
+static gdb::option::option_def_group
+make_info_print_options_def_group (info_print_options *opts)
+{
+ return {{info_print_options_defs}, opts};
+}
+
+/* Command completer for 'info variables' and 'info functions'. */
+
+static void
+info_print_command_completer (struct cmd_list_element *ignore,
+ completion_tracker &tracker,
+ const char *text, const char * /* word */)
+{
+ const auto group
+ = make_info_print_options_def_group (nullptr);
+ if (gdb::option::complete_options
+ (tracker, &text, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, group))
+ return;
+
+ const char *word = advance_to_expression_complete_word_point (tracker, text);
+ symbol_completer (ignore, tracker, text, word);
+}
+
/* Implement the 'info variables' command. */
static void
info_variables_command (const char *args, int from_tty)
{
info_print_options opts;
- extract_info_print_options (&opts, &args);
+ auto grp = make_info_print_options_def_group (&opts);
+ gdb::option::process_options
+ (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+ if (args != nullptr && *args == '\0')
+ args = nullptr;
- symtab_symbol_info (opts.quiet, args, VARIABLES_DOMAIN,
+ symtab_symbol_info (opts.quiet, opts.exclude_minsyms, args, VARIABLES_DOMAIN,
opts.type_regexp, from_tty);
}
@@ -4907,10 +4985,14 @@ static void
info_functions_command (const char *args, int from_tty)
{
info_print_options opts;
- extract_info_print_options (&opts, &args);
+ auto grp = make_info_print_options_def_group (&opts);
+ gdb::option::process_options
+ (&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
+ if (args != nullptr && *args == '\0')
+ args = nullptr;
- symtab_symbol_info (opts.quiet, args, FUNCTIONS_DOMAIN,
- opts.type_regexp, from_tty);
+ symtab_symbol_info (opts.quiet, opts.exclude_minsyms, args,
+ FUNCTIONS_DOMAIN, opts.type_regexp, from_tty);
}
/* Holds the -q option for the 'info types' command. */
@@ -4951,7 +5033,7 @@ info_types_command (const char *args, int from_tty)
(&args, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_OPERAND, grp);
if (args != nullptr && *args == '\0')
args = nullptr;
- symtab_symbol_info (opts.quiet, args, TYPES_DOMAIN, NULL, from_tty);
+ symtab_symbol_info (opts.quiet, false, args, TYPES_DOMAIN, NULL, from_tty);
}
/* Command completer for 'info types' command. */
@@ -5012,7 +5094,8 @@ rbreak_command (const char *regexp, int from_tty)
std::vector<symbol_search> symbols = search_symbols (regexp,
FUNCTIONS_DOMAIN,
NULL,
- nfiles, files);
+ nfiles, files,
+ false);
scoped_rbreak_breakpoints finalize;
for (const symbol_search &p : symbols)
@@ -6201,27 +6284,30 @@ _initialize_symtab (void)
c = add_info ("variables", info_variables_command,
info_print_args_help (_("\
All global and static variable names or those matching REGEXPs.\n\
-Usage: info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
+Usage: info variables [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n\
Prints the global and static variables.\n"),
- _("global and static variables")));
+ _("global and static variables"),
+ true));
set_cmd_completer_handle_brkchars (c, info_print_command_completer);
if (dbx_commands)
{
c = add_com ("whereis", class_info, info_variables_command,
info_print_args_help (_("\
All global and static variable names, or those matching REGEXPs.\n\
-Usage: whereis [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
+Usage: whereis [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n\
Prints the global and static variables.\n"),
- _("global and static variables")));
+ _("global and static variables"),
+ true));
set_cmd_completer_handle_brkchars (c, info_print_command_completer);
}
c = add_info ("functions", info_functions_command,
info_print_args_help (_("\
All function names or those matching REGEXPs.\n\
-Usage: info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n\
+Usage: info functions [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n\
Prints the functions.\n"),
- _("functions")));
+ _("functions"),
+ true));
set_cmd_completer_handle_brkchars (c, info_print_command_completer);
c = add_info ("types", info_types_command, _("\
diff --git a/gdb/symtab.h b/gdb/symtab.h
index f2d59a9f90..f38e544cdb 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -2027,7 +2027,8 @@ extern std::vector<symbol_search> search_symbols (const char *,
enum search_domain,
const char *,
int,
- const char **);
+ const char **,
+ bool);
extern bool treg_matches_sym_type_name (const compiled_regex &treg,
const struct symbol *sym);
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3117fe78bf..7b6793b0a2 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-27 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/info-fun.exp: Extend to test the -n flag for 'info
+ functions'. Reindent as needed.
+ * gdb.base/info-var-f1.c: New file.
+ * gdb.base/info-var-f2.c: New file.
+ * gdb.base/info-var.exp: New file.
+ * gdb.base/info-var.h: New file.
+
2019-08-26 Tom de Vries <tdevries@suse.de>
PR c++/24852
diff --git a/gdb/testsuite/gdb.base/info-fun.exp b/gdb/testsuite/gdb.base/info-fun.exp
index 208525eda6..cee3a09ac1 100644
--- a/gdb/testsuite/gdb.base/info-fun.exp
+++ b/gdb/testsuite/gdb.base/info-fun.exp
@@ -30,54 +30,63 @@ if [get_compiler_info] {
return -1
}
-# SEP must be last for the possible `unsupported' error path.
-foreach libsepdebug {NO IN SEP} { with_test_prefix "$libsepdebug" {
+foreach_with_prefix n_flag { 0 1 } {
- set sep_lib_flags $lib_flags
- if {$libsepdebug != "NO"} {
- lappend sep_lib_flags {debug}
- }
- if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $sep_lib_flags] != ""
- || [gdb_compile $srcdir/$subdir/${srcfile} ${binfile} \
- executable $bin_flags] != "" } {
- untested "failed to compile"
- return -1
- }
+ # SEP must be last for the possible `unsupported' error path.
+ foreach libsepdebug {NO IN SEP} { with_test_prefix "$libsepdebug" {
- if {$libsepdebug == "SEP"} {
- if {[gdb_gnu_strip_debug $binfile_lib] != 0} {
- unsupported "could not split debug of $binfile_lib."
- return
- } else {
- pass "split solib"
+ set sep_lib_flags $lib_flags
+ if {$libsepdebug != "NO"} {
+ lappend sep_lib_flags {debug}
+ }
+ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $sep_lib_flags] != ""
+ || [gdb_compile $srcdir/$subdir/${srcfile} ${binfile} \
+ executable $bin_flags] != "" } {
+ untested "failed to compile"
+ return -1
}
- }
- clean_restart $executable
+ if {$libsepdebug == "SEP"} {
+ if {[gdb_gnu_strip_debug $binfile_lib] != 0} {
+ unsupported "could not split debug of $binfile_lib."
+ return
+ } else {
+ pass "split solib"
+ }
+ }
+
+ clean_restart $executable
+
+ if ![runto_main] then {
+ fail "can't run to main"
+ return 0
+ }
- if ![runto_main] then {
- fail "can't run to main"
- return 0
- }
+ set match_str {All functions matching regular expression "foo":[\r\n]*}
+ if { "$libsepdebug" != "NO" } {
+ append match_str {File .*/info-fun-solib[.]c:[\r\n]*}
+ append match_str {\d+:\tint foo\(void\);[\r\n]*}
+ }
- set match_str {All functions matching regular expression "foo":[\r\n]*}
- if { "$libsepdebug" != "NO" } {
- append match_str {File .*/info-fun-solib[.]c:[\r\n]*}
- append match_str {\d+:\tint foo\(void\);[\r\n]*}
- }
- append match_str {Non-debugging symbols:[\r\n]*}
- # Note: Targets like {m68k,ppc64,s390x}-linux also have, e.g.,
- # 00000011.plt_call.foo+0 (m68k).
- set plt_foo_match "($hex \[^\r\n\]*plt\[^\r\n\]*foo\[^\r\n\]*\[\r\n\]*)?"
- append match_str $plt_foo_match
- # This text we want to match precisely.
- append match_str "$hex *foo(@plt)?\[\r\n\]*"
- # Watch for again to not have to worry about the order of appearance.
- append match_str $plt_foo_match
- if { "$libsepdebug" == "NO" } {
- # Note: The ".?" is for targets like m68k-linux that have ".foo" here.
- append match_str "$hex *.?foo\[\r\n\]*"
- }
+ set opt ""
+ if { !$n_flag } {
+ append match_str {Non-debugging symbols:[\r\n]*}
+ # Note: Targets like {m68k,ppc64,s390x}-linux also have, e.g.,
+ # 00000011.plt_call.foo+0 (m68k).
+ set plt_foo_match "($hex \[^\r\n\]*plt\[^\r\n\]*foo\[^\r\n\]*\[\r\n\]*)?"
+ append match_str $plt_foo_match
+ # This text we want to match precisely.
+ append match_str "$hex *foo(@plt)?\[\r\n\]*"
+ # Watch for again to not have to worry about the order of appearance.
+ append match_str $plt_foo_match
+ if { "$libsepdebug" == "NO" } {
+ # Note: The ".?" is for targets like m68k-linux that have ".foo" here.
+ append match_str "$hex *.?foo\[\r\n\]*"
+ }
+ } else {
+ set opt "-n"
+ }
- gdb_test "info fun foo" "$match_str"
-}}
+ gdb_test "info fun $opt foo" "$match_str"
+ }}
+}
diff --git a/gdb/testsuite/gdb.base/info-var-f1.c b/gdb/testsuite/gdb.base/info-var-f1.c
new file mode 100644
index 0000000000..b0587f12da
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var-f1.c
@@ -0,0 +1,24 @@
+/* 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/>. */
+
+#include "info-var.h"
+
+static int f1_var = -3;
+
+int
+main ()
+{
+ return global_var + get_offset() + f1_var;
+}
diff --git a/gdb/testsuite/gdb.base/info-var-f2.c b/gdb/testsuite/gdb.base/info-var-f2.c
new file mode 100644
index 0000000000..fdff696ebe
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var-f2.c
@@ -0,0 +1,26 @@
+/* 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/>. */
+
+#include "info-var.h"
+
+int global_var = 1;
+
+static int f2_var = 2;
+
+int
+get_offset (void)
+{
+ return f2_var;
+}
diff --git a/gdb/testsuite/gdb.base/info-var.exp b/gdb/testsuite/gdb.base/info-var.exp
new file mode 100644
index 0000000000..5a07d6214d
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var.exp
@@ -0,0 +1,60 @@
+# 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/>.
+
+# Some basic testing of 'info variables'.
+
+standard_testfile info-var-f1.c info-var-f2.c
+
+if {[prepare_for_testing "failed to prepare" \
+ "${testfile}" "$srcfile $srcfile2" "debug"]} {
+ return -1
+}
+
+if ![runto_main] then {
+ fail "can't run to main"
+ return 0
+}
+
+gdb_test "info variables" \
+ [multi_line \
+ "All defined variables:" \
+ "" \
+ "File .*${srcfile}:" \
+ "18:\[ \t\]+static int f1_var;" \
+ "" \
+ "File .*${srcfile2}:" \
+ "18:\[ \t\]+int global_var;" \
+ "20:\[ \t\]+static int f2_var;" \
+ "" \
+ "Non-debugging symbols:" \
+ ".*"]
+
+gdb_test "info variables -n" \
+ [multi_line \
+ "All defined variables:" \
+ "" \
+ "File .*${srcfile}:" \
+ "18:\[ \t\]+static int f1_var;" \
+ "" \
+ "File .*${srcfile2}:" \
+ "18:\[ \t\]+int global_var;" \
+ "20:\[ \t\]+static int f2_var;" ]
+
+gdb_test "info variables -n global" \
+ [multi_line \
+ "All variables matching regular expression \"global\":" \
+ "" \
+ "File .*${srcfile2}:" \
+ "18:\[ \t\]+int global_var;" ]
diff --git a/gdb/testsuite/gdb.base/info-var.h b/gdb/testsuite/gdb.base/info-var.h
new file mode 100644
index 0000000000..d65db82474
--- /dev/null
+++ b/gdb/testsuite/gdb.base/info-var.h
@@ -0,0 +1,18 @@
+/* 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/>. */
+
+extern int global_var;
+
+extern int get_offset (void);
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix compiler warning in linux-namespaces.c
@ 2019-08-27 19:31 gdb-buildbot
2019-08-28 12:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-27 19:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 550105b77914a8b06498318775b28e85c610b9a3 ***
commit 550105b77914a8b06498318775b28e85c610b9a3
Author: Christian Biesinger <cbiesinger@google.com>
AuthorDate: Tue Aug 27 13:22:38 2019 -0500
Commit: Christian Biesinger <cbiesinger@google.com>
CommitDate: Tue Aug 27 13:53:05 2019 -0500
Fix compiler warning in linux-namespaces.c
../../gdb/nat/linux-namespaces.c: In function void mnsh_main(int):
../../gdb/nat/linux-namespaces.c:604:8: warning: fd may be used uninitialized in this function [-Wmaybe-uninitialized]
close (fd);
~~~~~~^~~~
And the warning is correct -- mnsh_recv_message can return -1 and leave fd
uninitialized, and mnsh_main will still call close (fd) if that happens.
Initialize fd to -1 to avoid that.
gdb/ChangeLog:
2019-08-27 Christian Biesinger <cbiesinger@google.com>
* nat/linux-namespaces.c (mnsh_main): Initialize fd (to -1).
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c7d2dae4ff..002825312c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-27 Christian Biesinger <cbiesinger@google.com>
+
+ * nat/linux-namespaces.c (mnsh_main): Initialize fd (to -1).
+
2019-08-27 Andrew Burgess <andrew.burgess@embecosm.com>
* cli/cli-utils.c (info_print_options_defs): Delete.
diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c
index 503f755903..e49bc1ade3 100644
--- a/gdb/nat/linux-namespaces.c
+++ b/gdb/nat/linux-namespaces.c
@@ -562,7 +562,7 @@ mnsh_main (int sock)
while (1)
{
enum mnsh_msg_type type;
- int fd, int1, int2;
+ int fd = -1, int1, int2;
char buf[PATH_MAX];
ssize_t size, response = -1;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Implement la_print_typedef for Fortran
@ 2019-08-28 13:33 gdb-buildbot
2019-08-28 13:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-28 13:33 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1 ***
commit 1f20c35ea4a0095e6a9d9b7819f6c437a0c4cfc1
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Tue Jul 9 15:47:19 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Wed Aug 28 13:33:54 2019 +0100
gdb/fortran: Implement la_print_typedef for Fortran
Implement an la_print_typedef method for Fortran, this allows 'info
types' to work for Fortran. The implementation is just copied from
ada_print_typedef (with the appropriate changes).
To support the testing of this patch I added a new proc,
fortran_character1, to lib/fortran.exp which returns a regexp to match
a 1-byte character type. The regexp returned is correct for current
versions of gFortran. All of the other regexp are guesses based on
all of the other support procs in lib/fortran.exp, I haven't tested
them myself.
gdb/ChangeLog:
* f-lang.c (f_language_defn): Use f_print_typedef.
* f-lang.h (f_print_typedef): Declare.
* f-typeprint.c (f_print_typedef): Define.
gdb/testsuite/ChangeLog:
* gdb.fortran/info-types.exp: New file.
* gdb.fortran/info-types.f90: New file.
* lib/fortran.exp (fortran_character1): New proc.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 002825312c..4767e03b7e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * f-lang.c (f_language_defn): Use f_print_typedef.
+ * f-lang.h (f_print_typedef): Declare.
+ * f-typeprint.c (f_print_typedef): Define.
+
2019-08-27 Christian Biesinger <cbiesinger@google.com>
* nat/linux-namespaces.c (mnsh_main): Initialize fd (to -1).
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index e93a5f3427..ce7f1471c5 100644
--- a/gdb/f-lang.c
+++ b/gdb/f-lang.c
@@ -644,7 +644,7 @@ extern const struct language_defn f_language_defn =
f_printstr, /* function to print string constant */
f_emit_char, /* Function to print a single character */
f_print_type, /* Print a type using appropriate syntax */
- default_print_typedef, /* Print a typedef using appropriate syntax */
+ f_print_typedef, /* Print a typedef using appropriate syntax */
f_val_print, /* Print a value using appropriate syntax */
c_value_print, /* FIXME */
default_read_var_value, /* la_read_var_value */
diff --git a/gdb/f-lang.h b/gdb/f-lang.h
index 1ba529d76c..cf6024c445 100644
--- a/gdb/f-lang.h
+++ b/gdb/f-lang.h
@@ -28,6 +28,11 @@ struct parser_state;
extern int f_parse (struct parser_state *);
+/* Implement the la_print_typedef language method for Fortran. */
+
+extern void f_print_typedef (struct type *type, struct symbol *new_symbol,
+ struct ui_file *stream);
+
extern void f_print_type (struct type *, const char *, struct ui_file *, int,
int, const struct type_print_options *);
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 17ac02f4cc..92b5093874 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -45,6 +45,17 @@ void f_type_print_varspec_prefix (struct type *, struct ui_file *,
void f_type_print_base (struct type *, struct ui_file *, int, int);
\f
+/* See documentation in f-lang.h. */
+
+void
+f_print_typedef (struct type *type, struct symbol *new_symbol,
+ struct ui_file *stream)
+{
+ type = check_typedef (type);
+ f_print_type (type, "", stream, 0, 0, &type_print_raw_options);
+ fprintf_filtered (stream, "\n");
+}
+
/* LEVEL is the depth to indent lines by. */
void
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7b6793b0a2..02a3c01667 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.fortran/info-types.exp: New file.
+ * gdb.fortran/info-types.f90: New file.
+ * lib/fortran.exp (fortran_character1): New proc.
+
2019-08-27 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/info-fun.exp: Extend to test the -n flag for 'info
diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
new file mode 100644
index 0000000000..9571dc4559
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -0,0 +1,45 @@
+# 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 file tests 'info types' for some Fortran types.
+
+load_lib "fortran.exp"
+
+if { [skip_fortran_tests] } { continue }
+
+standard_testfile .f90
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}] } {
+ return -1
+}
+
+if { ![runto MAIN__] } {
+ perror "Could not run to breakpoint `MAIN__'."
+ continue
+}
+
+set integer4 [fortran_int4]
+set logical4 [fortran_logical4]
+set character1 [fortran_character1]
+
+gdb_test "info types" \
+ [multi_line \
+ "All defined types:" \
+ "" \
+ "File .*:" \
+ "\[\t \]+${character1}" \
+ "\[\t \]+${integer4}" \
+ "\[\t \]+${logical4}" \
+ "16:\[\t \]+Type s1;" ]
diff --git a/gdb/testsuite/gdb.fortran/info-types.f90 b/gdb/testsuite/gdb.fortran/info-types.f90
new file mode 100644
index 0000000000..21c9d9df63
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/info-types.f90
@@ -0,0 +1,25 @@
+! 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 2 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/>.
+
+program info_types_test
+ type :: s1
+ integer :: a
+ end type s1
+
+ logical :: l
+ type (s1) :: var_a
+ var_a%a = 1
+ l = .FALSE.
+end program info_types_test
diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp
index d3a35cd291..81811dbc3c 100644
--- a/gdb/testsuite/lib/fortran.exp
+++ b/gdb/testsuite/lib/fortran.exp
@@ -88,3 +88,15 @@ proc fortran_logical4 {} {
return "unknown"
}
}
+
+proc fortran_character1 {} {
+ if {[test_compiler_info {gcc-4-[012]-*}]} {
+ return "character1"
+ } elseif {[test_compiler_info {gcc-*}]} {
+ return "character\\(kind=1\\)"
+ } elseif {[test_compiler_info {icc-*}]} {
+ return "CHARACTER\\(1\\)"
+ } else {
+ return "unknown"
+ }
+}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] gdb/fortran: Don't include module symbols when searching for types
@ 2019-08-28 13:58 gdb-buildbot
2019-08-28 15:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-28 13:58 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d8f27c6018adbb32a3ebba39a5abac44a6b9e67c ***
commit d8f27c6018adbb32a3ebba39a5abac44a6b9e67c
Author: Andrew Burgess <andrew.burgess@embecosm.com>
AuthorDate: Tue Jul 9 15:49:07 2019 +0100
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Wed Aug 28 13:33:55 2019 +0100
gdb/fortran: Don't include module symbols when searching for types
Currently the 'info types' command will return symbols that correspond
to Fortran modules. This is because the symbols are created with
domain MODULE_DOMAIN and address_class LOC_TYPEDEF. The address_class
LOC_TYPEDEF is the same address_class used for type symbols which is
why the modules show up when listing types.
This commit explicitly prevents symbols in the MODULE_DOMAIN from
appearing when we search for symbols in the TYPES_DOMAIN, this
prevents the Fortran module symbols from appearing in the output of
'info types'.
gdb/ChangeLog:
* symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols
when searching for types.
gdb/testsuite/ChangeLog:
* gdb.fortran/info-types.exp: Add module.
* gdb.fortran/info-types.f90: Update expected results.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4767e03b7e..a82f7c64ae 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols
+ when searching for types.
+
2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
* f-lang.c (f_language_defn): Use f_print_typedef.
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 7762c85708..88e34de05b 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -4659,7 +4659,8 @@ search_symbols (const char *regexp, enum search_domain kind,
|| treg_matches_sym_type_name (*treg,
sym)))
|| (kind == TYPES_DOMAIN
- && SYMBOL_CLASS (sym) == LOC_TYPEDEF))))
+ && SYMBOL_CLASS (sym) == LOC_TYPEDEF
+ && SYMBOL_DOMAIN (sym) != MODULE_DOMAIN))))
{
/* match */
result.emplace_back (i, sym);
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 02a3c01667..3939a747c5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.fortran/info-types.exp: Add module.
+ * gdb.fortran/info-types.f90: Update expected results.
+
2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.fortran/info-types.exp: New file.
diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
index 9571dc4559..81e67395e8 100644
--- a/gdb/testsuite/gdb.fortran/info-types.exp
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -42,4 +42,6 @@ gdb_test "info types" \
"\[\t \]+${character1}" \
"\[\t \]+${integer4}" \
"\[\t \]+${logical4}" \
- "16:\[\t \]+Type s1;" ]
+ "20:\[\t \]+Type __vtype_mod1_M1t1;" \
+ "17:\[\t \]+Type m1t1;" \
+ "22:\[\t \]+Type s1;" ]
diff --git a/gdb/testsuite/gdb.fortran/info-types.f90 b/gdb/testsuite/gdb.fortran/info-types.f90
index 21c9d9df63..0e27e1ddf0 100644
--- a/gdb/testsuite/gdb.fortran/info-types.f90
+++ b/gdb/testsuite/gdb.fortran/info-types.f90
@@ -13,13 +13,24 @@
! You should have received a copy of the GNU General Public License
! along with this program. If not, see <http://www.gnu.org/licenses/>.
+module mod1
+ type :: m1t1
+ integer :: b
+ end type m1t1
+end module mod1
+
program info_types_test
+ use mod1
+
type :: s1
integer :: a
end type s1
logical :: l
type (s1) :: var_a
+ type (m1t1) :: var_b
+
var_a%a = 1
+ var_b%b = 2
l = .FALSE.
end program info_types_test
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix Gnulib glob.c resource leaks found by Coverity
@ 2019-08-28 15:15 gdb-buildbot
2019-08-28 16:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-28 15:15 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8ae0786c30a3a8d846994d0a6e7a00646f0bcd20 ***
commit 8ae0786c30a3a8d846994d0a6e7a00646f0bcd20
Author: Gary Benson <gbenson@redhat.com>
AuthorDate: Wed Aug 28 15:19:28 2019 +0100
Commit: Gary Benson <gbenson@redhat.com>
CommitDate: Wed Aug 28 15:19:28 2019 +0100
Fix Gnulib glob.c resource leaks found by Coverity
Coverity discovered a number of resource leaks in Gnulib's glob.c.
This commit backports the Gnulib commits that fix the leaks.
gnulib/ChangeLog:
* patches/0003-Fix-glob-c-Coverity-issues.patch: New file.
* update-gnulib.sh: List the above.
* import/glob.c: Rebuild.
diff --git a/gnulib/ChangeLog b/gnulib/ChangeLog
index 0117dc5bae..181fccd44b 100644
--- a/gnulib/ChangeLog
+++ b/gnulib/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28 Gary Benson <gbenson@redhat.com>
+
+ * patches/0003-Fix-glob-c-Coverity-issues.patch: New file.
+ * update-gnulib.sh: List the above.
+ * import/glob.c: Rebuild.
+
2019-06-21 Gary Benson <gbenson@redhat.com>
* update-gnulib.sh: Adjust paths.
diff --git a/gnulib/import/glob.c b/gnulib/import/glob.c
index 4b04b902e5..416d210b63 100644
--- a/gnulib/import/glob.c
+++ b/gnulib/import/glob.c
@@ -734,6 +734,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
pwtmpbuf = malloc (pwbuflen);
if (pwtmpbuf == NULL)
{
+ if (__glibc_unlikely (malloc_name))
+ free (name);
retval = GLOB_NOSPACE;
goto out;
}
@@ -762,6 +764,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
if (newp == NULL)
{
free (malloc_pwtmpbuf);
+ if (__glibc_unlikely (malloc_name))
+ free (name);
retval = GLOB_NOSPACE;
goto out;
}
@@ -797,23 +801,30 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
malloc_home_dir = 1;
}
memcpy (home_dir, p->pw_dir, home_dir_len);
-
- free (pwtmpbuf);
}
}
+ free (malloc_pwtmpbuf);
+ }
+ else
+ {
+ if (__glibc_unlikely (malloc_name))
+ free (name);
}
}
if (home_dir == NULL || home_dir[0] == '\0')
{
+ if (__glibc_unlikely (malloc_home_dir))
+ free (home_dir);
if (flags & GLOB_TILDE_CHECK)
{
- if (__glibc_unlikely (malloc_home_dir))
- free (home_dir);
retval = GLOB_NOMATCH;
goto out;
}
else
- home_dir = (char *) "~"; /* No luck. */
+ {
+ home_dir = (char *) "~"; /* No luck. */
+ malloc_home_dir = 0;
+ }
}
# endif /* WINDOWS32 */
# endif
@@ -855,6 +866,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
dirname = newp;
dirlen += home_len - 1;
malloc_dirname = !use_alloca;
+
+ if (__glibc_unlikely (malloc_home_dir))
+ free (home_dir);
}
dirname_modified = 1;
}
@@ -1027,9 +1041,12 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
free (malloc_pwtmpbuf);
if (flags & GLOB_TILDE_CHECK)
- /* We have to regard it as an error if we cannot find the
- home directory. */
- return GLOB_NOMATCH;
+ {
+ /* We have to regard it as an error if we cannot find the
+ home directory. */
+ retval = GLOB_NOMATCH;
+ goto out;
+ }
}
}
}
@@ -1059,7 +1076,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
free (pglob->gl_pathv);
pglob->gl_pathv = NULL;
pglob->gl_pathc = 0;
- return GLOB_NOSPACE;
+ retval = GLOB_NOSPACE;
+ goto out;
}
new_gl_pathv = realloc (pglob->gl_pathv,
@@ -1077,12 +1095,19 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
p = mempcpy (pglob->gl_pathv[newcount], dirname, dirlen);
p[0] = '/';
p[1] = '\0';
+ if (__glibc_unlikely (malloc_dirname))
+ free (dirname);
}
else
{
- pglob->gl_pathv[newcount] = strdup (dirname);
- if (pglob->gl_pathv[newcount] == NULL)
- goto nospace;
+ if (__glibc_unlikely (malloc_dirname))
+ pglob->gl_pathv[newcount] = dirname;
+ else
+ {
+ pglob->gl_pathv[newcount] = strdup (dirname);
+ if (pglob->gl_pathv[newcount] == NULL)
+ goto nospace;
+ }
}
pglob->gl_pathv[++newcount] = NULL;
++pglob->gl_pathc;
@@ -1092,7 +1117,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
}
/* Not found. */
- return GLOB_NOMATCH;
+ retval = GLOB_NOMATCH;
+ goto out;
}
meta = __glob_pattern_type (dirname, !(flags & GLOB_NOESCAPE));
@@ -1138,7 +1164,10 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
if (status != 0)
{
if ((flags & GLOB_NOCHECK) == 0 || status != GLOB_NOMATCH)
- return status;
+ {
+ retval = status;
+ goto out;
+ }
goto no_matches;
}
@@ -1157,7 +1186,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
if (interrupt_state)
{
globfree (&dirs);
- return GLOB_ABORTED;
+ retval = GLOB_ABORTED;
+ goto out;
}
}
#endif /* SHELL. */
@@ -1176,7 +1206,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
globfree (&dirs);
globfree (pglob);
pglob->gl_pathc = 0;
- return status;
+ retval = status;
+ goto out;
}
/* Stick the directory on the front of each name. */
@@ -1187,7 +1218,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
globfree (&dirs);
globfree (pglob);
pglob->gl_pathc = 0;
- return GLOB_NOSPACE;
+ retval = GLOB_NOSPACE;
+ goto out;
}
}
@@ -1209,7 +1241,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
{
nospace2:
globfree (&dirs);
- return GLOB_NOSPACE;
+ retval = GLOB_NOSPACE;
+ goto out;
}
new_gl_pathv = realloc (pglob->gl_pathv,
@@ -1224,7 +1257,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
globfree (&dirs);
globfree (pglob);
pglob->gl_pathc = 0;
- return GLOB_NOSPACE;
+ retval = GLOB_NOSPACE;
+ goto out;
}
++pglob->gl_pathc;
@@ -1236,7 +1270,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
else
{
globfree (&dirs);
- return GLOB_NOMATCH;
+ retval = GLOB_NOMATCH;
+ goto out;
}
}
@@ -1282,7 +1317,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
flags = orig_flags;
goto no_matches;
}
- return status;
+ retval = status;
+ goto out;
}
if (dirlen > 0)
@@ -1294,7 +1330,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
{
globfree (pglob);
pglob->gl_pathc = 0;
- return GLOB_NOSPACE;
+ retval = GLOB_NOSPACE;
+ goto out;
}
}
}
@@ -1319,7 +1356,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
{
globfree (pglob);
pglob->gl_pathc = 0;
- return GLOB_NOSPACE;
+ retval = GLOB_NOSPACE;
+ goto out;
}
strcpy (&new[len - 2], "/");
pglob->gl_pathv[i] = new;
diff --git a/gnulib/patches/0003-Fix-glob-c-Coverity-issues.patch b/gnulib/patches/0003-Fix-glob-c-Coverity-issues.patch
new file mode 100644
index 0000000000..f976bb9e1a
--- /dev/null
+++ b/gnulib/patches/0003-Fix-glob-c-Coverity-issues.patch
@@ -0,0 +1,279 @@
+Coverity discovered a number of resource leaks in Gnulib.
+The solution is to backport the following Gnulib commits:
+
+ commit 0eee3ccaae5bb3d0016a0da8b8e5108767c02748
+ Author: Bruno Haible <bruno@clisp.org>
+ Date: Fri Mar 31 22:41:38 2017 +0200
+
+ glob: Fix memory leaks.
+
+ * lib/glob.c (glob): Free allocated memory before returning.
+ Reported by Coverity via Tim Rhsen.
+
+ commit b1d7f3165ba1c7a44a29017eb80491094aa240ba
+ Author: Bruno Haible <bruno@clisp.org>
+ Date: Fri Mar 31 22:43:35 2017 +0200
+
+ glob: Fix invalid free() call.
+
+ * lib/glob.c (glob): Reset malloc_home_dir when assigning a pointer to
+ static storage to home_dir.
+ Reported by Coverity via Tim Rhsen.
+
+ commit 1540f3441555f756558f3a18e5f68914c0b72227
+ Author: Bruno Haible <bruno@clisp.org>
+ Date: Sat Apr 1 15:15:18 2017 +0200
+
+ glob: Fix more memory leaks.
+
+ * lib/glob.c (glob): Free allocated memory before returning.
+ Reported by Coverity via Tim Rhsen.
+
+ commit b19cb256c9a4d3a138c27181cffee5513edb0e81
+ Author: Bruno Haible <bruno@clisp.org>
+ Date: Thu Jul 6 23:21:49 2017 +0200
+
+ glob: Fix more memory leaks.
+
+ * lib/glob.c (glob): Free dirname before returning.
+ Reported by Coverity and Tim Rhsen.
+
+ commit 8cb994d1fc4a957359780e1a4187b4f250c1cea5
+ Author: Tim Rhsen <tim.ruehsen@gmx.de>
+ Date: Mon Jul 10 19:02:19 2017 +0200
+
+ glob: Fix more memory leaks.
+
+ * lib/glob.c (glob): Use 'goto out' in order to free dirname before
+ returning.
+ Reported by Tim Rhsen.
+
+diff --git a/gnulib/import/glob.c b/gnulib/import/glob.c
+index 4b04b90..416d210 100644
+--- a/gdb/gnulib/import/glob.c
++++ b/gdb/gnulib/import/glob.c
+@@ -734,6 +734,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ pwtmpbuf = malloc (pwbuflen);
+ if (pwtmpbuf == NULL)
+ {
++ if (__glibc_unlikely (malloc_name))
++ free (name);
+ retval = GLOB_NOSPACE;
+ goto out;
+ }
+@@ -762,6 +764,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ if (newp == NULL)
+ {
+ free (malloc_pwtmpbuf);
++ if (__glibc_unlikely (malloc_name))
++ free (name);
+ retval = GLOB_NOSPACE;
+ goto out;
+ }
+@@ -797,23 +801,30 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ malloc_home_dir = 1;
+ }
+ memcpy (home_dir, p->pw_dir, home_dir_len);
+-
+- free (pwtmpbuf);
+ }
+ }
++ free (malloc_pwtmpbuf);
++ }
++ else
++ {
++ if (__glibc_unlikely (malloc_name))
++ free (name);
+ }
+ }
+ if (home_dir == NULL || home_dir[0] == '\0')
+ {
++ if (__glibc_unlikely (malloc_home_dir))
++ free (home_dir);
+ if (flags & GLOB_TILDE_CHECK)
+ {
+- if (__glibc_unlikely (malloc_home_dir))
+- free (home_dir);
+ retval = GLOB_NOMATCH;
+ goto out;
+ }
+ else
+- home_dir = (char *) "~"; /* No luck. */
++ {
++ home_dir = (char *) "~"; /* No luck. */
++ malloc_home_dir = 0;
++ }
+ }
+ # endif /* WINDOWS32 */
+ # endif
+@@ -855,6 +866,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ dirname = newp;
+ dirlen += home_len - 1;
+ malloc_dirname = !use_alloca;
++
++ if (__glibc_unlikely (malloc_home_dir))
++ free (home_dir);
+ }
+ dirname_modified = 1;
+ }
+@@ -1027,9 +1041,12 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ free (malloc_pwtmpbuf);
+
+ if (flags & GLOB_TILDE_CHECK)
+- /* We have to regard it as an error if we cannot find the
+- home directory. */
+- return GLOB_NOMATCH;
++ {
++ /* We have to regard it as an error if we cannot find the
++ home directory. */
++ retval = GLOB_NOMATCH;
++ goto out;
++ }
+ }
+ }
+ }
+@@ -1059,7 +1076,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ free (pglob->gl_pathv);
+ pglob->gl_pathv = NULL;
+ pglob->gl_pathc = 0;
+- return GLOB_NOSPACE;
++ retval = GLOB_NOSPACE;
++ goto out;
+ }
+
+ new_gl_pathv = realloc (pglob->gl_pathv,
+@@ -1077,12 +1095,19 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ p = mempcpy (pglob->gl_pathv[newcount], dirname, dirlen);
+ p[0] = '/';
+ p[1] = '\0';
++ if (__glibc_unlikely (malloc_dirname))
++ free (dirname);
+ }
+ else
+ {
+- pglob->gl_pathv[newcount] = strdup (dirname);
+- if (pglob->gl_pathv[newcount] == NULL)
+- goto nospace;
++ if (__glibc_unlikely (malloc_dirname))
++ pglob->gl_pathv[newcount] = dirname;
++ else
++ {
++ pglob->gl_pathv[newcount] = strdup (dirname);
++ if (pglob->gl_pathv[newcount] == NULL)
++ goto nospace;
++ }
+ }
+ pglob->gl_pathv[++newcount] = NULL;
+ ++pglob->gl_pathc;
+@@ -1092,7 +1117,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ }
+
+ /* Not found. */
+- return GLOB_NOMATCH;
++ retval = GLOB_NOMATCH;
++ goto out;
+ }
+
+ meta = __glob_pattern_type (dirname, !(flags & GLOB_NOESCAPE));
+@@ -1138,7 +1164,10 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ if (status != 0)
+ {
+ if ((flags & GLOB_NOCHECK) == 0 || status != GLOB_NOMATCH)
+- return status;
++ {
++ retval = status;
++ goto out;
++ }
+ goto no_matches;
+ }
+
+@@ -1157,7 +1186,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ if (interrupt_state)
+ {
+ globfree (&dirs);
+- return GLOB_ABORTED;
++ retval = GLOB_ABORTED;
++ goto out;
+ }
+ }
+ #endif /* SHELL. */
+@@ -1176,7 +1206,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ globfree (&dirs);
+ globfree (pglob);
+ pglob->gl_pathc = 0;
+- return status;
++ retval = status;
++ goto out;
+ }
+
+ /* Stick the directory on the front of each name. */
+@@ -1187,7 +1218,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ globfree (&dirs);
+ globfree (pglob);
+ pglob->gl_pathc = 0;
+- return GLOB_NOSPACE;
++ retval = GLOB_NOSPACE;
++ goto out;
+ }
+ }
+
+@@ -1209,7 +1241,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ {
+ nospace2:
+ globfree (&dirs);
+- return GLOB_NOSPACE;
++ retval = GLOB_NOSPACE;
++ goto out;
+ }
+
+ new_gl_pathv = realloc (pglob->gl_pathv,
+@@ -1224,7 +1257,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ globfree (&dirs);
+ globfree (pglob);
+ pglob->gl_pathc = 0;
+- return GLOB_NOSPACE;
++ retval = GLOB_NOSPACE;
++ goto out;
+ }
+
+ ++pglob->gl_pathc;
+@@ -1236,7 +1270,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ else
+ {
+ globfree (&dirs);
+- return GLOB_NOMATCH;
++ retval = GLOB_NOMATCH;
++ goto out;
+ }
+ }
+
+@@ -1282,7 +1317,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ flags = orig_flags;
+ goto no_matches;
+ }
+- return status;
++ retval = status;
++ goto out;
+ }
+
+ if (dirlen > 0)
+@@ -1294,7 +1330,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ {
+ globfree (pglob);
+ pglob->gl_pathc = 0;
+- return GLOB_NOSPACE;
++ retval = GLOB_NOSPACE;
++ goto out;
+ }
+ }
+ }
+@@ -1319,7 +1356,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+ {
+ globfree (pglob);
+ pglob->gl_pathc = 0;
+- return GLOB_NOSPACE;
++ retval = GLOB_NOSPACE;
++ goto out;
+ }
+ strcpy (&new[len - 2], "/");
+ pglob->gl_pathv[i] = new;
diff --git a/gnulib/update-gnulib.sh b/gnulib/update-gnulib.sh
index 0e1df226de..0c8357c888 100755
--- a/gnulib/update-gnulib.sh
+++ b/gnulib/update-gnulib.sh
@@ -171,6 +171,7 @@ apply_patches ()
apply_patches "patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-when-cross-comp.patch"
apply_patches "patches/0002-mkostemp-mkostemps-Fix-compilation-error-in-C-mode-o.patch"
+apply_patches "patches/0003-Fix-glob-c-Coverity-issues.patch"
# Regenerate all necessary files...
aclocal -Iimport/m4 -I../config &&
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix info-var.exp for debug info from other files
@ 2019-08-28 17:56 gdb-buildbot
2019-08-28 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-28 17:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 48352473b1d2c213749a324f392cf8ec53d273a6 ***
commit 48352473b1d2c213749a324f392cf8ec53d273a6
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Wed Aug 28 19:13:29 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Wed Aug 28 19:13:29 2019 +0200
[gdb/testsuite] Fix info-var.exp for debug info from other files
On openSUSE Leap 15.1, I get:
...
FAIL: gdb.base/info-var.exp: info variables
FAIL: gdb.base/info-var.exp: info variables -n
...
because the info variables command prints info also for init.c:
...
File init.c:^M
24: const int _IO_stdin_used;^M
...
while the regexps in the test-case only expect info for info-var-f1.c and
info-var-f2.c.
Fix this by extending the regexps.
Tested on x86_64-linux, both openSUSE Leap 15.1 and Fedora 30.
gdb/testsuite/ChangeLog:
2019-08-28 Tom de Vries <tdevries@suse.de>
* gdb.base/info-var.exp: Allow info variables to print info for files
other than info-var-f1.c and info-var-f2.c.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3939a747c5..06ee15c97a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-28 Tom de Vries <tdevries@suse.de>
+
+ * gdb.base/info-var.exp: Allow info variables to print info for files
+ other than info-var-f1.c and info-var-f2.c.
+
2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.fortran/info-types.exp: Add module.
diff --git a/gdb/testsuite/gdb.base/info-var.exp b/gdb/testsuite/gdb.base/info-var.exp
index 5a07d6214d..6dd896d8aa 100644
--- a/gdb/testsuite/gdb.base/info-var.exp
+++ b/gdb/testsuite/gdb.base/info-var.exp
@@ -37,7 +37,10 @@ gdb_test "info variables" \
"File .*${srcfile2}:" \
"18:\[ \t\]+int global_var;" \
"20:\[ \t\]+static int f2_var;" \
- "" \
+ "(" \
+ "File .*:(" \
+ "$decimal:.*" \
+ ")+)*" \
"Non-debugging symbols:" \
".*"]
@@ -50,7 +53,10 @@ gdb_test "info variables -n" \
"" \
"File .*${srcfile2}:" \
"18:\[ \t\]+int global_var;" \
- "20:\[ \t\]+static int f2_var;" ]
+ "20:\[ \t\]+static int f2_var;(" \
+ "" \
+ "File .*:(" \
+ "$decimal:.*)+)*"]
gdb_test "info variables -n global" \
[multi_line \
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR24891, objdump memory leaks when parsing malformed archive
@ 2019-08-29 0:55 gdb-buildbot
2019-08-29 1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-29 0:55 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 83cf0d04dcdc9a4e7f105a517390e4c1af444340 ***
commit 83cf0d04dcdc9a4e7f105a517390e4c1af444340
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Wed Aug 28 16:34:34 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 29 07:50:40 2019 +0930
PR24891, objdump memory leaks when parsing malformed archive
BFD was leaking memory in bfd_check_format_matches. As part of
deciding the proper format of an archive, BFD looks at the format of
the first file stored. That file's bfd was left open for reasons
given in a comment removed in git commit 0e71e4955cd1 that said:
/* We ought to close `first' here, but we can't, because
we have no way to remove it from the archive cache.
It's close to impossible to figure out when we can
release bfd_ardata. FIXME. */
Well, things have changed since that comment was true and we now can
remove files from the archive cache. Closing the first file is good
and cures some of the leaks. Other leaks are caused by
bfd_check_format_matches throwing away bfd tdata before trying a new
match. That lost the element cache set up when format checking the
first element in the archive. The easiest and cleanest fix is to
simply disable the caching when checking the first element.
PR 24891
* bfd.c (struct bfd): Add no_element_cache.
* archive.c (_bfd_get_elt_at_filepos): Don't add element to
archive cache when no_element_cache.
(bfd_generic_archive_p): Set no_element_cache when opening first
element to check format. Close first element too.
(do_slurp_bsd_armap): Don't zero ardata->cache here.
* bfd-in2.h: Regenerate.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9f7a8cfc6a..fe7f8eee6a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2019-08-29 Alan Modra <amodra@gmail.com>
+
+ PR 24891
+ * bfd.c (struct bfd): Add no_element_cache.
+ * archive.c (_bfd_get_elt_at_filepos): Don't add element to
+ archive cache when no_element_cache.
+ (bfd_generic_archive_p): Set no_element_cache when opening first
+ element to check format. Close first element too.
+ (do_slurp_bsd_armap): Don't zero ardata->cache here.
+ * bfd-in2.h: Regenerate.
+
2019-08-24 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_edit_toc): Exclude undefined weak
diff --git a/bfd/archive.c b/bfd/archive.c
index 0a7da3a0cb..3baf83d40c 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -734,7 +734,8 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
/* Copy is_linker_input. */
n_bfd->is_linker_input = archive->is_linker_input;
- if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd))
+ if (archive->no_element_cache
+ || _bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd))
return n_bfd;
free (new_areldata);
@@ -885,6 +886,7 @@ bfd_generic_archive_p (bfd *abfd)
if (abfd->target_defaulted && bfd_has_map (abfd))
{
bfd *first;
+ unsigned int save;
/* This archive has a map, so we may presume that the contents
are object files. Make sure that if the first file in the
@@ -897,14 +899,17 @@ bfd_generic_archive_p (bfd *abfd)
normal archive, regardless of the format of the object files.
We do accept an empty archive. */
+ save = abfd->no_element_cache;
+ abfd->no_element_cache = 1;
first = bfd_openr_next_archived_file (abfd, NULL);
+ abfd->no_element_cache = save;
if (first != NULL)
{
first->target_defaulted = FALSE;
if (bfd_check_format (first, bfd_object)
&& first->xvec != abfd->xvec)
bfd_set_error (bfd_error_wrong_object_format);
- /* And we ought to close `first' here too. */
+ bfd_close (first);
}
}
@@ -974,7 +979,6 @@ do_slurp_bsd_armap (bfd *abfd)
goto byebye;
}
- ardata->cache = 0;
rbase = raw_armap + BSD_SYMDEF_COUNT_SIZE;
stringbase = ((char *) rbase
+ ardata->symdef_count * BSD_SYMDEF_SIZE
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index cf44bd0751..63b4792818 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -7180,6 +7180,9 @@ struct bfd
/* Set if this is a thin archive. */
unsigned int is_thin_archive : 1;
+ /* Set if this archive should not cache element positions. */
+ unsigned int no_element_cache : 1;
+
/* Set if only required symbols should be added in the link hash table for
this object. Used by VMS linkers. */
unsigned int selective_search : 1;
diff --git a/bfd/bfd.c b/bfd/bfd.c
index a9b224b925..f56a8d342f 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -220,6 +220,9 @@ CODE_FRAGMENT
. {* Set if this is a thin archive. *}
. unsigned int is_thin_archive : 1;
.
+. {* Set if this archive should not cache element positions. *}
+. unsigned int no_element_cache : 1;
+.
. {* Set if only required symbols should be added in the link hash table for
. this object. Used by VMS linkers. *}
. unsigned int selective_search : 1;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Fix a gp relaxation reloc overflow error.
@ 2019-08-29 1:25 gdb-buildbot
2019-08-29 2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-29 1:25 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 507685a390b47d853f22176273cb949e2ee8da81 ***
commit 507685a390b47d853f22176273cb949e2ee8da81
Author: Jim Wilson <jimw@sifive.com>
AuthorDate: Wed Aug 28 17:47:01 2019 -0700
Commit: Jim Wilson <jimw@sifive.com>
CommitDate: Wed Aug 28 17:47:01 2019 -0700
RISC-V: Fix a gp relaxation reloc overflow error.
This was broken when I changed how we compute the value for the gp register.
It used to be computed inside the sdata section. Now it is computed at the
end which makes it an abs section symbol. There is code that tries to use
the alignment of the section that the gp value is in, but this does not work
if it is in the abs section, as the abs section has alignment of 1 byte.
There are people using alternative linker scripts that still define it in the
sdata section, so the code is still useful. Thus adding a check to disable
this when gp is in the abs section.
bfd/
* elfnn-riscv.c (_bfd_riscv_relax_lui): Add check to exclude abs
section when setting max_alignment. Update comment.
(_bfd_riscv_relax_pc): Likewise.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fe7f8eee6a..ded2898771 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-28 Jim Wilson <jimw@sifive.com>
+
+ * elfnn-riscv.c (_bfd_riscv_relax_lui): Add check to exclude abs
+ section when setting max_alignment. Update comment.
+ (_bfd_riscv_relax_pc): Likewise.
+
2019-08-29 Alan Modra <amodra@gmail.com>
PR 24891
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index d14c29e833..4729bae09a 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -3533,12 +3533,13 @@ _bfd_riscv_relax_lui (bfd *abfd,
if (gp)
{
- /* If gp and the symbol are in the same output section, then
- consider only that section's alignment. */
+ /* If gp and the symbol are in the same output section, which is not the
+ abs section, then consider only that output section's alignment. */
struct bfd_link_hash_entry *h =
bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE,
TRUE);
- if (h->u.def.section->output_section == sym_sec->output_section)
+ if (h->u.def.section->output_section == sym_sec->output_section
+ && sym_sec->output_section != bfd_abs_section_ptr)
max_alignment = (bfd_vma) 1 << sym_sec->output_section->alignment_power;
}
@@ -3767,11 +3768,13 @@ _bfd_riscv_relax_pc (bfd *abfd ATTRIBUTE_UNUSED,
if (gp)
{
- /* If gp and the symbol are in the same output section, then
- consider only that section's alignment. */
+ /* If gp and the symbol are in the same output section, which is not the
+ abs section, then consider only that output section's alignment. */
struct bfd_link_hash_entry *h =
- bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE, TRUE);
- if (h->u.def.section->output_section == sym_sec->output_section)
+ bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE,
+ TRUE);
+ if (h->u.def.section->output_section == sym_sec->output_section
+ && sym_sec->output_section != bfd_abs_section_ptr)
max_alignment = (bfd_vma) 1 << sym_sec->output_section->alignment_power;
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PowerPC64 xlate_pcrel_opt
@ 2019-08-29 4:31 gdb-buildbot
2019-08-29 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-29 4:31 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT dd9b12c2451f0e46e73ec54d8762727d428b4c14 ***
commit dd9b12c2451f0e46e73ec54d8762727d428b4c14
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Thu Aug 29 11:30:11 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 29 12:57:33 2019 +0930
PowerPC64 xlate_pcrel_opt
We can easily support an offset on the second instruction of a
sequence marked with R_PPC64_PCREL_OPT. For example,
pla ra,symbol@pcrel
ld rt,off(ra)
can be optimised to
pld rt,symbol+off@pcrel
nop
* elf64-ppc.c (xlate_pcrel_opt): Add poff parameter. Allow offset
on second insn, return it in poff.
(ppc64_elf_relocate_section): Add offset to paddi addend for
PCREL_OPT.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ded2898771..e604dc75f8 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-29 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (xlate_pcrel_opt): Add poff parameter. Allow offset
+ on second insn, return it in poff.
+ (ppc64_elf_relocate_section): Add offset to paddi addend for
+ PCREL_OPT.
+
2019-08-28 Jim Wilson <jimw@sifive.com>
* elfnn-riscv.c (_bfd_riscv_relax_lui): Add check to exclude abs
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 4eba829450..a5bd3426ee 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -8265,25 +8265,26 @@ ok_lo_toc_insn (unsigned int insn, enum elf_ppc64_reloc_type r_type)
/* PCREL_OPT in one instance flags to the linker that a pair of insns:
pld ra,symbol@got@pcrel
- load/store rt,0(ra)
+ load/store rt,off(ra)
or
pla ra,symbol@pcrel
- load/store rt,0(ra)
+ load/store rt,off(ra)
may be translated to
- pload/pstore rt,symbol@pcrel
+ pload/pstore rt,symbol+off@pcrel
nop.
This function returns true if the optimization is possible, placing
- the prefix insn in *PINSN1 and a NOP in *PINSN2.
+ the prefix insn in *PINSN1, a NOP in *PINSN2 and the offset in *POFF.
On entry to this function, the linker has already determined that
the pld can be replaced with pla: *PINSN1 is that pla insn,
while *PINSN2 is the second instruction. */
static bfd_boolean
-xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2)
+xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2, bfd_signed_vma *poff)
{
uint32_t insn2 = *pinsn2 >> 32;
uint64_t i1new;
+ bfd_signed_vma off;
/* Check that regs match. */
if (((insn2 >> 16) & 31) != ((*pinsn1 >> 21) & 31))
@@ -8306,27 +8307,28 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2)
case 52: /* stfs */
case 54: /* stfd */
/* These are the PMLS cases, where we just need to tack a prefix
- on the insn. Check that the D field is zero. */
- if ((insn2 & 0xffff) != 0)
- return FALSE;
+ on the insn. */
i1new = ((1ULL << 58) | (2ULL << 56) | (1ULL << 52)
| (insn2 & ((63ULL << 26) | (31ULL << 21))));
+ off = insn2 & 0xffff;
break;
case 58: /* lwa, ld */
- if ((insn2 & 0xfffd) != 0)
+ if ((insn2 & 1) != 0)
return FALSE;
i1new = ((1ULL << 58) | (1ULL << 52)
| (insn2 & 2 ? 41ULL << 26 : 57ULL << 26)
| (insn2 & (31ULL << 21)));
+ off = insn2 & 0xfffc;
break;
case 57: /* lxsd, lxssp */
- if ((insn2 & 0xfffc) != 0 || (insn2 & 3) < 2)
+ if ((insn2 & 3) < 2)
return FALSE;
i1new = ((1ULL << 58) | (1ULL << 52)
| ((40ULL | (insn2 & 3)) << 26)
| (insn2 & (31ULL << 21)));
+ off = insn2 & 0xfffc;
break;
case 61: /* stxsd, stxssp, lxv, stxv */
@@ -8334,40 +8336,39 @@ xlate_pcrel_opt (uint64_t *pinsn1, uint64_t *pinsn2)
return FALSE;
else if ((insn2 & 3) >= 2)
{
- if ((insn2 & 0xfffc) != 0)
- return FALSE;
i1new = ((1ULL << 58) | (1ULL << 52)
| ((44ULL | (insn2 & 3)) << 26)
| (insn2 & (31ULL << 21)));
+ off = insn2 & 0xfffc;
}
else
{
- if ((insn2 & 0xfff0) != 0)
- return FALSE;
i1new = ((1ULL << 58) | (1ULL << 52)
| ((50ULL | (insn2 & 4) | ((insn2 & 8) >> 3)) << 26)
| (insn2 & (31ULL << 21)));
+ off = insn2 & 0xfff0;
}
break;
case 56: /* lq */
- if ((insn2 & 0xffff) != 0)
- return FALSE;
i1new = ((1ULL << 58) | (1ULL << 52)
| (insn2 & ((63ULL << 26) | (31ULL << 21))));
+ off = insn2 & 0xffff;
break;
case 62: /* std, stq */
- if ((insn2 & 0xfffd) != 0)
+ if ((insn2 & 1) != 0)
return FALSE;
i1new = ((1ULL << 58) | (1ULL << 52)
| ((insn2 & 2) == 0 ? 61ULL << 26 : 60ULL << 26)
| (insn2 & (31ULL << 21)));
+ off = insn2 & 0xfffc;
break;
}
*pinsn1 = i1new;
*pinsn2 = (uint64_t) NOP << 32;
+ *poff = (off ^ 0x8000) - 0x8000;
return TRUE;
}
@@ -15408,12 +15409,15 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if (off2 + 4 <= input_section->size)
{
uint64_t pinsn2;
+ bfd_signed_vma addend_off;
pinsn2 = bfd_get_32 (input_bfd, contents + off2);
pinsn2 <<= 32;
if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
break;
- if (xlate_pcrel_opt (&pinsn, &pinsn2))
+ if (xlate_pcrel_opt (&pinsn, &pinsn2, &addend_off))
{
+ addend += addend_off;
+ rel->r_addend = addend;
bfd_put_32 (input_bfd, pinsn >> 32,
contents + offset);
bfd_put_32 (input_bfd, pinsn,
@@ -15428,7 +15432,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
break;
}
- /* Set `addend'. */
tls_type = 0;
save_unresolved_reloc = unresolved_reloc;
switch (r_type)
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] PR24697, R_PPC_EMB_SDA21 cannot be used when making a shared object
@ 2019-08-29 12:16 gdb-buildbot
2019-08-29 13:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-29 12:16 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT c0d9f31dbd8765dd925e6a4b4acdb9b23d1706f6 ***
commit c0d9f31dbd8765dd925e6a4b4acdb9b23d1706f6
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Thu Aug 29 18:35:54 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Thu Aug 29 21:07:00 2019 +0930
PR24697, R_PPC_EMB_SDA21 cannot be used when making a shared object
This removes a restriction on various R_PPC_EMB relocations that has
been present for ppc32 since 1996-04-26 git commit e25a798839. As far
as I know, only those relocs that would require addressing via r2 for
.sdata2/.sbss2 access are disallowed in shared libraries.
PR 24697
* elf32-ppc.c (ppc_elf_check_relocs): Call bad_shared_reloc
when !bfd_link_executable for R_PPC_EMB_SDA2I16 and
R_PPC_EMB_SDA2REL. Don't call bad_shared_reloc for any other
reloc.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e604dc75f8..d292e87f56 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-29 Alan Modra <amodra@gmail.com>
+
+ PR 24697
+ * elf32-ppc.c (ppc_elf_check_relocs): Call bad_shared_reloc
+ when !bfd_link_executable for R_PPC_EMB_SDA2I16 and
+ R_PPC_EMB_SDA2REL. Don't call bad_shared_reloc for any other
+ reloc.
+
2019-08-29 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (xlate_pcrel_opt): Add poff parameter. Allow offset
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 78d39efe48..5e5834a70c 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -3096,11 +3096,6 @@ ppc_elf_check_relocs (bfd *abfd,
/* Indirect .sdata relocation. */
case R_PPC_EMB_SDAI16:
- if (bfd_link_pic (info))
- {
- bad_shared_reloc (abfd, r_type);
- return FALSE;
- }
htab->sdata[0].sym->ref_regular = 1;
if (!elf_allocate_pointer_linker_section (abfd, &htab->sdata[0],
h, rel))
@@ -3114,7 +3109,7 @@ ppc_elf_check_relocs (bfd *abfd,
/* Indirect .sdata2 relocation. */
case R_PPC_EMB_SDA2I16:
- if (bfd_link_pic (info))
+ if (!bfd_link_executable (info))
{
bad_shared_reloc (abfd, r_type);
return FALSE;
@@ -3160,7 +3155,7 @@ ppc_elf_check_relocs (bfd *abfd,
break;
case R_PPC_EMB_SDA2REL:
- if (bfd_link_pic (info))
+ if (!bfd_link_executable (info))
{
bad_shared_reloc (abfd, r_type);
return FALSE;
@@ -3177,11 +3172,6 @@ ppc_elf_check_relocs (bfd *abfd,
case R_PPC_VLE_SDA21:
case R_PPC_EMB_SDA21:
case R_PPC_EMB_RELSDA:
- if (bfd_link_pic (info))
- {
- bad_shared_reloc (abfd, r_type);
- return FALSE;
- }
if (h != NULL)
{
ppc_elf_hash_entry (h)->has_sda_refs = TRUE;
@@ -3194,11 +3184,6 @@ ppc_elf_check_relocs (bfd *abfd,
case R_PPC_EMB_NADDR16_LO:
case R_PPC_EMB_NADDR16_HI:
case R_PPC_EMB_NADDR16_HA:
- if (bfd_link_pic (info))
- {
- bad_shared_reloc (abfd, r_type);
- return FALSE;
- }
if (h != NULL)
h->non_got_ref = TRUE;
break;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb.fortran/info-types.exp regexp
@ 2019-08-29 13:44 gdb-buildbot
2019-08-29 16:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-29 13:44 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 8077c50dbb74ee63c038dbd3527c372dbe180fbb ***
commit 8077c50dbb74ee63c038dbd3527c372dbe180fbb
Author: Tom de Vries <tdevries@suse.de>
AuthorDate: Thu Aug 29 14:43:11 2019 +0200
Commit: Tom de Vries <tdevries@suse.de>
CommitDate: Thu Aug 29 14:43:11 2019 +0200
[gdb/testsuite] Fix gdb.fortran/info-types.exp regexp
The gdb.fortran/info-types.exp test-case passes with gcc 7 (though not on
openSUSE, due to the extra debug info) and fails with gcc 4.8 and gcc 8.
Fix the gdb_test regexp to fix all those cases.
gdb/testsuite/ChangeLog:
2019-08-29 Tom de Vries <tdevries@suse.de>
* gdb.fortran/info-types.exp: Fix gdb_test regexp to allow more
diverse debug info.
* lib/fortran.exp (fortran_int8): New proc, based on fortran_int4.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 06ee15c97a..b1dc7df4bb 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-29 Tom de Vries <tdevries@suse.de>
+
+ * gdb.fortran/info-types.exp: Fix gdb_test regexp to allow more
+ diverse debug info.
+ * lib/fortran.exp (fortran_int8): New proc, based on fortran_int4.
+
2019-08-28 Tom de Vries <tdevries@suse.de>
* gdb.base/info-var.exp: Allow info variables to print info for files
diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
index 81e67395e8..30646287ee 100644
--- a/gdb/testsuite/gdb.fortran/info-types.exp
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -31,6 +31,7 @@ if { ![runto MAIN__] } {
}
set integer4 [fortran_int4]
+set integer8 [fortran_int8]
set logical4 [fortran_logical4]
set character1 [fortran_character1]
@@ -41,7 +42,9 @@ gdb_test "info types" \
"File .*:" \
"\[\t \]+${character1}" \
"\[\t \]+${integer4}" \
- "\[\t \]+${logical4}" \
- "20:\[\t \]+Type __vtype_mod1_M1t1;" \
- "17:\[\t \]+Type m1t1;" \
- "22:\[\t \]+Type s1;" ]
+ "(\[\t \]+${integer8}" \
+ ")?\[\t \]+${logical4}" \
+ "(20:\[\t \]+Type __vtype_mod1_M1t1;" \
+ ")?$decimal:\[\t \]+Type m1t1;" \
+ "22:\[\t \]+Type s1;(" \
+ ".*)?"]
diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp
index 81811dbc3c..d523608807 100644
--- a/gdb/testsuite/lib/fortran.exp
+++ b/gdb/testsuite/lib/fortran.exp
@@ -41,6 +41,18 @@ proc fortran_int4 {} {
}
}
+proc fortran_int8 {} {
+ if {[test_compiler_info {gcc-4-[012]-*}]} {
+ return "int8"
+ } elseif {[test_compiler_info {gcc-*}]} {
+ return "integer\\(kind=8\\)"
+ } elseif {[test_compiler_info {icc-*}]} {
+ return "INTEGER\\(8\\)"
+ } else {
+ return "unknown"
+ }
+}
+
proc fortran_real4 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "real4"
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix PR win32/24284: tcp_auto_retry doesn't work in MinGW
@ 2019-08-29 17:21 gdb-buildbot
2019-08-29 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-29 17:21 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 16d01f9cd49f553a958a69ad3c9f781ebd402da8 ***
commit 16d01f9cd49f553a958a69ad3c9f781ebd402da8
Author: Bernhard Wodok <barto@gmx.net>
AuthorDate: Tue Aug 27 11:40:31 2019 -0400
Commit: Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Thu Aug 29 12:35:58 2019 -0400
Fix PR win32/24284: tcp_auto_retry doesn't work in MinGW
This was reported by Bernhard Wodok, along with a patch to fix the
issue. I adjusted the patch a bit, and I'm submitting the patch on
his behalf.
According to Bernhard, the issue can be reproduced by doing:
1. start gdb
2. enter 'target remote :2345'
3. observe that it throws a "connection refused" error immediately
instead of waiting and throwing a timeout error
I.e., I believe it can be reproduced by our current tests, which is
why I'm not proposing any extra tests here (well, I don't use nor have
any Windows system to test this, so...).
The problem happens because, on ser-tcp:wait_for_connect, we call
'gdb_select' passing 0 as its first argument, which, when using MinGW,
ends up using the 'gdb_select' version from mingw-hdep.c, and when the
first argument is 0 this means that WaitForMultipleObjects will be
called with 0 as its first argument as well. According to the MS API
docs, this is forbidden:
https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects
The proposed fix is simple: we just call Sleep when N == 0 (and when
TIMEOUT is non-NULL), and return 0. It makes sense to me.
Both Bernhard and Paul Carroll confirmed that the fix works. I'm
Cc'ing Bernhard in case you have any questions about the patch.
OK?
gdb/ChangeLog:
2019-08-29 Bernhard Wodok <barto@gmx.net>
Sergio Durigan Junior <sergiodj@redhat.com>
PR win32/24284
* mingw-hdep.c (gdb_select): Handle case when 'n' is zero.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a82f7c64ae..fba2f4a995 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-29 Bernhard Wodok <barto@gmx.net>
+ Sergio Durigan Junior <sergiodj@redhat.com>
+
+ PR win32/24284
+ * mingw-hdep.c (gdb_select): Handle case when 'n' is zero.
+
2019-08-28 Andrew Burgess <andrew.burgess@embecosm.com>
* symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols
diff --git a/gdb/mingw-hdep.c b/gdb/mingw-hdep.c
index 44fb22e9a1..0af1b39acd 100644
--- a/gdb/mingw-hdep.c
+++ b/gdb/mingw-hdep.c
@@ -64,6 +64,17 @@ gdb_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
int num_ready;
size_t indx;
+ if (n == 0)
+ {
+ /* The MS API says that the first argument to
+ WaitForMultipleObjects cannot be zero. That's why we just
+ use a regular Sleep here. */
+ if (timeout != NULL)
+ Sleep (timeout->tv_sec * 1000 + timeout->tv_usec / 1000);
+
+ return 0;
+ }
+
num_ready = 0;
num_handles = 0;
num_scbs = 0;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Run argv0-symlink.exp only on native target and local host.
@ 2019-08-29 22:28 gdb-buildbot
2019-08-30 8:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-29 22:28 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 2ea1a07a0a6a15a55df28eeefddf71a4ac47e17d ***
commit 2ea1a07a0a6a15a55df28eeefddf71a4ac47e17d
Author: Sandra Loosemore <sandra@codesourcery.com>
AuthorDate: Thu Aug 29 14:48:05 2019 -0700
Commit: Sandra Loosemore <sandra@codesourcery.com>
CommitDate: Thu Aug 29 14:48:05 2019 -0700
Run argv0-symlink.exp only on native target and local host.
This testcase was originally for PR gdb/15415, a problem with the
"run" command expanding symlinks in the name of the program being run.
It does not correctly distinguish between files on build, host, and
target, and it is not clear if it would be testing anything useful in
configurations where "run" is not being used.
2019-08-29 Sandra Loosemore <sandra@codesourcery.com>
* gdb.base/argv0-symlink.exp: Run only on native target
and local host.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b1dc7df4bb..e0991e091a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-29 Sandra Loosemore <sandra@codesourcery.com>
+
+ * gdb.base/argv0-symlink.exp: Run only on native target
+ and local host.
+
2019-08-29 Tom de Vries <tdevries@suse.de>
* gdb.fortran/info-types.exp: Fix gdb_test regexp to allow more
diff --git a/gdb/testsuite/gdb.base/argv0-symlink.exp b/gdb/testsuite/gdb.base/argv0-symlink.exp
index cce6ca613d..33301bd7c3 100644
--- a/gdb/testsuite/gdb.base/argv0-symlink.exp
+++ b/gdb/testsuite/gdb.base/argv0-symlink.exp
@@ -13,6 +13,23 @@
# 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 testcase was originally for PR gdb/15415, a problem with the "run"
+# command expanding symlinks in the name of the program being run.
+# This test uses pathnames on build to create symbolic links on host and
+# expects the test program running on target to see those symbolic links.
+# Therefore, it can't work reliably on anything other than configurations
+# where build/host/target are all the same.
+
+if { ![isnative] } {
+ unsupported "argv0-symlink.exp not supported on non-native target"
+ return -1
+}
+
+if { [is_remote host] } {
+ unsupported "argv0-symlink.exp not supported on remote host"
+ return -1
+}
+
standard_testfile
set has_argv0 [gdb_has_argv0]
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] [ARC] [COMMITTED] Fix FASTMATH field.
@ 2019-08-30 9:11 gdb-buildbot
2019-08-30 15:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 9:11 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cd18a823d1ad0787cb0745bf71c7ba447db10c58 ***
commit cd18a823d1ad0787cb0745bf71c7ba447db10c58
Author: Claudiu Zissulescu <claziss@gmail.com>
AuthorDate: Fri Aug 30 11:31:19 2019 +0300
Commit: Claudiu Zissulescu <claziss@gmail.com>
CommitDate: Fri Aug 30 11:31:19 2019 +0300
[ARC] [COMMITTED] Fix FASTMATH field.
Move FASTMATH to the right enum.
2019-08-30 Claudiu Zissulescu <claziss@gmail.com>
* opcode/arc.h (FASTMATH): Move it from insn_class_t to
insn_subclass_t enum.
diff --git a/include/ChangeLog b/include/ChangeLog
index e779c17702..3055551062 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Claudiu Zissulescu <claziss@gmail.com>
+
+ * opcode/arc.h (FASTMATH): Move it from insn_class_t to
+ insn_subclass_t enum.
+
2019-08-22 Alan Modra <amodra@gmail.com>
* elf/arm.h (ARM_GET_SYM_CMSE_SPCL, ARM_SET_SYM_CMSE_SPCL): Delete.
diff --git a/include/opcode/arc.h b/include/opcode/arc.h
index 14654b5d6c..d6a2b885a1 100644
--- a/include/opcode/arc.h
+++ b/include/opcode/arc.h
@@ -59,7 +59,6 @@ typedef enum
EI,
ENTER,
FLOAT,
- FASTMATH,
INVALID,
JLI,
JUMP,
@@ -99,6 +98,7 @@ typedef enum
DP = (1U << 6),
DPA = (1U << 7),
DPX = (1U << 8),
+ FASTMATH = (1U << 23),
LL64 = (1U << 9),
MPY1E = (1U << 10),
MPY6E = (1U << 11),
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Copy BFD_COMPRESS/BFD_DECOMPRESS/BFD_COMPRESS_GABI for thin archive
@ 2019-08-30 15:17 gdb-buildbot
2019-08-30 19:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 15:17 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 6744bcad05396a5901149a202270e523e454769d ***
commit 6744bcad05396a5901149a202270e523e454769d
Author: H.J. Lu <hjl.tools@gmail.com>
AuthorDate: Fri Aug 30 07:46:15 2019 -0700
Commit: H.J. Lu <hjl.tools@gmail.com>
CommitDate: Fri Aug 30 07:46:27 2019 -0700
Copy BFD_COMPRESS/BFD_DECOMPRESS/BFD_COMPRESS_GABI for thin archive
We need to copy BFD_COMPRESS, BFD_DECOMPRESS and BFD_COMPRESS_GABI flags
for thin archive.
PR ld/24951
* archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS,
BFD_DECOMPRESS and BFD_COMPRESS_GABI flags for thin archive.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d292e87f56..bb99231c64 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/24951
+ * archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS,
+ BFD_DECOMPRESS and BFD_COMPRESS_GABI flags for thin archive.
+
2019-08-29 Alan Modra <amodra@gmail.com>
PR 24697
diff --git a/bfd/archive.c b/bfd/archive.c
index 3baf83d40c..690718e949 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -692,6 +692,13 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
return NULL;
}
n_bfd->proxy_origin = bfd_tell (archive);
+
+ /* Copy BFD_COMPRESS, BFD_DECOMPRESS and BFD_COMPRESS_GABI
+ flags. */
+ n_bfd->flags |= archive->flags & (BFD_COMPRESS
+ | BFD_DECOMPRESS
+ | BFD_COMPRESS_GABI);
+
return n_bfd;
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove NO_DATA_STRING
@ 2019-08-30 19:52 gdb-buildbot
2019-08-30 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 19:52 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1f6d2f100ae6de462f1e81b5de17de059f6b17ef ***
commit 1f6d2f100ae6de462f1e81b5de17de059f6b17ef
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 08:21:16 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:02 2019 -0600
Remove NO_DATA_STRING
NO_DATA_STRING shouldn't be used. It's referenced in a single spot,
in tui_data_window::display_all_data. This patch removes the use and
replaces it with the more correct text. A later patch (though not in
this series) will remove this call entirely, when it's more obviously
correct to do so.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_data_window::display_all_data): Change
text.
* tui/tui-data.h (NO_DATA_STRING): Remove define.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fba2f4a995..0cb864fdfc 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.c (tui_data_window::display_all_data): Change
+ text.
+ * tui/tui-data.h (NO_DATA_STRING): Remove define.
+
2019-08-29 Bernhard Wodok <barto@gmx.net>
Sergio Durigan Junior <sergiodj@redhat.com>
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index f43035674d..1810fa3e72 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -98,7 +98,6 @@ public:
/* Constant definitions. */
#define DEFAULT_TAB_LEN 8
-#define NO_DATA_STRING "[ No Data Values Displayed ]"
#define SRC_NAME "src"
#define CMD_NAME "cmd"
#define DATA_NAME "regs"
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 71037d4104..24b182f2ae 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -437,7 +437,7 @@ void
tui_data_window::display_all_data ()
{
if (regs_content.empty ())
- erase_data_content (NO_DATA_STRING);
+ erase_data_content (_("[ Register Values Unavailable ]"));
else
{
erase_data_content (NULL);
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove tui_data_window::display_all_data
@ 2019-08-30 20:53 gdb-buildbot
2019-08-30 21:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 20:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 18bb55c7225dfd07ec8d75226a83da1872db8b90 ***
commit 18bb55c7225dfd07ec8d75226a83da1872db8b90
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 08:27:34 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:02 2019 -0600
Remove tui_data_window::display_all_data
tui_data_window::rerender clears the data item windows, and then calls
display_all_data. However, that method only does anything if the
contents are not empty. So, display_all_data can be renamed and the
wrapper removed.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <display_all_data>:
Don't declare.
* tui/tui-regs.c (tui_data_window::show_registers): Call
rerender.
(tui_data_window::rerender): Rename from display_all_data.
(tui_data_window::rerender): Remove old implementation.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0cb864fdfc..e5f3f218cb 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.h (struct tui_data_window) <display_all_data>:
+ Don't declare.
+ * tui/tui-regs.c (tui_data_window::show_registers): Call
+ rerender.
+ (tui_data_window::rerender): Rename from display_all_data.
+ (tui_data_window::rerender): Remove old implementation.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_data_window::display_all_data): Change
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 24b182f2ae..7bac19da28 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -161,7 +161,7 @@ tui_data_window::show_registers (struct reggroup *group)
for (auto &&data_item_win : regs_content)
data_item_win.highlight = false;
current_group = group;
- display_all_data ();
+ rerender ();
}
else
{
@@ -434,7 +434,7 @@ tui_data_window::erase_data_content (const char *prompt)
/* See tui-regs.h. */
void
-tui_data_window::display_all_data ()
+tui_data_window::rerender ()
{
if (regs_content.empty ())
erase_data_content (_("[ Register Values Unavailable ]"));
@@ -500,20 +500,6 @@ tui_data_window::do_scroll_vertical (int num_to_scroll)
/* See tui-regs.h. */
-void
-tui_data_window::rerender ()
-{
- /* Delete all data item windows. */
- for (auto &&win : regs_content)
- {
- tui_delete_win (win.handle);
- win.handle = NULL;
- }
- display_all_data ();
-}
-
-/* See tui-regs.h. */
-
void
tui_data_window::refresh_window ()
{
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 95e944038c..fa76cae0b1 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -121,10 +121,6 @@ private:
past the register area (-1) is returned. */
int first_reg_element_no_inline (int line_no) const;
- /* Displays the data that is in the data window's content. It does
- not set the content. */
- void display_all_data ();
-
/* Delete all the item windows in the data window. This is usually
done when the data window is scrolled. */
void delete_data_content_windows ();
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove some checks of .empty()
@ 2019-08-30 21:05 gdb-buildbot
2019-08-30 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 21:05 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 0670413d0eb264302e10a1baa163bc9c8c279a21 ***
commit 0670413d0eb264302e10a1baa163bc9c8c279a21
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 09:07:10 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:03 2019 -0600
Remove some checks of .empty()
A few methods in tui_data_window check whether the contents are empty;
but all the callers already check this, so these calls can be removed.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_data_window::last_regs_line_no)
(tui_data_window::display_registers_from)
(tui_data_window::display_reg_element_at_line)
(tui_data_window::display_registers_from_line): Remove checks of
"empty".
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e5f3f218cb..c8b69f4d52 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.c (tui_data_window::last_regs_line_no)
+ (tui_data_window::display_registers_from)
+ (tui_data_window::display_reg_element_at_line)
+ (tui_data_window::display_registers_from_line): Remove checks of
+ "empty".
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <display_all_data>:
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 7bac19da28..636ae10148 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -98,14 +98,9 @@ tui_get_register (struct frame_info *frame,
int
tui_data_window::last_regs_line_no () const
{
- int num_lines = (-1);
-
- if (!regs_content.empty ())
- {
- num_lines = regs_content.size () / regs_column_count;
- if (regs_content.size () % regs_column_count)
- num_lines++;
- }
+ int num_lines = regs_content.size () / regs_column_count;
+ if (regs_content.size () % regs_column_count)
+ num_lines++;
return num_lines;
}
@@ -245,74 +240,71 @@ tui_data_window::show_register_group (struct reggroup *group,
void
tui_data_window::display_registers_from (int start_element_no)
{
- if (!regs_content.empty ())
+ int j, item_win_width, cur_y;
+
+ int max_len = 0;
+ for (auto &&data_item_win : regs_content)
{
- int j, item_win_width, cur_y;
+ const char *p;
+ int len;
- int max_len = 0;
- for (auto &&data_item_win : regs_content)
- {
- const char *p;
- int len;
-
- len = 0;
- p = data_item_win.content.get ();
- if (p != 0)
- len = strlen (p);
-
- if (len > max_len)
- max_len = len;
- }
- 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;
-
- /* Now create each data "sub" window, and write the display into
- it. */
- cur_y = 1;
- while (i < regs_content.size ()
- && cur_y <= viewport_height)
+ len = 0;
+ p = data_item_win.content.get ();
+ if (p != 0)
+ len = strlen (p);
+
+ if (len > max_len)
+ max_len = len;
+ }
+ 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;
+
+ /* Now create each data "sub" window, and write the display into
+ it. */
+ cur_y = 1;
+ while (i < regs_content.size ()
+ && cur_y <= viewport_height)
+ {
+ for (j = 0;
+ j < regs_column_count && i < regs_content.size ();
+ j++)
{
- for (j = 0;
- j < regs_column_count && i < regs_content.size ();
- j++)
+ struct tui_data_item_window *data_item_win;
+
+ /* Create the window if necessary. */
+ data_item_win = ®s_content[i];
+ if (data_item_win->handle != NULL
+ && (data_item_win->height != 1
+ || data_item_win->width != item_win_width
+ || data_item_win->origin.x != (item_win_width * j) + 1
+ || data_item_win->origin.y != cur_y))
{
- struct tui_data_item_window *data_item_win;
-
- /* Create the window if necessary. */
- data_item_win = ®s_content[i];
- if (data_item_win->handle != NULL
- && (data_item_win->height != 1
- || data_item_win->width != item_win_width
- || data_item_win->origin.x != (item_win_width * j) + 1
- || data_item_win->origin.y != cur_y))
- {
- tui_delete_win (data_item_win->handle);
- data_item_win->handle = 0;
- }
+ tui_delete_win (data_item_win->handle);
+ data_item_win->handle = 0;
+ }
- if (data_item_win->handle == NULL)
- {
- data_item_win->height = 1;
- data_item_win->width = item_win_width;
- data_item_win->origin.x = (item_win_width * j) + 1;
- data_item_win->origin.y = cur_y;
- data_item_win->make_visible (true);
- scrollok (data_item_win->handle, FALSE);
- }
- touchwin (data_item_win->handle);
-
- /* Get the printable representation of the register
- and display it. */
- tui_display_register (data_item_win);
- i++; /* Next register. */
+ if (data_item_win->handle == NULL)
+ {
+ data_item_win->height = 1;
+ data_item_win->width = item_win_width;
+ data_item_win->origin.x = (item_win_width * j) + 1;
+ data_item_win->origin.y = cur_y;
+ data_item_win->make_visible (true);
+ scrollok (data_item_win->handle, FALSE);
}
- cur_y++; /* Next row. */
+ touchwin (data_item_win->handle);
+
+ /* Get the printable representation of the register
+ and display it. */
+ tui_display_register (data_item_win);
+ i++; /* Next register. */
}
+ cur_y++; /* Next row. */
}
}
@@ -322,27 +314,24 @@ void
tui_data_window::display_reg_element_at_line (int start_element_no,
int start_line_no)
{
- if (!regs_content.empty ())
- {
- int element_no = start_element_no;
+ int element_no = start_element_no;
- if (start_element_no != 0 && start_line_no != 0)
- {
- int last_line_no, first_line_on_last_page;
-
- last_line_no = last_regs_line_no ();
- first_line_on_last_page = last_line_no - (height - 2);
- if (first_line_on_last_page < 0)
- first_line_on_last_page = 0;
-
- /* If the element_no causes us to scroll past the end of the
- registers, adjust what element to really start the
- display at. */
- if (start_line_no > first_line_on_last_page)
- element_no = first_reg_element_no_inline (first_line_on_last_page);
- }
- display_registers_from (element_no);
+ if (start_element_no != 0 && start_line_no != 0)
+ {
+ int last_line_no, first_line_on_last_page;
+
+ last_line_no = last_regs_line_no ();
+ first_line_on_last_page = last_line_no - (height - 2);
+ if (first_line_on_last_page < 0)
+ first_line_on_last_page = 0;
+
+ /* If the element_no causes us to scroll past the end of the
+ registers, adjust what element to really start the
+ display at. */
+ if (start_line_no > first_line_on_last_page)
+ element_no = first_reg_element_no_inline (first_line_on_last_page);
}
+ display_registers_from (element_no);
}
/* See tui-regs.h. */
@@ -351,34 +340,30 @@ int
tui_data_window::display_registers_from_line (int line_no)
{
check_and_display_highlight_if_needed ();
- if (!regs_content.empty ())
- {
- int element_no;
- if (line_no < 0)
- line_no = 0;
- else
+ int element_no;
+
+ if (line_no < 0)
+ line_no = 0;
+ else
+ {
+ /* Make sure that we don't display off the end of the
+ registers. */
+ if (line_no >= last_regs_line_no ())
{
- /* Make sure that we don't display off the end of the
- registers. */
- if (line_no >= last_regs_line_no ())
- {
- line_no = line_from_reg_element_no (regs_content.size () - 1);
- if (line_no < 0)
- line_no = 0;
- }
+ line_no = line_from_reg_element_no (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 ())
- display_reg_element_at_line (element_no, line_no);
- else
- line_no = (-1);
-
- return line_no;
}
- return (-1); /* Nothing was displayed. */
+ element_no = first_reg_element_no_inline (line_no);
+ if (element_no < regs_content.size ())
+ display_reg_element_at_line (element_no, line_no);
+ else
+ line_no = (-1);
+
+ return line_no;
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove some calls in tui_data_window
@ 2019-08-30 21:37 gdb-buildbot
2019-08-30 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 21:37 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1bf2866a59530d9e8384807bc44b833e8647d329 ***
commit 1bf2866a59530d9e8384807bc44b833e8647d329
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 09:11:46 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:04 2019 -0600
Remove some calls in tui_data_window
This patch removes a call to erase_data_content in refresh_all and
then removes some other calls that are more clearly unnecessary once
one follows calls from that point.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_data_window::display_registers_from_line)
(tui_data_window::rerender): Don't call
check_and_display_highlight_if_needed.
(tui_data_window::refresh_all): Remove call to
erase_data_content.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c8b69f4d52..b95be65f6f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.c (tui_data_window::display_registers_from_line)
+ (tui_data_window::rerender): Don't call
+ check_and_display_highlight_if_needed.
+ (tui_data_window::refresh_all): Remove call to
+ erase_data_content.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_data_window::last_regs_line_no)
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 636ae10148..4a09a59044 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -339,8 +339,6 @@ tui_data_window::display_reg_element_at_line (int start_element_no,
int
tui_data_window::display_registers_from_line (int line_no)
{
- check_and_display_highlight_if_needed ();
-
int element_no;
if (line_no < 0)
@@ -427,7 +425,6 @@ tui_data_window::rerender ()
{
erase_data_content (NULL);
delete_data_content_windows ();
- check_and_display_highlight_if_needed ();
display_registers_from (0);
}
}
@@ -450,10 +447,7 @@ tui_data_window::refresh_all ()
first_line = line_from_reg_element_no (first_element);
if (first_line >= 0)
- {
- erase_data_content (NULL);
- display_registers_from_line (first_line);
- }
+ display_registers_from_line (first_line);
}
}
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Private data members in tui_data_window
@ 2019-08-30 22:10 gdb-buildbot
2019-08-31 0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 22:10 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 89df7f9056d72418720ac655e1ad97decc471da9 ***
commit 89df7f9056d72418720ac655e1ad97decc471da9
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Sun Jul 14 19:45:55 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:04 2019 -0600
Private data members in tui_data_window
This changes tui_data_window so that the data members are private.
This required the addition of a simple accessor method in one case.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <regs_content,
regs_column_count, current_group>: Move later. Now private.
<get_current_group>: New method.
* tui/tui-regs.c (tui_reg_command): Update.
* tui/tui-layout.c (tui_set_layout): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b95be65f6f..2a2c08cae4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.h (struct tui_data_window) <regs_content,
+ regs_column_count, current_group>: Move later. Now private.
+ <get_current_group>: New method.
+ * tui/tui-regs.c (tui_reg_command): Update.
+ * tui/tui-layout.c (tui_set_layout): Update.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_data_window::display_registers_from_line)
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 01d50e437e..387a4f51af 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -189,7 +189,7 @@ tui_set_layout (enum tui_layout_type layout_type)
tui_update_source_windows_with_addr (gdbarch, addr);
if (new_layout == SRC_DATA_COMMAND
|| new_layout == DISASSEM_DATA_COMMAND)
- TUI_DATA_WIN->show_registers (TUI_DATA_WIN->current_group);
+ TUI_DATA_WIN->show_registers (TUI_DATA_WIN->get_current_group ());
}
}
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 4a09a59044..98096e2cdc 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -622,7 +622,7 @@ tui_reg_command (const char *args, int from_tty)
if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->is_visible ())
tui_reg_layout ();
- struct reggroup *current_group = TUI_DATA_WIN->current_group;
+ struct reggroup *current_group = TUI_DATA_WIN->get_current_group ();
if (strncmp (args, "next", len) == 0)
match = tui_reg_next (current_group, gdbarch);
else if (strncmp (args, "prev", len) == 0)
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index fa76cae0b1..2606c39f5a 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -63,15 +63,15 @@ struct tui_data_window : public tui_win_info
return DATA_NAME;
}
- /* 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;
-
void check_register_values (struct frame_info *frame);
void show_registers (struct reggroup *group);
+ struct reggroup *get_current_group () const
+ {
+ return current_group;
+ }
+
protected:
void do_scroll_vertical (int num_to_scroll) override;
@@ -126,6 +126,11 @@ private:
void delete_data_content_windows ();
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;
};
#endif /* TUI_TUI_REGS_H */
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Simplify register display
@ 2019-08-30 22:32 gdb-buildbot
2019-08-31 1:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 22:32 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT cdaa6eb4394c42b49b090181dbfaae4e327090de ***
commit cdaa6eb4394c42b49b090181dbfaae4e327090de
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Mon Jul 15 15:28:56 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:05 2019 -0600
Simplify register display
This patch starts with the observation that the code in
tui_data_window::display_registers_from can all be replaced with a
call to resize. To make this work propertly, it also changes
tui_display_register to be the "rerender" method on
tui_data_item_window.
The refresh_window method is needed due to the use of nested windows
here. The ncurses man page makes it sound like this is not very well
supported; and experience bears this out: negelecting the touchwin
call in this path will cause the register window to blank when
switching focus.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_item_window) <rerender,
refresh_window>: Declare.
* tui/tui-regs.c (tui_data_window::display_registers_from): Call
resize.
(tui_data_item_window::rerender): Rename from
tui_display_register.
(tui_data_item_window::refresh_window): New method.
* tui/tui-layout.c (tui_gen_win_info::resize): Do nothing on
no-op.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2a2c08cae4..388f5ebe92 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-regs.h (struct tui_data_item_window) <rerender,
+ refresh_window>: Declare.
+ * tui/tui-regs.c (tui_data_window::display_registers_from): Call
+ resize.
+ (tui_data_item_window::rerender): Rename from
+ tui_display_register.
+ (tui_data_item_window::refresh_window): New method.
+ * tui/tui-layout.c (tui_gen_win_info::resize): Do nothing on
+ no-op.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_window) <regs_content,
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 387a4f51af..7ec704e52f 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -580,6 +580,11 @@ void
tui_gen_win_info::resize (int height_, int width_,
int origin_x_, int origin_y_)
{
+ if (width == width_ && height == height_
+ && origin.x == origin_x_ && origin.y == origin_y_
+ && handle != nullptr)
+ return;
+
width = width_;
height = height_;
if (height > 1)
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 98096e2cdc..f62ba065eb 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -42,8 +42,6 @@
#include "gdb_curses.h"
-static void tui_display_register (struct tui_data_item_window *data);
-
/* Get the register from the frame and return a printable
representation of it. */
@@ -274,34 +272,9 @@ tui_data_window::display_registers_from (int start_element_no)
j < regs_column_count && i < regs_content.size ();
j++)
{
- struct tui_data_item_window *data_item_win;
-
/* Create the window if necessary. */
- data_item_win = ®s_content[i];
- if (data_item_win->handle != NULL
- && (data_item_win->height != 1
- || data_item_win->width != item_win_width
- || data_item_win->origin.x != (item_win_width * j) + 1
- || data_item_win->origin.y != cur_y))
- {
- tui_delete_win (data_item_win->handle);
- data_item_win->handle = 0;
- }
-
- if (data_item_win->handle == NULL)
- {
- data_item_win->height = 1;
- data_item_win->width = item_win_width;
- data_item_win->origin.x = (item_win_width * j) + 1;
- data_item_win->origin.y = cur_y;
- data_item_win->make_visible (true);
- scrollok (data_item_win->handle, FALSE);
- }
- touchwin (data_item_win->handle);
-
- /* Get the printable representation of the register
- and display it. */
- tui_display_register (data_item_win);
+ regs_content[i].resize (1, item_win_width,
+ (item_win_width * j) + 1, cur_y);
i++; /* Next register. */
}
cur_y++; /* Next row. */
@@ -508,43 +481,54 @@ tui_data_window::check_register_values (struct frame_info *frame)
&data_item_win.highlight);
if (data_item_win.highlight || was_hilighted)
- tui_display_register (&data_item_win);
+ data_item_win.rerender ();
}
}
}
/* Display a register in a window. If hilite is TRUE, then the value
will be displayed in reverse video. */
-static void
-tui_display_register (struct tui_data_item_window *data)
+void
+tui_data_item_window::rerender ()
{
- if (data->handle != NULL)
- {
- int i;
-
- if (data->highlight)
- /* We ignore the return value, casting it to void in order to avoid
- a compiler warning. The warning itself was introduced by a patch
- to ncurses 5.7 dated 2009-08-29, changing this macro to expand
- to code that causes the compiler to generate an unused-value
- warning. */
- (void) wstandout (data->handle);
+ int i;
+
+ scrollok (handle, FALSE);
+ if (highlight)
+ /* We ignore the return value, casting it to void in order to avoid
+ a compiler warning. The warning itself was introduced by a patch
+ to ncurses 5.7 dated 2009-08-29, changing this macro to expand
+ to code that causes the compiler to generate an unused-value
+ warning. */
+ (void) wstandout (handle);
- wmove (data->handle, 0, 0);
- for (i = 1; i < data->width; i++)
- waddch (data->handle, ' ');
- wmove (data->handle, 0, 0);
- if (data->content)
- waddstr (data->handle, data->content.get ());
-
- if (data->highlight)
- /* We ignore the return value, casting it to void in order to avoid
- a compiler warning. The warning itself was introduced by a patch
- to ncurses 5.7 dated 2009-08-29, changing this macro to expand
- to code that causes the compiler to generate an unused-value
- warning. */
- (void) wstandend (data->handle);
- data->refresh_window ();
+ wmove (handle, 0, 0);
+ for (i = 1; i < width; i++)
+ waddch (handle, ' ');
+ wmove (handle, 0, 0);
+ if (content)
+ waddstr (handle, content.get ());
+
+ if (highlight)
+ /* We ignore the return value, casting it to void in order to avoid
+ a compiler warning. The warning itself was introduced by a patch
+ to ncurses 5.7 dated 2009-08-29, changing this macro to expand
+ to code that causes the compiler to generate an unused-value
+ warning. */
+ (void) wstandend (handle);
+ refresh_window ();
+}
+
+void
+tui_data_item_window::refresh_window ()
+{
+ if (handle != nullptr)
+ {
+ /* This seems to be needed because the data items are nested
+ windows, which according to the ncurses man pages aren't well
+ supported. */
+ touchwin (handle);
+ wrefresh (handle);
}
}
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 2606c39f5a..1f9fa73f1c 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -37,6 +37,10 @@ struct tui_data_item_window : public tui_gen_win_info
tui_data_item_window (tui_data_item_window &&) = default;
+ void rerender () override;
+
+ void refresh_window () override;
+
const char *name = nullptr;
/* The register number, or data display number. */
int item_no = -1;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove NULL checks from box_win
@ 2019-08-30 23:36 gdb-buildbot
2019-08-31 2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 23:36 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 108e13abdf90acc44b1aba4a0f3ee1d49a0f7934 ***
commit 108e13abdf90acc44b1aba4a0f3ee1d49a0f7934
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Mon Jul 15 15:59:53 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:05 2019 -0600
Remove NULL checks from box_win
box_win can't be called with a NULL window, or with an invisible
window. So, the NULL checks in that function can be removed.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.c (box_win): Assume win_info and
win_info->handle cannot be NULL.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 388f5ebe92..9c8299b93f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-wingeneral.c (box_win): Assume win_info and
+ win_info->handle cannot be NULL.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-regs.h (struct tui_data_item_window) <rerender,
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index ab0363f856..01f288be86 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -58,30 +58,27 @@ static void
box_win (struct tui_win_info *win_info,
bool highlight_flag)
{
- if (win_info && win_info->handle)
- {
- WINDOW *win;
- int attrs;
+ WINDOW *win;
+ int attrs;
- win = win_info->handle;
- if (highlight_flag)
- attrs = tui_active_border_attrs;
- else
- attrs = tui_border_attrs;
+ win = win_info->handle;
+ if (highlight_flag)
+ attrs = tui_active_border_attrs;
+ else
+ attrs = tui_border_attrs;
- wattron (win, attrs);
+ wattron (win, attrs);
#ifdef HAVE_WBORDER
- wborder (win, tui_border_vline, tui_border_vline,
- tui_border_hline, tui_border_hline,
- tui_border_ulcorner, tui_border_urcorner,
- tui_border_llcorner, tui_border_lrcorner);
+ wborder (win, tui_border_vline, tui_border_vline,
+ tui_border_hline, tui_border_hline,
+ tui_border_ulcorner, tui_border_urcorner,
+ tui_border_llcorner, tui_border_lrcorner);
#else
- box (win, tui_border_vline, tui_border_hline);
+ box (win, tui_border_vline, tui_border_hline);
#endif
- if (!win_info->title.empty ())
- mvwaddstr (win, 0, 3, win_info->title.c_str ());
- wattroff (win, attrs);
- }
+ if (!win_info->title.empty ())
+ mvwaddstr (win, 0, 3, win_info->title.c_str ());
+ wattroff (win, attrs);
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Don't call touchwin in tui_gen_win_info::refresh_window
@ 2019-08-30 23:43 gdb-buildbot
2019-08-31 3:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-30 23:43 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 772f3f0398b53cdb88cd744132cf7265928c12a0 ***
commit 772f3f0398b53cdb88cd744132cf7265928c12a0
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Wed Jul 17 16:11:40 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:06 2019 -0600
Don't call touchwin in tui_gen_win_info::refresh_window
The call to touchwin in tui_gen_win_info::refresh_window was an
artifact of some earlier refactorings. Testing shows it isn't needed
any more -- I believe it was only ever needed for the data item window
display problem; but that's been solved more locally.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Don't
call touchwin.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9c8299b93f..4f20a78a8c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Don't
+ call touchwin.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.c (box_win): Assume win_info and
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index 01f288be86..f900eab013 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -38,10 +38,7 @@ void
tui_gen_win_info::refresh_window ()
{
if (handle != NULL)
- {
- touchwin (handle);
- wrefresh (handle);
- }
+ wrefresh (handle);
}
/* Function to delete the curses window, checking for NULL. */
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Don't call tui_refresh_all from show_layout
@ 2019-08-31 0:20 gdb-buildbot
2019-08-31 4:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 0:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 715bb467feab6e94e01bdf4f5aced092df7398c0 ***
commit 715bb467feab6e94e01bdf4f5aced092df7398c0
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 13:46:23 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:07 2019 -0600
Don't call tui_refresh_all from show_layout
show_layout calls tui_refresh_all in one case. However, it doesn't
need to any more, because the resize method on each window will also
update the contents.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-layout.c (show_layout): Don't call tui_refresh_all.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4f20a78a8c..2a027a212d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-layout.c (show_layout): Don't call tui_refresh_all.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Don't
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 7ec704e52f..df7056ae97 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -82,7 +82,6 @@ show_layout (enum tui_layout_type layout)
case SRC_DATA_COMMAND:
case DISASSEM_DATA_COMMAND:
show_data (layout);
- tui_refresh_all ();
break;
/* Now show the new layout. */
case SRC_COMMAND:
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Turn two locator functions into methods
@ 2019-08-31 1:42 gdb-buildbot
2019-08-31 4:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 1:42 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e594a5d19e855cf19a89dab29196d13f53ced7da ***
commit e594a5d19e855cf19a89dab29196d13f53ced7da
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:01:56 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:07 2019 -0600
Turn two locator functions into methods
This changes tui_set_locator_fullname and tui_set_locator_info to be
methods on tui_locator_window. This enables some subsequent
cleannups.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.h (struct tui_locator_window) <set_locator_info,
set_locator_fullname>: New methods.
* tui/tui-stack.c (tui_locator_window::set_locator_fullname):
Rename from tui_set_locator_fullname.
(tui_locator_window::set_locator_info): Rename from
tui_set_locator_info. Return bool.
(tui_update_locator_fullname, tui_show_frame_info): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2a027a212d..a069b0a6e1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.h (struct tui_locator_window) <set_locator_info,
+ set_locator_fullname>: New methods.
+ * tui/tui-stack.c (tui_locator_window::set_locator_fullname):
+ Rename from tui_set_locator_fullname.
+ (tui_locator_window::set_locator_info): Rename from
+ tui_set_locator_info. Return bool.
+ (tui_update_locator_fullname, tui_show_frame_info): Update.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-layout.c (show_layout): Don't call tui_refresh_all.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 0d411331bb..a4adf36365 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -58,15 +58,6 @@ static struct tui_locator_window _locator;
Returns a pointer to a static area holding the result. */
static char *tui_get_function_from_frame (struct frame_info *fi);
-/* Set the full_name portion of the locator. */
-static void tui_set_locator_fullname (const char *fullname);
-
-/* Update the locator, with the provided arguments. */
-static int tui_set_locator_info (struct gdbarch *gdbarch,
- const char *fullname,
- const char *procname,
- int lineno, CORE_ADDR addr);
-
static void tui_update_command (const char *, int);
\f
@@ -295,9 +286,10 @@ tui_locator_window::rerender ()
tui_show_locator_content ();
}
-/* Set the filename portion of the locator. */
-static void
-tui_set_locator_fullname (const char *fullname)
+/* See tui-stack.h. */
+
+void
+tui_locator_window::set_locator_fullname (const char *fullname)
{
struct tui_locator_window *locator = tui_locator_win_info_ptr ();
@@ -305,20 +297,16 @@ tui_set_locator_fullname (const char *fullname)
strcat_to_buf (locator->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
}
-/* Update the locator, with the provided arguments.
+/* See tui-stack.h. */
- Returns 1 if any of the locator's fields were actually changed,
- and 0 otherwise. */
-
-static int
-tui_set_locator_info (struct gdbarch *gdbarch,
- const char *fullname,
- const char *procname,
- int lineno,
- CORE_ADDR addr)
+bool
+tui_locator_window::set_locator_info (struct gdbarch *gdbarch_in,
+ const char *fullname,
+ const char *procname,
+ int lineno,
+ CORE_ADDR addr_in)
{
- struct tui_locator_window *locator = tui_locator_win_info_ptr ();
- int locator_changed_p = 0;
+ bool locator_changed_p = false;
if (procname == NULL)
procname = "";
@@ -326,20 +314,20 @@ tui_set_locator_info (struct gdbarch *gdbarch,
if (fullname == NULL)
fullname = "";
- locator_changed_p |= strncmp (locator->proc_name, procname,
+ locator_changed_p |= strncmp (proc_name, procname,
MAX_LOCATOR_ELEMENT_LEN) != 0;
- locator_changed_p |= lineno != locator->line_no;
- locator_changed_p |= addr != locator->addr;
- locator_changed_p |= gdbarch != locator->gdbarch;
- locator_changed_p |= strncmp (locator->full_name, fullname,
+ 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->proc_name[0] = (char) 0;
- strcat_to_buf (locator->proc_name, MAX_LOCATOR_ELEMENT_LEN, procname);
- locator->line_no = lineno;
- locator->addr = addr;
- locator->gdbarch = gdbarch;
- tui_set_locator_fullname (fullname);
+ proc_name[0] = (char) 0;
+ strcat_to_buf (proc_name, MAX_LOCATOR_ELEMENT_LEN, procname);
+ line_no = lineno;
+ addr = addr_in;
+ gdbarch = gdbarch_in;
+ set_locator_fullname (fullname);
return locator_changed_p;
}
@@ -348,7 +336,9 @@ tui_set_locator_info (struct gdbarch *gdbarch,
void
tui_update_locator_fullname (const char *fullname)
{
- tui_set_locator_fullname (fullname);
+ struct tui_locator_window *locator = tui_locator_win_info_ptr ();
+
+ locator->set_locator_fullname (fullname);
tui_show_locator_content ();
}
@@ -361,11 +351,11 @@ tui_update_locator_fullname (const char *fullname)
int
tui_show_frame_info (struct frame_info *fi)
{
- int locator_changed_p;
+ bool locator_changed_p;
+ struct tui_locator_window *locator = tui_locator_win_info_ptr ();
if (fi)
{
- struct tui_locator_window *locator = tui_locator_win_info_ptr ();
CORE_ADDR pc;
symtab_and_line sal = find_frame_sal (fi);
@@ -376,16 +366,16 @@ tui_show_frame_info (struct frame_info *fi)
if (get_frame_pc_if_available (fi, &pc))
locator_changed_p
- = tui_set_locator_info (get_frame_arch (fi),
- (sal.symtab == 0
- ? "??" : fullname),
- tui_get_function_from_frame (fi),
- sal.line,
- pc);
+ = locator->set_locator_info (get_frame_arch (fi),
+ (sal.symtab == 0
+ ? "??" : fullname),
+ tui_get_function_from_frame (fi),
+ sal.line,
+ pc);
else
locator_changed_p
- = tui_set_locator_info (get_frame_arch (fi),
- "??", _("<unavailable>"), sal.line, 0);
+ = locator->set_locator_info (get_frame_arch (fi),
+ "??", _("<unavailable>"), sal.line, 0);
/* If the locator information has not changed, then frame information has
not changed. If frame information has not changed, then the windows'
@@ -405,7 +395,7 @@ tui_show_frame_info (struct frame_info *fi)
else
{
locator_changed_p
- = tui_set_locator_info (NULL, NULL, NULL, 0, (CORE_ADDR) 0);
+ = locator->set_locator_info (NULL, NULL, NULL, 0, (CORE_ADDR) 0);
if (!locator_changed_p)
return 0;
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
index 951cf2c407..86239b0d28 100644
--- a/gdb/tui/tui-stack.h
+++ b/gdb/tui/tui-stack.h
@@ -45,6 +45,18 @@ struct tui_locator_window : public tui_gen_win_info
void rerender () override;
+ /* Update the locator, with the provided arguments.
+
+ Returns true if any of the locator's fields were actually
+ changed, and false otherwise. */
+ bool set_locator_info (struct gdbarch *gdbarch,
+ const char *fullname,
+ const char *procname,
+ int lineno, CORE_ADDR addr);
+
+ /* 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];
int line_no = 0;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Minor rearrangement of tui-stack.c
@ 2019-08-31 2:53 gdb-buildbot
2019-08-31 8:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 2:53 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 12a8555a5402b46da5ad39e29156c0d6b3a81a78 ***
commit 12a8555a5402b46da5ad39e29156c0d6b3a81a78
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:12:31 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:09 2019 -0600
Minor rearrangement of tui-stack.c
This move _initialize_tui_stack to the end of tui-stack.c, per the gdb
style; and then removes two unnecessary forward declarations.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (_initialize_tui_stack): Move later.
Remove unnecessary forward declarations.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 38619ef647..981189e178 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.c (_initialize_tui_stack): Move later.
+ Remove unnecessary forward declarations.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_locator_window::set_locator_fullname): Call
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index f6b6bb72b2..36208d0cac 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -53,12 +53,6 @@
static struct tui_locator_window _locator;
-/* Get a printable name for the function at the address.
- The symbol name is demangled if demangling is turned on.
- Returns a pointer to a static area holding the result. */
-static char *tui_get_function_from_frame (struct frame_info *fi);
-
-static void tui_update_command (const char *, int);
\f
/* Accessor for the locator win info. Answers a pointer to the static
@@ -405,6 +399,13 @@ tui_show_locator_content ()
locator->rerender ();
}
+/* Command to update the display with the current execution point. */
+static void
+tui_update_command (const char *arg, int from_tty)
+{
+ execute_command ("frame 0", from_tty);
+}
+
/* Function to initialize gdb commands, for tui window stack
manipulation. */
@@ -415,10 +416,3 @@ _initialize_tui_stack (void)
_("Update the source window and locator to "
"display the current execution point."));
}
-
-/* Command to update the display with the current execution point. */
-static void
-tui_update_command (const char *arg, int from_tty)
-{
- execute_command ("frame 0", from_tty);
-}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Don't call wrefresh from tui_cont_sig
@ 2019-08-31 3:30 gdb-buildbot
2019-08-31 8:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 3:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 55b2657bdc4f9494c13f5b6f69dd7f67d72275c0 ***
commit 55b2657bdc4f9494c13f5b6f69dd7f67d72275c0
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:34:39 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:10 2019 -0600
Don't call wrefresh from tui_cont_sig
tui_cont_sig does not need to call wrefresh, because this is already
done by tui_refresh_all_win.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-io.c (tui_cont_sig): Don't call wrefresh.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 981189e178..6f35232897 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-io.c (tui_cont_sig): Don't call wrefresh.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (_initialize_tui_stack): Move later.
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index ac7f098275..ee581a2ff6 100644
--- a/gdb/tui/tui-io.c
+++ b/gdb/tui/tui-io.c
@@ -851,8 +851,6 @@ tui_cont_sig (int sig)
/* Force a refresh of the screen. */
tui_refresh_all_win ();
-
- wrefresh (TUI_CMD_WIN->handle);
}
signal (sig, tui_cont_sig);
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove "\nError: " suffix from nat/fork-inferior.c:trace_start_error warning message
@ 2019-08-31 4:56 gdb-buildbot
2019-08-31 10:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 4:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 47a536d940d2f2bccfec51539b857da06ebc429e ***
commit 47a536d940d2f2bccfec51539b857da06ebc429e
Author: Sergio Durigan Junior <sergiodj@redhat.com>
AuthorDate: Thu Aug 29 16:11:45 2019 -0400
Commit: Sergio Durigan Junior <sergiodj@redhat.com>
CommitDate: Fri Aug 30 17:04:37 2019 -0400
Remove "\nError: " suffix from nat/fork-inferior.c:trace_start_error warning message
Rationale: https://sourceware.org/ml/gdb-patches/2019-08/msg00651.html
This very simple patch removes the "\nError: " suffix from the warning
message printed by nat/fork-inferior.c:trace_start_error. This proved
to just pollute the screen, causing things like:
Starting program: /usr/bin/true
warning: Could not trace the inferior process.
Error:
warning: ptrace: Permission denied
This "Error: " string is not useful at all, and can confuse things,
therefore let's just remove it and simplify the resulting messages:
Starting program: /usr/bin/true
warning: Could not trace the inferior process.
warning: ptrace: Permission denied
gdb/ChangeLog:
2019-08-30 Sergio Durigan Junior <sergiodj@redhat.com>
* nat/fork-inferior.c (trace_start_error): Remove "\nError: "
suffix from warning message.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2cc7b5809e..ebcfae1f97 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * nat/fork-inferior.c (trace_start_error): Remove "\nError: "
+ suffix from warning message.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (struct tui_source_window_base)
diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c
index 68b51aa814..355e9bef43 100644
--- a/gdb/nat/fork-inferior.c
+++ b/gdb/nat/fork-inferior.c
@@ -580,7 +580,7 @@ trace_start_error (const char *fmt, ...)
va_list ap;
va_start (ap, fmt);
- warning ("Could not trace the inferior process.\nError: ");
+ warning ("Could not trace the inferior process.");
vwarning (fmt, ap);
va_end (ap);
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] RISC-V: Force linker error exit after unresolvable reloc.
@ 2019-08-31 5:12 gdb-buildbot
2019-08-31 12:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 5:12 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fdd502691f8b893e321f19260464831f9726c5d4 ***
commit fdd502691f8b893e321f19260464831f9726c5d4
Author: Jim Wilson <jimw@sifive.com>
AuthorDate: Fri Aug 30 15:14:36 2019 -0700
Commit: Jim Wilson <jimw@sifive.com>
CommitDate: Fri Aug 30 15:14:36 2019 -0700
RISC-V: Force linker error exit after unresolvable reloc.
This was noticed while trying to test the compiler -msave-restore support.
Putting non-pic code in a shared library gives a linker error, but doesn't
stop the build.
rohan:2030$ cat libtmp.c
extern int sub2 (int);
int sub (int i) { return sub2 (i + 10); }
rohan:2031$ cat libtmp2.c
extern int sub (int);
int sub2 (int i) { return sub (i + 10); }
rohan:2032$ riscv64-unknown-linux-gnu-gcc --shared -o libtmp.so libtmp.c
rohan:2033$ riscv64-unknown-linux-gnu-gcc --shared -o libtmp2.so libtmp2.c libtmp.so
/home/jimw/FOSS/install-riscv64/lib/gcc/riscv64-unknown-linux-gnu/8.3.0/../../../../riscv64-unknown-linux-gnu/bin/ld: /tmp/cctrsIBe.o(.text+0x18): unresolvable R_RISCV_CALL relocation against symbol `sub'
rohan:2034$ echo $?
0
rohan:2035$ ls -lt libtmp2.so
-rwxr-xr-x 1 jimw jimw 6912 Aug 30 14:32 libtmp2.so
rohan:2036$
The patch fixes this by forcing a linker error. I now get this.
ohan:2059$ sh tmp.script
/home/jimw/FOSS/BINUTILS/X-riscv64-linux/ld/ld-new: libtmp2.o(.text+0x18): unresolvable R_RISCV_CALL relocation against symbol `sub'
/home/jimw/FOSS/BINUTILS/X-riscv64-linux/ld/ld-new: final link failed: bad value
rohan:2060$ echo $?
1
rohan:2061$ ls -lt libtmp2.so
ls: cannot access 'libtmp2.so': No such file or directory
bfd/
* elfnn-riscv.c (riscv_elf_relocate_section): For unresolvable reloc
error, call bfd_set_error, set ret to FALSE, and goto out label.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bb99231c64..1fc39dce5f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Jim Wilson <jimw@sifive.com>
+
+ * elfnn-riscv.c (riscv_elf_relocate_section): For unresolvable reloc
+ error, call bfd_set_error, set ret to FALSE, and goto out label.
+
2019-08-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/24951
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 4729bae09a..ef2471eb99 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -2297,7 +2297,10 @@ riscv_elf_relocate_section (bfd *output_bfd,
(uint64_t) rel->r_offset,
howto->name,
h->root.root.string);
- continue;
+
+ bfd_set_error (bfd_error_bad_value);
+ ret = FALSE;
+ goto out;
}
if (r == bfd_reloc_ok)
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Swap tui_show_locator_content and tui_locator_window::rerender
@ 2019-08-31 5:30 gdb-buildbot
2019-08-31 5:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 5:30 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 99ab33fb2dab538b13df0f8c02ea02ff1fd6c4db ***
commit 99ab33fb2dab538b13df0f8c02ea02ff1fd6c4db
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:04:14 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:08 2019 -0600
Swap tui_show_locator_content and tui_locator_window::rerender
This swaps the bodies ot tui_show_locator_content and
tui_locator_window::rerender, so that the latter does the work, and
the former is now just an exported convenience wrapper.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_show_locator_content): Move lower. Rewrite.
(tui_locator_window::rerender): Rewrite using body of previous
tui_show_locator_content.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a069b0a6e1..8905a2424a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.c (tui_show_locator_content): Move lower. Rewrite.
+ (tui_locator_window::rerender): Rewrite using body of previous
+ tui_show_locator_content.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.h (struct tui_locator_window) <set_locator_info,
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index a4adf36365..48062fed71 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -254,38 +254,27 @@ tui_get_function_from_frame (struct frame_info *fi)
}
void
-tui_show_locator_content (void)
+tui_locator_window::rerender ()
{
- char *string;
- struct tui_locator_window *locator;
-
- locator = tui_locator_win_info_ptr ();
-
- if (locator != NULL && locator->handle != NULL)
+ if (handle != NULL)
{
- string = tui_make_status_line (locator);
- wmove (locator->handle, 0, 0);
+ char *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
itself was introduced by a patch to ncurses 5.7 dated 2009-08-29,
changing these macro to expand to code that causes the compiler
to generate an unused-value warning. */
- (void) wstandout (locator->handle);
- waddstr (locator->handle, string);
- wclrtoeol (locator->handle);
- (void) wstandend (locator->handle);
- locator->refresh_window ();
- wmove (locator->handle, 0, 0);
+ (void) wstandout (handle);
+ waddstr (handle, string);
+ wclrtoeol (handle);
+ (void) wstandend (handle);
+ refresh_window ();
+ wmove (handle, 0, 0);
xfree (string);
}
}
-void
-tui_locator_window::rerender ()
-{
- tui_show_locator_content ();
-}
-
/* See tui-stack.h. */
void
@@ -411,6 +400,13 @@ tui_show_frame_info (struct frame_info *fi)
}
}
+void
+tui_show_locator_content ()
+{
+ struct tui_locator_window *locator = tui_locator_win_info_ptr ();
+ locator->rerender ();
+}
+
/* Function to initialize gdb commands, for tui window stack
manipulation. */
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Make tui_locator_window::set_locator_fullname re-render
@ 2019-08-31 6:20 gdb-buildbot
2019-08-31 7:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 6:20 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 900ac24287a26146a6a5f4b3b9d6610f3b574428 ***
commit 900ac24287a26146a6a5f4b3b9d6610f3b574428
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:08:53 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:09 2019 -0600
Make tui_locator_window::set_locator_fullname re-render
This changes tui_locator_window::set_locator_fullname to re-render the
locator window, so that the callers don't need to do this.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_locator_window::set_locator_fullname): Call
rerender.
(tui_update_locator_fullname, tui_show_frame_info): Don't call
tui_show_locator_content.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8905a2424a..38619ef647 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-stack.c (tui_locator_window::set_locator_fullname): Call
+ rerender.
+ (tui_update_locator_fullname, tui_show_frame_info): Don't call
+ tui_show_locator_content.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_show_locator_content): Move lower. Rewrite.
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 48062fed71..f6b6bb72b2 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -284,6 +284,7 @@ tui_locator_window::set_locator_fullname (const char *fullname)
locator->full_name[0] = 0;
strcat_to_buf (locator->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
+ rerender ();
}
/* See tui-stack.h. */
@@ -328,7 +329,6 @@ tui_update_locator_fullname (const char *fullname)
struct tui_locator_window *locator = tui_locator_win_info_ptr ();
locator->set_locator_fullname (fullname);
- tui_show_locator_content ();
}
/* Function to print the frame information for the TUI. The windows are
@@ -372,7 +372,6 @@ tui_show_frame_info (struct frame_info *fi)
if (!locator_changed_p)
return 0;
- tui_show_locator_content ();
for (struct tui_source_window_base *win_info : tui_source_windows ())
{
win_info->maybe_update (fi, sal, locator->line_no, locator->addr);
@@ -389,7 +388,6 @@ tui_show_frame_info (struct frame_info *fi)
if (!locator_changed_p)
return 0;
- tui_show_locator_content ();
for (struct tui_source_window_base *win_info : tui_source_windows ())
{
win_info->erase_source_content ();
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Remove tui_win_info::refresh_all
@ 2019-08-31 9:14 gdb-buildbot
2019-08-31 9:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-08-31 9:14 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d6a00eba2accffec92a5974c2ad1f79612a6679e ***
commit d6a00eba2accffec92a5974c2ad1f79612a6679e
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Thu Jul 18 14:38:39 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Aug 30 12:57:10 2019 -0600
Remove tui_win_info::refresh_all
The TUI has two duplicate "re-render this window" methods, "rerender"
and "refresh_all". They differ only slightly in semantics, so I
wanted to see if they could be unified.
After looking into this, I decided that refresh_all was not needed.
There are 4 calls to tui_refresh_all_win (the only caller of this
method):
1. tui_enable. This sets the layout, which renders the windows.
2. tui_cont_sig. Here, I think it's sufficient to simply redraw the
current window contents from the curses backing store, because gdb
state didn't change while it was suspended
3. tui_dispatch_ctrl_char. This is the C-l handler, and here it's
explicitly enough to just refresh the screen (as above).
4. tui_refresh_all_command. This is the command equivalent of C-l.
So, this patch removes this method entirely and simplifies
tui_refresh_all_win.
gdb/ChangeLog
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (struct tui_source_window_base)
<refresh_all>: Don't declare.
* tui/tui-winsource.c (tui_source_window_base::refresh_all):
Remove.
* tui/tui-win.c (tui_refresh_all_win): Don't call refresh_all or
tui_show_locator_content.
* tui/tui-regs.h (struct tui_data_window) <refresh_all>: Don't
declare.
* tui/tui-regs.c (tui_data_window::refresh_all): Remove.
* tui/tui-data.h (struct tui_win_info) <refresh_all>: Don't
declare.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6f35232897..2cc7b5809e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2019-08-30 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-winsource.h (struct tui_source_window_base)
+ <refresh_all>: Don't declare.
+ * tui/tui-winsource.c (tui_source_window_base::refresh_all):
+ Remove.
+ * tui/tui-win.c (tui_refresh_all_win): Don't call refresh_all or
+ tui_show_locator_content.
+ * tui/tui-regs.h (struct tui_data_window) <refresh_all>: Don't
+ declare.
+ * tui/tui-regs.c (tui_data_window::refresh_all): Remove.
+ * tui/tui-data.h (struct tui_win_info) <refresh_all>: Don't
+ declare.
+
2019-08-30 Tom Tromey <tom@tromey.com>
* tui/tui-io.c (tui_cont_sig): Don't call wrefresh.
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 1810fa3e72..23f769f6ba 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -162,12 +162,6 @@ public:
{
}
- /* Called after all the TUI windows are refreshed, to let this
- window have a chance to update itself further. */
- virtual void refresh_all ()
- {
- }
-
/* Compute the maximum height of this window. */
virtual int max_height () const;
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index f62ba065eb..48e78fc9db 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -403,29 +403,6 @@ tui_data_window::rerender ()
}
-/* Function to redisplay the contents of the data window. */
-void
-tui_data_window::refresh_all ()
-{
- erase_data_content (NULL);
- if (!regs_content.empty ())
- {
- int first_element = first_data_item_displayed ();
-
- if (first_element >= 0) /* Re-use existing windows. */
- {
- int first_line = (-1);
-
- if (first_element < regs_content.size ())
- first_line = line_from_reg_element_no (first_element);
-
- if (first_line >= 0)
- display_registers_from_line (first_line);
- }
- }
-}
-
-
/* Scroll the data window vertically forward or backward. */
void
tui_data_window::do_scroll_vertical (int num_to_scroll)
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 1f9fa73f1c..abf44c88b6 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -58,8 +58,6 @@ struct tui_data_window : public tui_win_info
DISABLE_COPY_AND_ASSIGN (tui_data_window);
- void refresh_all () override;
-
void refresh_window () override;
const char *name () const override
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 64e38880a2..8d41372cf9 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -504,12 +504,6 @@ tui_refresh_all_win (void)
{
clearok (curscr, TRUE);
tui_refresh_all ();
- for (tui_win_info *win_info : all_tui_windows ())
- {
- if (win_info->is_visible ())
- win_info->refresh_all ();
- }
- tui_show_locator_content ();
}
void
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 0a3eb78bb5..7a4821dc52 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -280,16 +280,6 @@ tui_source_window_base::~tui_source_window_base ()
/* See tui-data.h. */
-void
-tui_source_window_base::refresh_all ()
-{
- show_source_content ();
- check_and_display_highlight_if_needed ();
- update_exec_info ();
-}
-
-/* See tui-data.h. */
-
void
tui_source_window_base::update_tab_width ()
{
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 1804ca7224..4c98ca3ceb 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -103,8 +103,6 @@ public:
void clear_detail ();
- void refresh_all () override;
-
/* 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] 4390+ messages in thread
* [binutils-gdb] RISC-V: Fix linker problems with tls copy relocs.
@ 2019-09-01 6:49 gdb-buildbot
2019-09-01 8:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-01 6:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 3e7bd7f24146f162565edf878840449f36a8d974 ***
commit 3e7bd7f24146f162565edf878840449f36a8d974
Author: Jim Wilson <jimw@sifive.com>
AuthorDate: Sat Aug 31 21:22:36 2019 -0700
Commit: Jim Wilson <jimw@sifive.com>
CommitDate: Sat Aug 31 21:22:36 2019 -0700
RISC-V: Fix linker problems with tls copy relocs.
The linker doesn't allocate memory space for sections that are only SEC_ALLOC
and SEC_THREAD_LOCAL. See the IS_TBSS test in ld/ldlang.c. So we need to
pretend that .tdata.dyn sections have contents to get the right result. It
will be marked this way anyways if there is a .tdata section to merge with.
bfd/
PR 23825
* elfnn-riscv.c (riscv_elf_create_dynamic_sections): Add SEC_LOAD,
SEC_DATA, and SEC_HAS_CONTENTS to .tdata.dyn section.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1fc39dce5f..2b06383768 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-31 Jim Wilson <jimw@sifive.com>
+
+ PR 23825
+ * elfnn-riscv.c (riscv_elf_create_dynamic_sections): Add SEC_LOAD,
+ SEC_DATA, and SEC_HAS_CONTENTS to .tdata.dyn section.
+
2019-08-30 Jim Wilson <jimw@sifive.com>
* elfnn-riscv.c (riscv_elf_relocate_section): For unresolvable reloc
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index ef2471eb99..1d04ae9b7e 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -373,9 +373,23 @@ riscv_elf_create_dynamic_sections (bfd *dynobj,
if (!bfd_link_pic (info))
{
+ /* Technically, this section doesn't have contents. It is used as the
+ target of TLS copy relocs, to copy TLS data from shared libraries into
+ the executable. However, if we don't mark it as loadable, then it
+ matches the IS_TBSS test in ldlang.c, and there is no run-time address
+ space allocated for it even though it has SEC_ALLOC. That test is
+ correct for .tbss, but not correct for this section. There is also
+ a second problem that having a section with no contents can only work
+ if it comes after all sections with contents in the same segment,
+ but the linker script does not guarantee that. This is just mixed in
+ with other .tdata.* sections. We can fix both problems by lying and
+ saying that there are contents. This section is expected to be small
+ so this should not cause a significant extra program startup cost. */
htab->sdyntdata =
bfd_make_section_anyway_with_flags (dynobj, ".tdata.dyn",
(SEC_ALLOC | SEC_THREAD_LOCAL
+ | SEC_LOAD | SEC_DATA
+ | SEC_HAS_CONTENTS
| SEC_LINKER_CREATED));
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Re: Memory leak in dwarf2.c
@ 2019-09-02 8:27 gdb-buildbot
2019-09-02 9:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-02 8:27 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 217d2eaa69c2a5d58cdfd11619c4f2e41c986826 ***
commit 217d2eaa69c2a5d58cdfd11619c4f2e41c986826
Author: Alan Modra <amodra@gmail.com>
AuthorDate: Mon Sep 2 16:48:44 2019 +0930
Commit: Alan Modra <amodra@gmail.com>
CommitDate: Mon Sep 2 16:50:22 2019 +0930
Re: Memory leak in dwarf2.c
PR 11983
* dwarf2.c (read_alt_indirect_string): Free debug_filename
on success. Tidy.
(read_alt_indirect_ref): Likewise.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 47f694ad75..f033af7443 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -3,6 +3,8 @@
PR 11983
* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Free debug_filename
on success. Tidy.
+ (read_alt_indirect_string): Likewise.
+ (read_alt_indirect_ref): Likewise.
2019-08-31 Jim Wilson <jimw@sifive.com>
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 88638b903f..ed6dcd48c7 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -802,20 +802,21 @@ read_alt_indirect_string (struct comp_unit * unit,
if (stash->alt_bfd_ptr == NULL)
{
- bfd * debug_bfd;
- char * debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
+ bfd *debug_bfd;
+ char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
if (debug_filename == NULL)
return NULL;
- if ((debug_bfd = bfd_openr (debug_filename, NULL)) == NULL
- || ! bfd_check_format (debug_bfd, bfd_object))
- {
- if (debug_bfd)
- bfd_close (debug_bfd);
+ debug_bfd = bfd_openr (debug_filename, NULL);
+ free (debug_filename);
+ if (debug_bfd == NULL)
+ /* FIXME: Should we report our failure to follow the debuglink ? */
+ return NULL;
- /* FIXME: Should we report our failure to follow the debuglink ? */
- free (debug_filename);
+ if (!bfd_check_format (debug_bfd, bfd_object))
+ {
+ bfd_close (debug_bfd);
return NULL;
}
stash->alt_bfd_ptr = debug_bfd;
@@ -850,20 +851,21 @@ read_alt_indirect_ref (struct comp_unit * unit,
if (stash->alt_bfd_ptr == NULL)
{
- bfd * debug_bfd;
- char * debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
+ bfd *debug_bfd;
+ char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
if (debug_filename == NULL)
return FALSE;
- if ((debug_bfd = bfd_openr (debug_filename, NULL)) == NULL
- || ! bfd_check_format (debug_bfd, bfd_object))
- {
- if (debug_bfd)
- bfd_close (debug_bfd);
+ debug_bfd = bfd_openr (debug_filename, NULL);
+ free (debug_filename);
+ if (debug_bfd == NULL)
+ /* FIXME: Should we report our failure to follow the debuglink ? */
+ return NULL;
- /* FIXME: Should we report our failure to follow the debuglink ? */
- free (debug_filename);
+ if (!bfd_check_format (debug_bfd, bfd_object))
+ {
+ bfd_close (debug_bfd);
return NULL;
}
stash->alt_bfd_ptr = debug_bfd;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Refactor svr4_create_solib_event_breakpoints
@ 2019-09-02 14:04 gdb-buildbot
2019-09-02 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-02 14:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT e661ef01e50a2cb38c006b0fe444a1b41bfc9400 ***
commit e661ef01e50a2cb38c006b0fe444a1b41bfc9400
Author: Alan Hayward <alan.hayward@arm.com>
AuthorDate: Wed Aug 21 15:05:40 2019 +0100
Commit: Alan Hayward <alan.hayward@arm.com>
CommitDate: Mon Sep 2 13:57:12 2019 +0100
Refactor svr4_create_solib_event_breakpoints
Move the bulk of svr4_create_solib_event_breakpoints into a new
function to simplify the logic. No functional changes.
gdb/ChangeLog:
* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Move
code to here...
(svr4_create_solib_event_breakpoints): ...from here.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ebcfae1f97..e35ff66c54 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-02 Alan Hayward <alan.hayward@arm.com>
+
+ * solib-svr4.c (svr4_find_and_create_probe_breakpoints): Move
+ code to here...
+ (svr4_create_solib_event_breakpoints): ...from here.
+
2019-08-30 Sergio Durigan Junior <sergiodj@redhat.com>
* nat/fork-inferior.c (trace_start_error): Remove "\nError: "
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index c0c505acaa..b21eacb68f 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -2061,6 +2061,61 @@ svr4_create_probe_breakpoints (svr4_info *info, struct gdbarch *gdbarch,
svr4_update_solib_event_breakpoints ();
}
+/* Find all the glibc named probes. Only if all of the probes are found, then
+ create them and return true. Otherwise return false. If WITH_PREFIX is set
+ then add "rtld" to the front of the probe names. */
+static bool
+svr4_find_and_create_probe_breakpoints (svr4_info *info,
+ struct gdbarch *gdbarch,
+ struct obj_section *os,
+ bool with_prefix)
+{
+ std::vector<probe *> probes[NUM_PROBES];
+ bool checked_can_use_probe_arguments = false;
+
+ for (int i = 0; i < NUM_PROBES; i++)
+ {
+ const char *name = probe_info[i].name;
+ char buf[32];
+
+ /* Fedora 17 and Red Hat Enterprise Linux 6.2-6.4 shipped with an early
+ version of the probes code in which the probes' names were prefixed
+ with "rtld_" and the "map_failed" probe did not exist. The locations
+ of the probes are otherwise the same, so we check for probes with
+ prefixed names if probes with unprefixed names are not present. */
+ if (with_prefix)
+ {
+ xsnprintf (buf, sizeof (buf), "rtld_%s", name);
+ name = buf;
+ }
+
+ probes[i] = find_probes_in_objfile (os->objfile, "rtld", name);
+
+ /* The "map_failed" probe did not exist in early
+ versions of the probes code in which the probes'
+ names were prefixed with "rtld_". */
+ if (with_prefix && streq (name, "rtld_map_failed"))
+ continue;
+
+ /* Ensure at least one probe for the current name was found. */
+ if (probes[i].empty ())
+ return false;
+
+ /* Ensure probe arguments can be evaluated. */
+ if (!checked_can_use_probe_arguments)
+ {
+ probe *p = probes[i][0];
+ if (!p->can_evaluate_arguments ())
+ return false;
+ checked_can_use_probe_arguments = true;
+ }
+ }
+
+ /* All probes found. Now create them. */
+ svr4_create_probe_breakpoints (info, gdbarch, probes, os->objfile);
+ return true;
+}
+
/* Both the SunOS and the SVR4 dynamic linkers call a marker function
before and after mapping and unmapping shared libraries. The sole
purpose of this method is to allow debuggers to set a breakpoint so
@@ -2077,74 +2132,12 @@ static void
svr4_create_solib_event_breakpoints (svr4_info *info, struct gdbarch *gdbarch,
CORE_ADDR address)
{
- struct obj_section *os;
-
- os = find_pc_section (address);
- if (os != NULL)
- {
- int with_prefix;
-
- for (with_prefix = 0; with_prefix <= 1; with_prefix++)
- {
- std::vector<probe *> probes[NUM_PROBES];
- int all_probes_found = 1;
- int checked_can_use_probe_arguments = 0;
-
- for (int i = 0; i < NUM_PROBES; i++)
- {
- const char *name = probe_info[i].name;
- probe *p;
- char buf[32];
-
- /* Fedora 17 and Red Hat Enterprise Linux 6.2-6.4
- shipped with an early version of the probes code in
- which the probes' names were prefixed with "rtld_"
- and the "map_failed" probe did not exist. The
- locations of the probes are otherwise the same, so
- we check for probes with prefixed names if probes
- with unprefixed names are not present. */
- if (with_prefix)
- {
- xsnprintf (buf, sizeof (buf), "rtld_%s", name);
- name = buf;
- }
-
- probes[i] = find_probes_in_objfile (os->objfile, "rtld", name);
-
- /* The "map_failed" probe did not exist in early
- versions of the probes code in which the probes'
- names were prefixed with "rtld_". */
- if (strcmp (name, "rtld_map_failed") == 0)
- continue;
-
- if (probes[i].empty ())
- {
- all_probes_found = 0;
- break;
- }
-
- /* Ensure probe arguments can be evaluated. */
- if (!checked_can_use_probe_arguments)
- {
- p = probes[i][0];
- if (!p->can_evaluate_arguments ())
- {
- all_probes_found = 0;
- break;
- }
- checked_can_use_probe_arguments = 1;
- }
- }
-
- if (all_probes_found)
- svr4_create_probe_breakpoints (info, gdbarch, probes, os->objfile);
-
- if (all_probes_found)
- return;
- }
- }
+ struct obj_section *os = find_pc_section (address);
- create_solib_event_breakpoint (gdbarch, address);
+ if (os == nullptr
+ || (!svr4_find_and_create_probe_breakpoints (info, gdbarch, os, false)
+ && !svr4_find_and_create_probe_breakpoints (info, gdbarch, os, true)))
+ create_solib_event_breakpoint (gdbarch, address);
}
/* Helper function for gdb_bfd_lookup_symbol. */
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Use gdbarch for probe::get_argument_count
@ 2019-09-02 15:09 gdb-buildbot
2019-09-02 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-02 15:09 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT fe01123efb30a273645dc194ae2100197f93a00a ***
commit fe01123efb30a273645dc194ae2100197f93a00a
Author: Alan Hayward <alan.hayward@arm.com>
AuthorDate: Wed Aug 21 15:24:02 2019 +0100
Commit: Alan Hayward <alan.hayward@arm.com>
CommitDate: Mon Sep 2 13:58:48 2019 +0100
Use gdbarch for probe::get_argument_count
The probe function get_argument_count does not need a frame, only
the current gdbarch. Switch the code to pass gdbarch instead.
No functional changes.
gdb/ChangeLog:
* break-catch-throw.c (fetch_probe_arguments): Use gdbarch.
* dtrace-probe.c (dtrace_probe::get_argument_count): Likewise.
* probe.c (probe_safe_evaluate_at_pc) (compute_probe_arg)
(compile_probe_arg): Likewise.
* probe.h (get_argument_count): Likewise.
* solib-svr4.c (solib_event_probe_action): Likewise.
* stap-probe.c (stap_probe::get_argument_count): Likewise.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e35ff66c54..d0e4258c4f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-02 Alan Hayward <alan.hayward@arm.com>
+
+ * break-catch-throw.c (fetch_probe_arguments): Use gdbarch.
+ * dtrace-probe.c (dtrace_probe::get_argument_count): Likewise.
+ * probe.c (probe_safe_evaluate_at_pc) (compute_probe_arg)
+ (compile_probe_arg): Likewise.
+ * probe.h (get_argument_count): Likewise.
+ * solib-svr4.c (solib_event_probe_action): Likewise.
+ * stap-probe.c (stap_probe::get_argument_count): Likewise.
+
2019-09-02 Alan Hayward <alan.hayward@arm.com>
* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Move
diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c
index 2d91285312..e9523a6eb8 100644
--- a/gdb/break-catch-throw.c
+++ b/gdb/break-catch-throw.c
@@ -115,7 +115,7 @@ fetch_probe_arguments (struct value **arg0, struct value **arg1)
&& pc_probe.prob->get_name () != "rethrow"))
error (_("not stopped at a C++ exception catchpoint"));
- n_args = pc_probe.prob->get_argument_count (frame);
+ n_args = pc_probe.prob->get_argument_count (get_frame_arch (frame));
if (n_args < 2)
error (_("C++ exception catchpoint has too few arguments"));
diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c
index 2d92edb11c..e9e71fd4c9 100644
--- a/gdb/dtrace-probe.c
+++ b/gdb/dtrace-probe.c
@@ -122,7 +122,7 @@ public:
CORE_ADDR get_relocated_address (struct objfile *objfile) override;
/* See probe.h. */
- unsigned get_argument_count (struct frame_info *frame) override;
+ unsigned get_argument_count (struct gdbarch *gdbarch) override;
/* See probe.h. */
bool can_evaluate_arguments () const override;
@@ -693,7 +693,7 @@ dtrace_probe::get_relocated_address (struct objfile *objfile)
/* Implementation of the get_argument_count method. */
unsigned
-dtrace_probe::get_argument_count (struct frame_info *frame)
+dtrace_probe::get_argument_count (struct gdbarch *gdbarch)
{
return m_args.size ();
}
diff --git a/gdb/probe.c b/gdb/probe.c
index cdc6e021d2..8b108d6b02 100644
--- a/gdb/probe.c
+++ b/gdb/probe.c
@@ -695,7 +695,7 @@ probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n)
if (!probe.prob)
return NULL;
- n_args = probe.prob->get_argument_count (frame);
+ n_args = probe.prob->get_argument_count (get_frame_arch (frame));
if (n >= n_args)
return NULL;
@@ -818,7 +818,7 @@ compute_probe_arg (struct gdbarch *arch, struct internalvar *ivar,
if (pc_probe.prob == NULL)
error (_("No probe at PC %s"), core_addr_to_string (pc));
- n_args = pc_probe.prob->get_argument_count (frame);
+ n_args = pc_probe.prob->get_argument_count (arch);
if (sel == -1)
return value_from_longest (builtin_type (arch)->builtin_int, n_args);
@@ -840,7 +840,6 @@ compile_probe_arg (struct internalvar *ivar, struct agent_expr *expr,
int sel = (int) (uintptr_t) data;
struct bound_probe pc_probe;
int n_args;
- struct frame_info *frame = get_selected_frame (NULL);
/* SEL == -1 means "_probe_argc". */
gdb_assert (sel >= -1);
@@ -849,7 +848,7 @@ compile_probe_arg (struct internalvar *ivar, struct agent_expr *expr,
if (pc_probe.prob == NULL)
error (_("No probe at PC %s"), core_addr_to_string (pc));
- n_args = pc_probe.prob->get_argument_count (frame);
+ n_args = pc_probe.prob->get_argument_count (expr->gdbarch);
if (sel == -1)
{
diff --git a/gdb/probe.h b/gdb/probe.h
index 8abf69e354..7410c5aadf 100644
--- a/gdb/probe.h
+++ b/gdb/probe.h
@@ -131,7 +131,7 @@ public:
/* Return the number of arguments of the probe. This function can
throw an exception. */
- virtual unsigned get_argument_count (struct frame_info *frame) = 0;
+ virtual unsigned get_argument_count (struct gdbarch *gdbarch) = 0;
/* Return 1 if the probe interface can evaluate the arguments of
probe, zero otherwise. See the comments on
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index b21eacb68f..2a44dd6985 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1756,7 +1756,7 @@ solib_event_probe_action (struct probe_and_action *pa)
arg2: struct link_map *new (optional, for incremental updates) */
try
{
- probe_argc = pa->prob->get_argument_count (frame);
+ probe_argc = pa->prob->get_argument_count (get_frame_arch (frame));
}
catch (const gdb_exception_error &ex)
{
diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c
index b6de873d2c..700b657967 100644
--- a/gdb/stap-probe.c
+++ b/gdb/stap-probe.c
@@ -136,7 +136,7 @@ public:
CORE_ADDR get_relocated_address (struct objfile *objfile) override;
/* See probe.h. */
- unsigned get_argument_count (struct frame_info *frame) override;
+ unsigned get_argument_count (struct gdbarch *gdbarch) override;
/* See probe.h. */
bool can_evaluate_arguments () const override;
@@ -1301,10 +1301,8 @@ stap_probe::get_relocated_address (struct objfile *objfile)
argument string. */
unsigned
-stap_probe::get_argument_count (struct frame_info *frame)
+stap_probe::get_argument_count (struct gdbarch *gdbarch)
{
- struct gdbarch *gdbarch = get_frame_arch (frame);
-
if (!m_have_parsed_args)
{
if (this->can_evaluate_arguments ())
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Check arguments for all probes before using them
@ 2019-09-02 15:29 gdb-buildbot
2019-09-02 17:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-02 15:29 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT d90b8f2632cded4792f18d8bb92bacc21d93eb0a ***
commit d90b8f2632cded4792f18d8bb92bacc21d93eb0a
Author: Alan Hayward <alan.hayward@arm.com>
AuthorDate: Wed Aug 21 15:36:37 2019 +0100
Commit: Alan Hayward <alan.hayward@arm.com>
CommitDate: Mon Sep 2 14:00:42 2019 +0100
Check arguments for all probes before using them
There is a long standing bug in the Arm toolchain where invalid
stap probes get created due to the probes referring to symbols which
have been resolved away.
More details are here:
https://bugzilla.redhat.com/show_bug.cgi?id=1196181
When these invalid probes are present, GDB will create the breakpoints
and then fail to stop. The errors are only spotted the first time
GDB stops, which is too late.
The solution is to ensure the arguments for all the probes are
resolved before using them.
This fixes >100 timeouts when running break-interp.exp when using
bad probes.
gdb/ChangeLog:
* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Check all
probe arguments.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d0e4258c4f..08615f462e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-02 Alan Hayward <alan.hayward@arm.com>
+
+ * solib-svr4.c (svr4_find_and_create_probe_breakpoints): Check all
+ probe arguments.
+
2019-09-02 Alan Hayward <alan.hayward@arm.com>
* break-catch-throw.c (fetch_probe_arguments): Use gdbarch.
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 2a44dd6985..ffae26bfc5 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -2071,7 +2071,6 @@ svr4_find_and_create_probe_breakpoints (svr4_info *info,
bool with_prefix)
{
std::vector<probe *> probes[NUM_PROBES];
- bool checked_can_use_probe_arguments = false;
for (int i = 0; i < NUM_PROBES; i++)
{
@@ -2102,12 +2101,23 @@ svr4_find_and_create_probe_breakpoints (svr4_info *info,
return false;
/* Ensure probe arguments can be evaluated. */
- if (!checked_can_use_probe_arguments)
+ for (probe *p : probes[i])
{
- probe *p = probes[i][0];
if (!p->can_evaluate_arguments ())
return false;
- checked_can_use_probe_arguments = true;
+ /* This will fail if the probe is invalid. This has been seen on Arm
+ due to references to symbols that have been resolved away. */
+ try
+ {
+ p->get_argument_count (gdbarch);
+ }
+ catch (const gdb_exception_error &ex)
+ {
+ exception_print (gdb_stderr, ex);
+ warning (_("Initializing probes-based dynamic linker interface "
+ "failed.\nReverting to original interface."));
+ return false;
+ }
}
}
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix a potential buffer overrun in the MMIX disassembler when processing a corrupt input file.
@ 2019-09-03 9:35 gdb-buildbot
2019-09-03 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-03 9:35 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 1e4b5e7d354a41276cb8dfbaae79915e1730dbd8 ***
commit 1e4b5e7d354a41276cb8dfbaae79915e1730dbd8
Author: Nick Clifton <nickc@redhat.com>
AuthorDate: Tue Sep 3 09:53:25 2019 +0100
Commit: Nick Clifton <nickc@redhat.com>
CommitDate: Tue Sep 3 09:53:25 2019 +0100
Fix a potential buffer overrun in the MMIX disassembler when processing a corrupt input file.
PR 24958
* mmix-dis.c (MAX_REG_NAME_LEN): Define.
(MAX_SPEC_REG_NAME_LEN): Define.
(struct mmix_dis_info): Use defined constants for array lengths.
(get_reg_name): New function.
(get_sprec_reg_name): New function.
(print_insn_mmix): Use new functions.
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index bec2b59cc4..87e3f74663 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,13 @@
+2019-09-03 Nick Clifton <nickc@redhat.com>
+
+ PR 24958
+ * mmix-dis.c (MAX_REG_NAME_LEN): Define.
+ (MAX_SPEC_REG_NAME_LEN): Define.
+ (struct mmix_dis_info): Use defined constants for array lengths.
+ (get_reg_name): New function.
+ (get_sprec_reg_name): New function.
+ (print_insn_mmix): Use new functions.
+
2019-08-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
* arm-dis.c (mve_opcodes): Add entry for MVE_VMOV_VEC_TO_VEC.
diff --git a/opcodes/mmix-dis.c b/opcodes/mmix-dis.c
index 80a58ed6ec..93688d3cb7 100644
--- a/opcodes/mmix-dis.c
+++ b/opcodes/mmix-dis.c
@@ -54,15 +54,17 @@
#define INSN_IMMEDIATE_BIT (IMM_OFFSET_BIT << 24)
#define INSN_BACKWARD_OFFSET_BIT (1 << 24)
+#define MAX_REG_NAME_LEN 256
+#define MAX_SPEC_REG_NAME_LEN 32
struct mmix_dis_info
{
- const char *reg_name[256];
- const char *spec_reg_name[32];
+ const char *reg_name[MAX_REG_NAME_LEN];
+ const char *spec_reg_name[MAX_SPEC_REG_NAME_LEN];
/* Waste a little memory so we don't have to allocate each separately.
We could have an array with static contents for these, but on the
other hand, we don't have to. */
- char basic_reg_name[256][sizeof ("$255")];
+ char basic_reg_name[MAX_REG_NAME_LEN][sizeof ("$255")];
};
/* Initialize a target-specific array in INFO. */
@@ -111,7 +113,7 @@ initialize_mmix_dis_info (struct disassemble_info *info)
for (i = 0; i < nsyms && syms[i] != NULL; i++)
{
if (syms[i]->section == reg_section
- && syms[i]->value < 256
+ && syms[i]->value < MAX_REG_NAME_LEN
&& minfop->reg_name[syms[i]->value] == NULL)
minfop->reg_name[syms[i]->value] = syms[i]->name;
}
@@ -119,7 +121,7 @@ initialize_mmix_dis_info (struct disassemble_info *info)
}
/* Fill in the rest with the canonical names. */
- for (i = 0; i < 256; i++)
+ for (i = 0; i < MAX_REG_NAME_LEN; i++)
if (minfop->reg_name[i] == NULL)
{
sprintf (minfop->basic_reg_name[i], "$%ld", i);
@@ -238,6 +240,22 @@ get_opcode (unsigned long insn)
return NULL;
}
+static inline const char *
+get_reg_name (const struct mmix_dis_info * minfop, unsigned int x)
+{
+ if (x >= MAX_REG_NAME_LEN)
+ return _("*illegal*");
+ return minfop->reg_name[x];
+}
+
+static inline const char *
+get_spec_reg_name (const struct mmix_dis_info * minfop, unsigned int x)
+{
+ if (x >= MAX_SPEC_REG_NAME_LEN)
+ return _("*illegal*");
+ return minfop->spec_reg_name[x];
+}
+
/* The main disassembly function. */
int
@@ -333,15 +351,15 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
case mmix_operands_regs:
/* All registers: "$X,$Y,$Z". */
(*info->fprintf_func) (info->stream, "%s,%s,%s",
- minfop->reg_name[x],
- minfop->reg_name[y],
- minfop->reg_name[z]);
+ get_reg_name (minfop, x),
+ get_reg_name (minfop, y),
+ get_reg_name (minfop, z));
break;
case mmix_operands_reg_yz:
/* Like SETH - "$X,YZ". */
(*info->fprintf_func) (info->stream, "%s,0x%x",
- minfop->reg_name[x], y * 256 + z);
+ get_reg_name (minfop, x), y * 256 + z);
break;
case mmix_operands_regs_z_opt:
@@ -350,12 +368,13 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
/* The regular "$X,$Y,$Z|Z". */
if (insn & INSN_IMMEDIATE_BIT)
(*info->fprintf_func) (info->stream, "%s,%s,%d",
- minfop->reg_name[x], minfop->reg_name[y], z);
+ get_reg_name (minfop, x),
+ get_reg_name (minfop, y), z);
else
(*info->fprintf_func) (info->stream, "%s,%s,%s",
- minfop->reg_name[x],
- minfop->reg_name[y],
- minfop->reg_name[z]);
+ get_reg_name (minfop, x),
+ get_reg_name (minfop, y),
+ get_reg_name (minfop, z));
break;
case mmix_operands_jmp:
@@ -378,23 +397,23 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
{
if (insn & INSN_IMMEDIATE_BIT)
(*info->fprintf_func) (info->stream, "%s,%s,%d",
- minfop->reg_name[x],
+ get_reg_name (minfop, x),
ROUND_MODE (y), z);
else
(*info->fprintf_func) (info->stream, "%s,%s,%s",
- minfop->reg_name[x],
+ get_reg_name (minfop, x),
ROUND_MODE (y),
- minfop->reg_name[z]);
+ get_reg_name (minfop, z));
}
else
{
if (insn & INSN_IMMEDIATE_BIT)
(*info->fprintf_func) (info->stream, "%s,%d",
- minfop->reg_name[x], z);
+ get_reg_name (minfop, x), z);
else
(*info->fprintf_func) (info->stream, "%s,%s",
- minfop->reg_name[x],
- minfop->reg_name[z]);
+ get_reg_name (minfop, x),
+ get_reg_name (minfop, z));
}
break;
@@ -408,13 +427,13 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
"$X,ROUND_MODE,$Z". */
if (y != 0)
(*info->fprintf_func) (info->stream, "%s,%s,%s",
- minfop->reg_name[x],
+ get_reg_name (minfop, x),
ROUND_MODE (y),
- minfop->reg_name[z]);
+ get_reg_name (minfop, z));
else
(*info->fprintf_func) (info->stream, "%s,%s",
- minfop->reg_name[x],
- minfop->reg_name[z]);
+ get_reg_name (minfop, x),
+ get_reg_name (minfop, z));
break;
case mmix_operands_sync:
@@ -427,22 +446,22 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
/* Like SYNCD - "X,$Y,$Z|Z". */
if (insn & INSN_IMMEDIATE_BIT)
(*info->fprintf_func) (info->stream, "%d,%s,%d",
- x, minfop->reg_name[y], z);
+ x, get_reg_name (minfop, y), z);
else
(*info->fprintf_func) (info->stream, "%d,%s,%s",
- x, minfop->reg_name[y],
- minfop->reg_name[z]);
+ x, get_reg_name (minfop, y),
+ get_reg_name (minfop, z));
break;
case mmix_operands_neg:
/* Like NEG and NEGU - "$X,Y,$Z|Z". */
if (insn & INSN_IMMEDIATE_BIT)
(*info->fprintf_func) (info->stream, "%s,%d,%d",
- minfop->reg_name[x], y, z);
+ get_reg_name (minfop, x), y, z);
else
(*info->fprintf_func) (info->stream, "%s,%d,%s",
- minfop->reg_name[x], y,
- minfop->reg_name[z]);
+ get_reg_name (minfop, x), y,
+ get_reg_name (minfop, z));
break;
case mmix_operands_pushj:
@@ -456,7 +475,7 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
info->target = memaddr + offset;
- (*info->fprintf_func) (info->stream, "%s,", minfop->reg_name[x]);
+ (*info->fprintf_func) (info->stream, "%s,", get_reg_name (minfop, x));
(*info->print_address_func) (memaddr + offset, info);
}
break;
@@ -464,26 +483,26 @@ print_insn_mmix (bfd_vma memaddr, struct disassemble_info *info)
case mmix_operands_get:
/* GET - "X,spec_reg". */
(*info->fprintf_func) (info->stream, "%s,%s",
- minfop->reg_name[x],
- minfop->spec_reg_name[z]);
+ get_reg_name (minfop, x),
+ get_spec_reg_name (minfop, z));
break;
case mmix_operands_put:
/* PUT - "spec_reg,$Z|Z". */
if (insn & INSN_IMMEDIATE_BIT)
(*info->fprintf_func) (info->stream, "%s,%d",
- minfop->spec_reg_name[x], z);
+ get_spec_reg_name (minfop, x), z);
else
(*info->fprintf_func) (info->stream, "%s,%s",
- minfop->spec_reg_name[x],
- minfop->reg_name[z]);
+ get_spec_reg_name (minfop, x),
+ get_reg_name (minfop, z));
break;
case mmix_operands_set:
/* Two registers, "$X,$Y". */
(*info->fprintf_func) (info->stream, "%s,%s",
- minfop->reg_name[x],
- minfop->reg_name[y]);
+ get_reg_name (minfop, x),
+ get_reg_name (minfop, y));
break;
case mmix_operands_save:
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Fix buffer underrun bug in the TI C30 disassembler.
@ 2019-09-03 15:14 gdb-buildbot
2019-09-03 16:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Handle biased types
@ 2019-09-03 17:01 gdb-buildbot
2019-09-03 21:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Handle missing domain types in: maintenance print psymbols
@ 2019-09-03 22:11 gdb-buildbot
2019-09-04 2:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Avoid expect's buffer overflow in info-var.exp test.
@ 2019-09-04 21:19 gdb-buildbot
2019-09-05 1:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24955, libbfd terminating program on out of memory
@ 2019-09-05 4:49 gdb-buildbot
2019-09-05 6:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] R_PPC64_PCREL_OPT
@ 2019-09-05 5:56 gdb-buildbot
2019-09-05 6:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC64 GOT_PCREL relocs
@ 2019-09-05 7:02 gdb-buildbot
2019-09-05 9:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Restore breakpoint command in ui-redirect.exp
@ 2019-09-05 13:10 gdb-buildbot
2019-09-06 2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd_get_filename
@ 2019-09-06 14:26 gdb-buildbot
2019-09-06 19:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change int to bool for the relocate_* functions
@ 2019-09-06 20:12 gdb-buildbot
2019-09-06 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] un-XFAIL under Clang tests using labels
@ 2019-09-06 21:56 gdb-buildbot
2019-09-07 2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-06 21:56 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT 736b0f76188c7a4d497a5e2255b78af909393afe ***
commit 736b0f76188c7a4d497a5e2255b78af909393afe
Author: David Blaikie <dblaikie@gmail.com>
AuthorDate: Thu Sep 5 15:01:25 2019 -0700
Commit: David Blaikie <dblaikie@gmail.com>
CommitDate: Fri Sep 6 14:17:36 2019 -0700
un-XFAIL under Clang tests using labels
gdb/testsuite/
* gdb.base/label.exp: un-XFAIL label related tests under Clang.
* gdb.cp/cplabel.exp: Ditto.
* gdb.linespec/ls-errs.exp: Ditto.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 0f6917a5a0..a6a645b81b 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-06 David Blaikie <dblaikie@gmail.com>
+
+ * gdb.base/label.exp: un-XFAIL label related tests under Clang.
+ * gdb.cp/cplabel.exp: Ditto.
+ * gdb.linespec/ls-errs.exp: Ditto.
+
2019-09-05 Tom de Vries <tdevries@suse.de>
* lib/gdb.exp (cmp_file_string): New proc.
diff --git a/gdb/testsuite/gdb.base/label.exp b/gdb/testsuite/gdb.base/label.exp
index bce90cb60e..ec4851970e 100644
--- a/gdb/testsuite/gdb.base/label.exp
+++ b/gdb/testsuite/gdb.base/label.exp
@@ -29,34 +29,24 @@ if {![runto_main]} {
return -1
}
-set has_pr_14500_fixed 1
-if {[test_compiler_info {clang-*-*}]} {
- set has_pr_14500_fixed 0
-}
-
-if {!$has_pr_14500_fixed} { setup_xfail clang/14500 *-*-* }
gdb_test "break here" \
"Breakpoint.*at.*" \
"breakpoint here"
-if {!$has_pr_14500_fixed} { setup_xfail clang/14500 *-*-* }
gdb_test "break main:there" \
"Breakpoint.*at.*" \
"breakpoint there"
-if {!$has_pr_14500_fixed} { setup_xfail clang/14500 *-*-* }
gdb_test "cont" \
"Breakpoint 3,.*" \
"continue to 'there'"
-if {!$has_pr_14500_fixed} { setup_xfail clang/14500 *-*-* }
gdb_test "cont" \
"Breakpoint 2,.*" \
"continue to 'here'"
rerun_to_main
-if {!$has_pr_14500_fixed} { setup_xfail clang/14500 *-*-* }
gdb_test "cont" \
"Breakpoint 3,.*" \
"continue to 'there' after re-run"
diff --git a/gdb/testsuite/gdb.cp/cplabel.exp b/gdb/testsuite/gdb.cp/cplabel.exp
index 26818cb1a2..93febd6925 100644
--- a/gdb/testsuite/gdb.cp/cplabel.exp
+++ b/gdb/testsuite/gdb.cp/cplabel.exp
@@ -34,7 +34,6 @@ set labels {"to_the_top" "get_out_of_here"}
foreach m $methods {
foreach l $labels {
set line [gdb_get_line_number "$m:$l"]
- if {[test_compiler_info {clang-*-*}]} { setup_xfail clang/14500 *-*-* }
gdb_test "break foo::$m:$l" \
"Breakpoint $decimal at $hex: file .*$srcfile, line $line\."
}
diff --git a/gdb/testsuite/gdb.linespec/ls-errs.exp b/gdb/testsuite/gdb.linespec/ls-errs.exp
index 92a858ce26..f031c461cb 100644
--- a/gdb/testsuite/gdb.linespec/ls-errs.exp
+++ b/gdb/testsuite/gdb.linespec/ls-errs.exp
@@ -231,9 +231,6 @@ proc do_test {lang} {
foreach x $spaces {
test_break "main${x}there" invalid_label "there" "main"
- if {[test_compiler_info {clang-*-*}]} {
- setup_xfail clang/14500 *-*-*
- }
test_break "main:here${x}" unexpected "end of input"
}
^ permalink raw reply [flat|nested] 4390+ 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-08 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Truncate long TUI window titles
@ 2019-09-08 20:44 gdb-buildbot
2019-09-09 9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix leak detected in python.c initialization code.
@ 2019-09-09 22:31 gdb-buildbot
2019-09-09 23:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use ui_out for "info win"
@ 2019-09-09 23:50 gdb-buildbot
2019-09-10 1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] DWARF 5 support: Handle dwo_id
@ 2019-09-10 2:15 gdb-buildbot
2019-09-10 14:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 16:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change iterate_over_symbols to return bool
@ 2019-09-10 15:39 gdb-buildbot
2019-09-10 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Simplify psym_map_matching_symbols
@ 2019-09-10 15:52 gdb-buildbot
2019-09-10 18:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 19:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix latent bug in .debug_names file-name handling
@ 2019-09-10 16:18 gdb-buildbot
2019-09-10 20:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add Ada support for .debug_names
@ 2019-09-10 16:33 gdb-buildbot
2019-09-10 21:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Add Ada support to cc-with-tweaks.exp
@ 2019-09-10 16:50 gdb-buildbot
2019-09-10 22:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use the correct alias for the M68K tdiv instruction.
@ 2019-09-10 17:05 gdb-buildbot
2019-09-11 0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Tidy ld/ldmisc.c
@ 2019-09-11 7:07 gdb-buildbot
2019-09-11 9:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Introduce bfd_set_filename
@ 2019-09-11 18:15 gdb-buildbot
2019-09-11 19:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix float to LONGEST conversion.
@ 2019-09-11 19:49 gdb-buildbot
2019-09-11 21:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Refactor get_init_files to use std::string
@ 2019-09-11 22:11 gdb-buildbot
2019-09-12 2:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-12 5:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make relocate_{path,gdb_directory} return std::string
@ 2019-09-12 0:41 gdb-buildbot
2019-09-12 6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix signals reported for faults on Solaris
@ 2019-09-12 9:22 gdb-buildbot
2019-09-12 10:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Output the Ada task name in more messages.
@ 2019-09-12 20:58 gdb-buildbot
2019-09-12 21:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-13 1:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 2:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Have 'maint info sections' print all sections again
@ 2019-09-13 1:12 gdb-buildbot
2019-09-13 3:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Force use of float version of log10
@ 2019-09-13 2:09 gdb-buildbot
2019-09-13 5:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-16 10:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 11:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Don't duplicate comment in symfile.c and .h
@ 2019-09-17 3:49 gdb-buildbot
2019-09-17 12:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Catch exceptions when accessing source cache
@ 2019-09-17 20:17 gdb-buildbot
2019-09-17 21:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Look for compilation directory relative to directory search path
@ 2019-09-17 21:49 gdb-buildbot
2019-09-17 23:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-17 21:49 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f1b620e9b4eea4bfd2f35a3039672fa8a5925bcb ***
commit f1b620e9b4eea4bfd2f35a3039672fa8a5925bcb
Author: Mike Gulick <mgulick@mathworks.com>
AuthorDate: Thu Sep 12 11:16:06 2019 -0400
Commit: Andrew Burgess <andrew.burgess@embecosm.com>
CommitDate: Tue Sep 17 16:20:19 2019 -0400
gdb: Look for compilation directory relative to directory search path
The 'directory' command allows the user to provide a list of filesystem
directories in which to search for source code. The directories in this
search path are used as the base directory for the source filename from
the debug information (DW_AT_name). Thus the directory search path
provides alternatives to the existing compilation directory from the
debug information (DW_AT_comp_dir). Generally speaking, DW_AT_name
stores the filename argument passed to the compiler (including any
directory components), and DW_AT_comp_dir stores the current working
directory from which the compiler was executed. For example:
$ cd /path/to/project/subdir1
$ gcc -c a/test.c -g
The corresponding debug information will look like this:
DW_AT_name : a/test.c
DW_AT_comp_dir : /path/to/project/subdir1
When compiling with the -fdebug-prefix-map GCC option, the compilation
directory can be arbitrarily rewritten. In the above example, we may
rewrite the compilation directory as follows:
$ gcc -c a/test.c -g -fdebug-prefix-map=/path/to/project=
In this case, the corresponding debug information will look like:
DW_AT_name : a/test.c
DW_AT_comp_dir : /subdir1
This prevents GDB from finding the corresponding source code based on
the debug information alone. In some cases, a substitute-path command
can be used to re-map a consistent prefix in the rewritten compilation
directory to the real filesystem path. However, there may not be a
consistent prefix remaining in the debug symbols (for example in a
project that has source code in many subdirectories under the project's
root), thereby requiring multiple substitute-path rules. In this case,
it is easier to add the missing prefix to the directory search path via
the 'directory' command.
The function find_and_open_source currently searches in:
SEARCH_PATH/FILENAME
where SEARCH_PATH corresponds to each individual entry in the directory
search path (which is guaranteed to contain the compilation directory
from the debug information, as well as the current working directory).
FILENAME corresponds to the source filename (DW_AT_name), which may have
directory components in it. In addition, GDB searches in:
SEARCH_PATH/FILE_BASENAME
where FILE_BASENAME is the basename of the DW_AT_name entry.
This change modifies find_and_open_source to additionally search in:
SEARCH_PATH/COMP_DIR/FILENAME
where COMP_DIR is the compilation directory from the debug symbols. In
the example given earlier, running:
(gdb) directory /path/to/project
will now allow GDB to correctly locate the source code from the debug
information.
gdb/ChangeLog:
* source.c (prepare_path_for_appending): New function.
(openp): Make use of new function.
(find_and_open_source): Search for the compilation directory and
source file as a relative path beneath the directory search path.
gdb/doc/ChangeLog:
* gdb.texinfo (Source Path): Additional text to better describe
how the source path directory list is used when searching for
source files.
gdb/testsuite/ChangeLog:
* gdb.base/source-dir.exp: Add extra test for mapped compilation
directory.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c9be686c26..3bf43d2dfe 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-17 Mike Gulick <mgulick@mathworks.com>
+
+ * source.c (prepare_path_for_appending): New function.
+ (openp): Make use of new function.
+ (find_and_open_source): Search for the compilation directory and
+ source file as a relative path beneath the directory search path.
+
2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
* source-cache.c (source_cache::get_line_charpos): Catch
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 4705fbc541..a16d32d48a 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.texinfo (Source Path): Additional text to better describe
+ how the source path directory list is used when searching for
+ source files.
+
2019-09-12 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.texinfo (Ada Tasks): Tell the task name is printed, update
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index eee0c9d4dd..f4bfd9f980 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -8954,11 +8954,21 @@ it tries all the directories in the list, in the order they are present
in the list, until it finds a file with the desired name.
For example, suppose an executable references the file
-@file{/usr/src/foo-1.0/lib/foo.c}, and our source path is
-@file{/mnt/cross}. The file is first looked up literally; if this
-fails, @file{/mnt/cross/usr/src/foo-1.0/lib/foo.c} is tried; if this
-fails, @file{/mnt/cross/foo.c} is opened; if this fails, an error
-message is printed. @value{GDBN} does not look up the parts of the
+@file{/usr/src/foo-1.0/lib/foo.c}, does not record a compilation
+directory, and the @dfn{source path} is @file{/mnt/cross}.
+@value{GDBN} would look for the source file in the following
+locations:
+
+@enumerate
+
+@item @file{/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/foo.c}
+
+@end enumerate
+
+If the source file is not present at any of the above locations then
+an error is printed. @value{GDBN} does not look up the parts of the
source file name, such as @file{/mnt/cross/src/foo-1.0/lib/foo.c}.
Likewise, the subdirectories of the source path are not searched: if
the source path is @file{/mnt/cross}, and the binary refers to
@@ -8966,11 +8976,91 @@ the source path is @file{/mnt/cross}, and the binary refers to
@file{/mnt/cross/usr/src/foo-1.0/lib}.
Plain file names, relative file names with leading directories, file
-names containing dots, etc.@: are all treated as described above; for
-instance, if the source path is @file{/mnt/cross}, and the source file
-is recorded as @file{../lib/foo.c}, @value{GDBN} would first try
-@file{../lib/foo.c}, then @file{/mnt/cross/../lib/foo.c}, and after
-that---@file{/mnt/cross/foo.c}.
+names containing dots, etc.@: are all treated as described above,
+except that non-absolute file names are not looked up literally. If
+the @dfn{source path} is @file{/mnt/cross}, the source file is
+recorded as @file{../lib/foo.c}, and no compilation directory is
+recorded, then @value{GDBN} will search in the following locations:
+
+@enumerate
+
+@item @file{/mnt/cross/../lib/foo.c}
+@item @file{/mnt/cross/foo.c}
+
+@end enumerate
+
+@kindex cdir
+@kindex cwd
+@vindex $cdir@r{, convenience variable}
+@vindex $cwd@r{, convenience variable}
+@cindex compilation directory
+@cindex current directory
+@cindex working directory
+@cindex directory, current
+@cindex directory, compilation
+The @dfn{source path} will always include two special entries
+@samp{$cdir} and @samp{$cwd}, these refer to the compilation directory
+(if one is recorded) and the current working directory respectively.
+
+@samp{$cdir} causes @value{GDBN} to search within the compilation
+directory, if one is recorded in the debug information. If no
+compilation directory is recorded in the debug information then
+@samp{$cdir} is ignored.
+
+@samp{$cwd} is not the same as @samp{.}---the former tracks the
+current working directory as it changes during your @value{GDBN}
+session, while the latter is immediately expanded to the current
+directory at the time you add an entry to the source path.
+
+If a compilation directory is recorded in the debug information, and
+@value{GDBN} has not found the source file after the first search
+using @dfn{source path}, then @value{GDBN} will combine the
+compilation directory and the filename, and then search for the source
+file again using the @dfn{source path}.
+
+For example, if the executable records the source file as
+@file{/usr/src/foo-1.0/lib/foo.c}, the compilation directory is
+recorded as @file{/project/build}, and the @dfn{source path} is
+@file{/mnt/cross:$cdir:$cwd} while the current working directory of
+the @value{GDBN} session is @file{/home/user}, then @value{GDBN} will
+search for the source file in the following loctions:
+
+@enumerate
+
+@item @file{/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/usr/src/foo-1.0/lib/foo.c}
+@item @file{/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/home/user/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/project/build/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/home/user/project/build/usr/src/foo-1.0/lib/foo.c}
+@item @file{/mnt/cross/foo.c}
+@item @file{/project/build/foo.c}
+@item @file{/home/user/foo.c}
+
+@end enumerate
+
+If the file name in the previous example had been recorded in the
+executable as a relative path rather than an absolute path, then the
+first look up would not have occurred, but all of the remaining steps
+would be similar.
+
+When searching for source files on MS-DOS and MS-Windows, where
+absolute paths start with a drive letter (e.g.
+@file{C:/project/foo.c}), @value{GDBN} will remove the drive letter
+from the file name before appending it to a search directory from
+@dfn{source path}; for instance if the executable references the
+source file @file{C:/project/foo.c} and @dfn{source path} is set to
+@file{D:/mnt/cross}, then @value{GDBN} will search in the following
+locations for the source file:
+
+@enumerate
+
+@item @file{C:/project/foo.c}
+@item @file{D:/mnt/cross/project/foo.c}
+@item @file{D:/mnt/cross/foo.c}
+
+@end enumerate
Note that the executable search path is @emph{not} used to locate the
source files.
@@ -8981,8 +9071,8 @@ each line is in the file.
@kindex directory
@kindex dir
-When you start @value{GDBN}, its source path includes only @samp{cdir}
-and @samp{cwd}, in that order.
+When you start @value{GDBN}, its source path includes only @samp{$cdir}
+and @samp{$cwd}, in that order.
To add other directories, use the @code{directory} command.
The search path is used to find both program source files and @value{GDBN}
@@ -9058,21 +9148,12 @@ part of absolute file names) or
whitespace. You may specify a directory that is already in the source
path; this moves it forward, so @value{GDBN} searches it sooner.
-@kindex cdir
-@kindex cwd
-@vindex $cdir@r{, convenience variable}
-@vindex $cwd@r{, convenience variable}
-@cindex compilation directory
-@cindex current directory
-@cindex working directory
-@cindex directory, current
-@cindex directory, compilation
-You can use the string @samp{$cdir} to refer to the compilation
-directory (if one is recorded), and @samp{$cwd} to refer to the current
-working directory. @samp{$cwd} is not the same as @samp{.}---the former
-tracks the current working directory as it changes during your @value{GDBN}
-session, while the latter is immediately expanded to the current
-directory at the time you add an entry to the source path.
+The special strings @samp{$cdir} (to refer to the compilation
+directory, if one is recorded), and @samp{$cwd} (to refer to the
+current working directory) can also be included in the list of
+directories @var{dirname}. Though these will already be in the source
+path they will be moved forward in the list so @value{GDBN} searches
+them sooner.
@item directory
Reset the source path to its default value (@samp{$cdir:$cwd} on Unix systems). This requires confirmation.
diff --git a/gdb/source.c b/gdb/source.c
index b27f210802..0171f2748b 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -654,6 +654,36 @@ info_source_command (const char *ignore, int from_tty)
}
\f
+/* Helper function to remove characters from the start of PATH so that
+ PATH can then be appended to a directory name. We remove leading drive
+ letters (for dos) as well as leading '/' characters and './'
+ sequences. */
+
+const char *
+prepare_path_for_appending (const char *path)
+{
+ /* For dos paths, d:/foo -> /foo, and d:foo -> foo. */
+ if (HAS_DRIVE_SPEC (path))
+ path = STRIP_DRIVE_SPEC (path);
+
+ const char *old_path;
+ do
+ {
+ old_path = path;
+
+ /* /foo => foo, to avoid multiple slashes that Emacs doesn't like. */
+ while (IS_DIR_SEPARATOR(path[0]))
+ path++;
+
+ /* ./foo => foo */
+ while (path[0] == '.' && IS_DIR_SEPARATOR (path[1]))
+ path += 2;
+ }
+ while (old_path != path);
+
+ return path;
+}
+
/* Open a file named STRING, searching path PATH (dir names sep by some char)
using mode MODE in the calls to open. You cannot use this function to
create files (O_CREAT).
@@ -747,17 +777,9 @@ openp (const char *path, openp_flags opts, const char *string,
goto done;
}
- /* For dos paths, d:/foo -> /foo, and d:foo -> foo. */
- if (HAS_DRIVE_SPEC (string))
- string = STRIP_DRIVE_SPEC (string);
-
- /* /foo => foo, to avoid multiple slashes that Emacs doesn't like. */
- while (IS_DIR_SEPARATOR(string[0]))
- string++;
-
- /* ./foo => foo */
- while (string[0] == '.' && IS_DIR_SEPARATOR (string[1]))
- string += 2;
+ /* Remove characters from the start of PATH that we don't need when PATH
+ is appended to a directory name. */
+ string = prepare_path_for_appending (string);
alloclen = strlen (path) + strlen (string) + 2;
filename = (char *) alloca (alloclen);
@@ -1033,7 +1055,32 @@ find_and_open_source (const char *filename,
openp_flags flags = OPF_SEARCH_IN_PATH;
if (basenames_may_differ)
flags |= OPF_RETURN_REALPATH;
+
+ /* Try to locate file using filename. */
result = openp (path, flags, filename, OPEN_MODE, fullname);
+ if (result < 0 && dirname != NULL)
+ {
+ /* Remove characters from the start of PATH that we don't need when
+ PATH is appended to a directory name. */
+ const char *filename_start = prepare_path_for_appending (filename);
+
+ /* Try to locate file using compilation dir + filename. This is
+ helpful if part of the compilation directory was removed,
+ e.g. using gcc's -fdebug-prefix-map, and we have added the missing
+ prefix to source_path. */
+ std::string cdir_filename (dirname);
+
+ /* Remove any trailing directory separators. */
+ while (IS_DIR_SEPARATOR (cdir_filename.back ()))
+ cdir_filename.pop_back ();
+
+ /* Add our own directory separator. */
+ cdir_filename.append (SLASH_STRING);
+ cdir_filename.append (filename_start);
+
+ result = openp (path, flags, cdir_filename.c_str (), OPEN_MODE,
+ fullname);
+ }
if (result < 0)
{
/* Didn't work. Try using just the basename. */
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b9060ef5d0..ed838e947e 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/source-dir.exp: Add extra test for mapped compilation
+ directory.
+
2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/list-missing-source.exp: New file.
diff --git a/gdb/testsuite/gdb.base/source-dir.c b/gdb/testsuite/gdb.base/source-dir.c
new file mode 100644
index 0000000000..d94b8074ec
--- /dev/null
+++ b/gdb/testsuite/gdb.base/source-dir.c
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ 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/>. */
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/source-dir.exp b/gdb/testsuite/gdb.base/source-dir.exp
index 048c0e9516..25d7b07971 100644
--- a/gdb/testsuite/gdb.base/source-dir.exp
+++ b/gdb/testsuite/gdb.base/source-dir.exp
@@ -15,9 +15,142 @@
standard_testfile
-gdb_start
+# Take a list of directories DIRS, and return a regular expression
+# that will match against the output of the 'directory' command
+# assuming that DIRS are all of the directories that should appear in
+# the results.
+proc search_dir_list { dirs } {
+ set output "\r\nSource directories searched: "
+ append output [join $dirs "\[:;\]"]
-set foo "/nOtExStInG"
+ return ${output}
+}
-gdb_test "directory $foo/a $foo/b $foo/c" "\r\nSource directories searched: $foo/a\[:;\]$foo/b\[:;\]$foo/c\[:;\]\\\$cdir\[:;\]\\\$cwd"
-gdb_test "directory $foo/b $foo/d $foo/c" "\r\nSource directories searched: $foo/b\[:;\]$foo/d\[:;\]$foo/c\[:;\]$foo/a\[:;\]\\\$cdir\[:;\]\\\$cwd"
+# Check that adding directories to the search path changes the order
+# in which directories are searched.
+proc test_changing_search_directory {} {
+ gdb_start
+
+ set foo "/nOtExStInG"
+
+ gdb_test "directory $foo/a $foo/b $foo/c" \
+ [search_dir_list [list \
+ "$foo/a" \
+ "$foo/b" \
+ "$foo/c" \
+ "\\\$cdir" \
+ "\\\$cwd"]]
+ gdb_test "directory $foo/b $foo/d $foo/c" \
+ [search_dir_list [list \
+ "$foo/b" \
+ "$foo/d" \
+ "$foo/c" \
+ "$foo/a" \
+ "\\\$cdir" \
+ "\\\$cwd"]]
+ gdb_exit
+}
+
+# Test that the compilation directory can also be extended with a
+# prefix from the directory search path in order to find source files.
+proc test_truncated_comp_dir {} {
+ global srcfile srcdir subdir binfile
+ global decimal
+
+ # When we run this test the current directory will be something
+ # like this:
+ # /some/path/to/gdb/build/testsuite/
+ # We are going to copy the source file out of the source tree into
+ # a location like this:
+ # /some/path/to/gdb/build/testsuite/output/gdb.base/soure-dir/
+ #
+ # We will then switch to this directory and compile the source
+ # file, however, we will ask GCC to remove this prefix from the
+ # compilation directory in the debug info:
+ # /some/path/to/gdb/build/testsuite/output/
+ #
+ # As a result the debug information will look like this:
+ #
+ # DW_AT_name : source-dir.c
+ # DW_AT_comp_dir : /gdb.base/source-dir
+ #
+ # Finally we switch back to this directory:
+ # /some/path/to/gdb/build/testsuite/
+ #
+ # and start GDB. There was a time when GDB would be unable to
+ # find the source file no matter what we added to the directory
+ # search path, this should now be fixed.
+
+ set original_dir [pwd]
+ set working_dir [standard_output_file ""]
+ cd ${working_dir}
+
+ set strip_dir [file normalize "${working_dir}/../.."]
+
+ set new_srcfile [standard_output_file ${srcfile}]
+ set fd [open "$new_srcfile" w]
+ puts $fd "int
+ main ()
+ {
+ return 0;
+ }"
+ close $fd
+
+ set options \
+ "debug additional_flags=-fdebug-prefix-map=${strip_dir}="
+ if { [gdb_compile "${srcfile}" "${binfile}" \
+ executable ${options}] != "" } {
+ untested "failed to compile"
+ return -1
+ }
+
+ cd ${original_dir}
+
+ clean_restart ${binfile}
+
+ gdb_test_no_output "set directories \$cdir:\$cwd"
+ gdb_test "show directories" \
+ "\r\nSource directories searched: \\\$cdir\[:;\]\\\$cwd"
+
+ if ![runto_main] then {
+ fail "can't run to main"
+ return 0
+ }
+
+ gdb_test "info source" \
+ [multi_line \
+ "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." ] \
+ "info source before setting directory search list"
+
+ gdb_test "dir $strip_dir" \
+ [search_dir_list [list \
+ "$strip_dir" \
+ "\\\$cdir" \
+ "\\\$cwd"]]
+ gdb_test "list" [multi_line \
+ "1\[ \t\]+int" \
+ "2\[ \t\]+main \\(\\)" \
+ "3\[ \t\]+\\{" \
+ "4\[ \t\]+return 0;" \
+ "5\[ \t\]+\\}" ]
+
+ gdb_test "info source" \
+ [multi_line \
+ "Current source file is ${srcfile}" \
+ "Compilation directory is \[^\n\r\]+" \
+ "Located in ${new_srcfile}" \
+ "Contains 5 lines." \
+ "Source language is c." \
+ "Producer is \[^\n\r\]+" \
+ "\[^\n\r\]+" \
+ "\[^\n\r\]+" ] \
+ "info source after setting directory search list"
+}
+
+test_changing_search_directory
+test_truncated_comp_dir
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Change boolean options to bool instead of int
@ 2019-09-18 0:59 gdb-buildbot
2019-09-18 2:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make extern declaration of dwarf_always_disassemble correct
@ 2019-09-18 6:12 gdb-buildbot
2019-09-18 11:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC64, support medium model access to common symbols
@ 2019-09-18 13:19 gdb-buildbot
2019-09-18 14:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use bfd_set_filename more
@ 2019-09-18 13:33 gdb-buildbot
2019-09-18 15:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Constify target name, reloc name, and carsym name
@ 2019-09-18 13:42 gdb-buildbot
2019-09-18 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-09-18 13:42 [binutils-gdb] Constify target name, reloc name, and carsym name gdb-buildbot
@ 2019-09-18 16:22 ` gdb-buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-18 16:22 UTC (permalink / raw)
To: gdb-testers
Buildername:
Debian-s390x-native-gdbserver-m64
Worker:
debian-jessie-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/21/builds/138
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/Debian-s390x-native-gdbserver-m64/1d/1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5/
*** Diff to previous build ***
==============================================
UNRESOLVED -> FAIL: gdb.base/info-types.exp: l=c: info types
UNRESOLVED -> FAIL: gdb.fortran/info-types.exp: info types
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=14: wait for stops
==============================================
*** 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/Debian-s390x-native-gdbserver-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/Debian-s390x-native-gdbserver-m64/1d/1d38e9d14cc793bca9124d5ed7dc2a6e3122f2e5//xfail.table.gz>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Constify bfd_octets_per_byte and related functions
@ 2019-09-18 13:54 gdb-buildbot
2019-09-18 16:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 17:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Re-generate many configure and Makefile.in files
@ 2019-09-18 14:17 gdb-buildbot
2019-09-18 19:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd_asymbol_* macros
@ 2019-09-18 14:30 gdb-buildbot
2019-09-18 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/testsuite: Avoid directory names in test names
@ 2019-09-18 17:17 gdb-buildbot
2019-09-18 20:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: remove local extern declaration of cli_styling
@ 2019-09-18 18:13 gdb-buildbot
2019-09-18 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: Fix native build on Linux/Alpha.
@ 2019-09-18 19:50 gdb-buildbot
2019-09-18 22:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Give a name to the TUI SingleKey keymap
@ 2019-09-18 21:35 gdb-buildbot
2019-09-18 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd
@ 2019-09-18 23:45 gdb-buildbot
2019-09-19 1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
2019-09-18 23:45 [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd gdb-buildbot
@ 2019-09-19 1:50 ` gdb-buildbot
0 siblings, 0 replies; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-19 1:50 UTC (permalink / raw)
To: gdb-testers
Buildername:
Debian-s390x-native-gdbserver-m64
Worker:
debian-jessie-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/21/builds/148
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/Debian-s390x-native-gdbserver-m64/8a/8a6251301c6ea6d804735fbad8cdb7cba707f784/
*** 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/call-sc.exp: value foo returned; return call-sc-tld
new FAIL: gdb.base/commands.exp: watchpoint_command_test: continue with watch
new FAIL: gdb.base/compare-sections.exp: after reload: compare-sections
new FAIL: gdb.base/compare-sections.exp: after reload: compare-sections -r
new FAIL: gdb.base/compare-sections.exp: after run to main: compare-sections
new FAIL: gdb.base/compare-sections.exp: after run to main: compare-sections -r
new FAIL: gdb.base/compare-sections.exp: compare-sections .text
new FAIL: gdb.base/compare-sections.exp: read-only: compare-sections -r
new FAIL: gdb.base/dfp-test.exp: correct _Decimal128 return value from called function.
new FAIL: gdb.base/display.exp: first disp
new FAIL: gdb.base/display.exp: next hit
new FAIL: gdb.base/display.exp: second disp
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 FAIL: gdb.base/gdb11531.exp: watchpoint variable triggers at continue
new FAIL: gdb.base/gdb11531.exp: watchpoint variable triggers at next
new FAIL: gdb.base/hbreak-unmapped.exp: hbreak *0
new FAIL: gdb.base/hbreak.exp: continue to break-at-exit after hbreak
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
new KFAIL: gdb.base/info-macros.exp: info macros info-macros.c:42
new UNRESOLVED: gdb.base/info-types.exp: l=c++: info types
new UNRESOLVED: gdb.base/info-types.exp: l=c: info types
new FAIL: gdb.base/interrupt-daemon.exp: bg: continue&
new FAIL: gdb.base/interrupt-daemon.exp: bg: interrupt
new FAIL: gdb.base/interrupt-daemon.exp: bg: interrupt cmd stops process
new FAIL: gdb.base/interrupt-daemon.exp: fg: ctrl-c stops process
new FAIL: gdb.base/list-missing-source.exp: info source
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 FAIL: gdb.base/pr11022.exp: breakpoint hit
new FAIL: gdb.base/pr11022.exp: breakpoint hit 2
new FAIL: gdb.base/pr11022.exp: watchpoint hit
new FAIL: gdb.base/pr11022.exp: watchpoint hit 2
new FAIL: gdb.base/pretty-print.exp: print s1
new FAIL: gdb.base/recurse.exp: continue to first instance watchpoint, first time
new FAIL: gdb.base/recurse.exp: continue to first instance watchpoint, second time
new FAIL: gdb.base/recurse.exp: continue to recurse
new FAIL: gdb.base/recurse.exp: continue to second instance watchpoint, first time
new FAIL: gdb.base/recurse.exp: continue to second instance watchpoint, second time
new FAIL: gdb.base/recurse.exp: first instance watchpoint deleted when leaving scope
new FAIL: gdb.base/recurse.exp: next over b = 0 in second instance
new FAIL: gdb.base/recurse.exp: second instance watchpoint deleted when leaving scope
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/solib-corrupted.exp: corrupted list
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: 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 KFAIL: gdb.base/utf8-identifiers.exp: tab complete "break fun"
new FAIL: gdb.base/value-double-free.exp: continue
new FAIL: gdb.base/vla-optimized-out.exp: o1: printed size of optimized out vla
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: continue until exit
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 0->1: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 0->1: print expression after
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 1->0: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 1->0: print expression before
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 0->5: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 0->5: print expression after
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: continue
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: print expression after
new FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: print expression before
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: continue until exit
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 0->4: continue
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 0->4: print expression after
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 1->0: continue
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 1->0: print expression before
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 10->3: continue
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 10->3: print expression after
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 10->3: print expression before
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 2->1: continue
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 2->1: print expression after
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 2->1: print expression before
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 3->2: continue
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 3->2: print expression after
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 3->2: print expression before
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 4->10: continue
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 4->10: print expression after
new FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 4->10: print expression before
new FAIL: gdb.base/watch-cond-infcall.exp: hw: continue
new FAIL: gdb.base/watch-cond.exp: condition of watchpoint 2 changes
new FAIL: gdb.base/watch-cond.exp: watchpoint on global2 variable triggers
new FAIL: gdb.base/watch-cond.exp: watchpoint stops with untestable local expression
new FAIL: gdb.base/watch-cond.exp: watchpoint with global expression, local condition evaluates in correct frame
new FAIL: gdb.base/watch-cond.exp: watchpoint with local expression, local condition evaluates in correct frame
new FAIL: gdb.base/watchpoint-solib.exp: continue to foo again
new FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit
new FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again
new FAIL: gdb.base/watchpoint-unaligned.exp: continue
new FAIL: gdb.base/watchpoint-unaligned.exp: size8twice write
new FAIL: gdb.base/watchpoint-unaligned.exp: wp
new FAIL: gdb.base/watchpoint-unaligned.exp: wpcount
new FAIL: gdb.base/watchpoint.exp: back at main from marker1
new FAIL: gdb.base/watchpoint.exp: continue after trigger static local watch
new FAIL: gdb.base/watchpoint.exp: continue to breakpoint at func1
new FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here, second time
new FAIL: gdb.base/watchpoint.exp: continue to breakpoint: func2 breakpoint here, third time
new FAIL: gdb.base/watchpoint.exp: continue to marker2
new FAIL: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_complex_watchpoint
new FAIL: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_simple_watchpoint
new FAIL: gdb.base/watchpoint.exp: continue with watch -location
new FAIL: gdb.base/watchpoint.exp: continue with watch foo2
new FAIL: gdb.base/watchpoint.exp: continue with watch foo4
new FAIL: gdb.base/watchpoint.exp: did not trigger wrong watchpoint
new FAIL: gdb.base/watchpoint.exp: global_ptr next
new FAIL: gdb.base/watchpoint.exp: global_ptr_ptr next
new FAIL: gdb.base/watchpoint.exp: local_x: cont
new FAIL: gdb.base/watchpoint.exp: local_x: next past local_x initialization
new FAIL: gdb.base/watchpoint.exp: local_x: self-delete local watch in recursive call
new FAIL: gdb.base/watchpoint.exp: local_x: set local watch in recursive call
new FAIL: gdb.base/watchpoint.exp: local_x: trigger local watch in recursive call
new FAIL: gdb.base/watchpoint.exp: next after watch x
new FAIL: gdb.base/watchpoint.exp: next over buffer set
new FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr buffer set
new FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr init
new FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr pointer advance
new FAIL: gdb.base/watchpoint.exp: next over ptr init
new FAIL: gdb.base/watchpoint.exp: next to `for' in watchpoint.exp
new FAIL: gdb.base/watchpoint.exp: recurser::local_x: continue to marker6
new FAIL: gdb.base/watchpoint.exp: recurser::local_x: continue to recurser
new FAIL: gdb.base/watchpoint.exp: recurser::local_x: next past local_x initialization
new FAIL: gdb.base/watchpoint.exp: recurser::local_x: self-delete local watch with explicit scope in recursive call
new FAIL: gdb.base/watchpoint.exp: recurser::local_x: set local watch in recursive call with explicit scope
new FAIL: gdb.base/watchpoint.exp: recurser::local_x: trigger local watch with explicit scope in recursive call
new FAIL: gdb.base/watchpoint.exp: self-delete local watch
new FAIL: gdb.base/watchpoint.exp: self-delete partially local watch
new FAIL: gdb.base/watchpoint.exp: step to ival2 assignment
new FAIL: gdb.base/watchpoint.exp: test complex watchpoint
new FAIL: gdb.base/watchpoint.exp: trigger local watch
new FAIL: gdb.base/watchpoint.exp: trigger static local watch
new FAIL: gdb.base/watchpoint.exp: trigger1 partially local watch
new FAIL: gdb.base/watchpoint.exp: trigger2 partially local watch
new FAIL: gdb.base/watchpoint.exp: until out of loop
new FAIL: gdb.base/watchpoint.exp: until to ival1 assignment
new FAIL: gdb.base/watchpoint.exp: until to ival3 assignment
new FAIL: gdb.base/watchpoint.exp: watchpoint disabled in table
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 1
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 2
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 3
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 4
new FAIL: gdb.base/watchpoint.exp: watchpoint hit count is 5
new FAIL: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, first time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, second time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, fifth time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, first time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, fourth time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, second time
new FAIL: gdb.base/watchpoint.exp: watchpoint hit, third time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 1
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 2
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 3
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 4
new FAIL: gdb.base/watchpoints.exp: watchpoint hit count is 5
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, fifth time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, first time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, fourth time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, second time
new FAIL: gdb.base/watchpoints.exp: watchpoint hit, third time
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit count is 2
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit count is 3
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
new FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
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 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
new 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.cp/watch-cp.exp: continue
new FAIL: gdb.dwarf2/dw2-opt-structptr.exp: mi: get children of var1
new FAIL: gdb.dwarf2/dw2-ranges.exp: info line main3
new KFAIL: gdb.fortran/function-calls.exp: p one_arg_value
new UNRESOLVED: gdb.fortran/info-types.exp: info types
new FAIL: gdb.linespec/explicit.exp: complete non-unique file name
new FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=exit: continue in inferior 1
new FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=exit: run to exit inferior 2
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-breakpoint.exp: test_bkpt_eval_funcs: Test watchpoint write
new FAIL: gdb.python/py-breakpoint.exp: test_bkpt_internal: Test watchpoint write
new FAIL: gdb.python/py-breakpoint.exp: test_watchpoints: Test watchpoint write
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option actual_objects: actual_objects=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option actual_objects: actual_objects=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option array_indexes: array_indexes=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option array_indexes: array_indexes=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option deref_refs: deref_refs=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option deref_refs: deref_refs=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_arrays: pretty_arrays=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_arrays: pretty_arrays=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_structs: pretty_structs=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option pretty_structs: pretty_structs=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option raw: raw=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option raw: raw=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option static_members: static_members=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option static_members: static_members=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option symbols: symbols=false
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option symbols: symbols=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union with option unions: unions=true
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union: no opts
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: a_struct_with_union: str
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: format='d': a_struct_with_union with option format='d'
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: format='x': a_struct_with_union with option format='x'
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_depth=-1: a_struct_with_union with option max_depth=-1
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_depth=2: a_struct_with_union with option max_depth=2
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=0: a_struct_with_union with option max_elements=0
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=1000: a_struct_with_union with option max_elements=1000
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=200: a_struct_with_union with option max_elements=200
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: max_elements=3: a_struct_with_union with option max_elements=3
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=0: a_struct_with_union with option repeat_threshold=0
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=100: a_struct_with_union with option repeat_threshold=100
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=10: a_struct_with_union with option repeat_threshold=10
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=1: a_struct_with_union with option repeat_threshold=1
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: repeat_threshold=3: a_struct_with_union with option repeat_threshold=3
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: 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_c: 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_c: set print structs on: a_struct_with_union: no opts
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: set print structs on: a_struct_with_union: str
new FAIL: gdb.python/py-format-string.exp: format_string: lang_c: set print union off: 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 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_depth=-1: a_struct_with_union with option max_depth=-1
new FAIL: gdb.python/py-format-string.exp: format_string: lang_cpp: max_depth=2: a_struct_with_union with option max_depth=2
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
new FAIL: gdb.python/py-value-cc.exp: u's second field via field
new FAIL: gdb.reverse/s390-mvcle.exp: check MVCLE record 1
new FAIL: gdb.reverse/s390-mvcle.exp: check MVCLE record 2
new FAIL: gdb.reverse/s390-mvcle.exp: reverse to marker1
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: second: continue for ctrl-c
new FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c
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.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/execl.exp: continue across exec
new FAIL: gdb.threads/execl.exp: continue until exit
new FAIL: gdb.threads/execl.exp: info threads after exec
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=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=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=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=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=8: wait for stops
new FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=9: wait for stops
new FAIL: gdb.threads/local-watch-wrong-thread.exp: local watchpoint automatically deleted
new FAIL: gdb.threads/local-watch-wrong-thread.exp: local watchpoint still triggers
new FAIL: gdb.threads/local-watch-wrong-thread.exp: local watchpoint triggers
new FAIL: gdb.threads/local-watch-wrong-thread.exp: the other thread stopped on breakpoint
new FAIL: gdb.threads/multiple-successive-infcall.exp: thread=3: created new thread
new FAIL: gdb.threads/multiple-successive-infcall.exp: thread=4: created new thread
new FAIL: gdb.threads/multiple-successive-infcall.exp: thread=5: created new thread
new KFAIL: gdb.threads/non-ldr-exit.exp: program exits normally
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: server exits
new FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: continue
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: continue to breakpoint: _exit
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: server exits
new FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint: 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/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: step
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: step
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: continue: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: step: step
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: continue: continue
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: continue: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: next: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: next: next
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: step: find addresses: continue to watchpoint
new FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: step: step
new FAIL: gdb.threads/thread-unwindonsignal.exp: continue until exit
new FAIL: gdb.threads/tls-core.exp: native: load core file
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: breakpoint
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: finish
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: hardware breakpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: multithreaded watchpoints work at A
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: multithreaded watchpoints work at B
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: singlethread watchpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint A after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint A after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint B after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: multithreaded: watchpoint B after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: breakpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: finish
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: hardware breakpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: child: singlethreaded: watchpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: breakpoint
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: finish
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: hardware breakpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: multithreaded watchpoints work at A
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: multithreaded watchpoints work at B
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: singlethread watchpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint A after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint A after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint B after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: multithreaded: watchpoint B after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: breakpoint after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: breakpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: finish
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: hardware breakpoints work
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoint after the first fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoint after the second fork
new FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoints work
new FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
new FAIL: gdb.threads/watchthreads.exp: first watchpoint on args[0] hit
new FAIL: gdb.threads/watchthreads.exp: first watchpoint on args[1] hit
new FAIL: gdb.threads/watchthreads.exp: threaded watch loop
new FAIL: gdb.threads/watchthreads.exp: watchpoint on args[0] hit in thread
new FAIL: gdb.threads/watchthreads.exp: watchpoint on args[1] hit in thread
new KFAIL: gdb.threads/watchthreads2.exp: gdb can drop watchpoints in multithreaded app
new FAIL: gdb.threads/watchthreads2.exp: x watch loop
new FAIL: gdb.threads/wp-replication.exp: no hardware watchpoints available
new FAIL: gdb.trace/actions.exp: tfile: tracepoint on gdb_asm_test
new FAIL: gdb.trace/actions.exp: tfile: tracepoint on gdb_c_test
new FAIL: gdb.trace/actions.exp: tfile: tracepoint on gdb_recursion_test 0
new FAIL: gdb.trace/change-loc.exp: 1 trace: continue to marker 2
new FAIL: gdb.trace/change-loc.exp: 1 trace: continue to marker 3
new FAIL: gdb.trace/change-loc.exp: 1 trace: tfind frame 0
new FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with two locations - installed
new FAIL: gdb.trace/change-loc.exp: 1 trace: tracepoint with two locations - pending
new FAIL: gdb.trace/change-loc.exp: 2 trace: continue to marker 2
new FAIL: gdb.trace/change-loc.exp: 2 trace: continue to marker 3
new FAIL: gdb.trace/change-loc.exp: 2 trace: tfind frame 2
new FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with two locations - installed
new FAIL: gdb.trace/change-loc.exp: 2 trace: tracepoint with two locations - pending
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local char
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local double
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local float
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local int
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local member char
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local member double
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local member float
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected local member int
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected locarray #0
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected locarray #1
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected locarray #2
new FAIL: gdb.trace/collection.exp: collect register locals collectively: collected locarray #3
new FAIL: gdb.trace/collection.exp: collect register locals collectively: start trace experiment
new FAIL: gdb.trace/collection.exp: collect register locals collectively: tfind test frame
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local char
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local double
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local float
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local int
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local member char
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local member double
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local member float
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected local member int
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected locarray #0
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected locarray #1
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected locarray #2
new FAIL: gdb.trace/collection.exp: collect register locals individually: collected locarray #3
new FAIL: gdb.trace/collection.exp: collect register locals individually: define actions
new FAIL: gdb.trace/pending.exp: ftrace installed_in_trace: continue to marker 2
new FAIL: gdb.trace/pending.exp: ftrace installed_in_trace: tfind test frame 0
new FAIL: gdb.trace/pending.exp: trace installed_in_trace: continue to marker 2
new FAIL: gdb.trace/pending.exp: trace installed_in_trace: tfind test frame 0
new FAIL: gdb.trace/unavailable.exp: collect globals: global reference shows address but not value
new FAIL: gdb.trace/unavailable.exp: collect globals: print object off: print derived_partial
new FAIL: gdb.trace/unavailable.exp: collect globals: print object off: print derived_whole
new FAIL: gdb.trace/unavailable.exp: collect globals: print object on: print derived_partial
new FAIL: gdb.trace/unavailable.exp: collect globals: print object on: print derived_whole
new FAIL: gdb.trace/unavailable.exp: collect globals: referenced integer was not collected
new FAIL: gdb.trace/unavailable.exp: collect globals: tfile: global reference shows address but not value
new FAIL: gdb.trace/unavailable.exp: collect globals: tfile: print object off: print derived_partial
new FAIL: gdb.trace/unavailable.exp: collect globals: tfile: print object off: print derived_whole
new FAIL: gdb.trace/unavailable.exp: collect globals: tfile: print object on: print derived_partial
new FAIL: gdb.trace/unavailable.exp: collect globals: tfile: print object on: print derived_whole
new FAIL: gdb.trace/unavailable.exp: collect globals: tfile: referenced integer was not collected
new FAIL: gdb.trace/unavailable.exp: unavailable locals: auto locals: info locals
new FAIL: gdb.trace/unavailable.exp: unavailable locals: auto locals: tfile: info locals
new FAIL: gdb.trace/unavailable.exp: unavailable locals: register locals: info locals
new FAIL: gdb.trace/unavailable.exp: unavailable locals: register locals: tfile: info locals
new FAIL: gdb.trace/unavailable.exp: unavailable locals: static locals: info locals
new FAIL: gdb.trace/unavailable.exp: unavailable locals: static locals: tfile: info locals
PASS -> UNRESOLVED: gdb.tui/empty.exp: asm-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: asm: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: split-regs: 90x40: box 1
PASS -> UNRESOLVED: gdb.tui/empty.exp: src-regs: 80x24: box 1
PASS -> FAIL: gdb.tui/empty.exp: src-regs: 90x40: box 1
PASS -> FAIL: gdb.tui/empty.exp: src: 90x40: box 1
new 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/Debian-s390x-native-gdbserver-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/Debian-s390x-native-gdbserver-m64/8a/8a6251301c6ea6d804735fbad8cdb7cba707f784//xfail.table.gz>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] bfd_section_* macros
@ 2019-09-19 1:02 gdb-buildbot
2019-09-19 3:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb] Catch exception when constructing the highlighter
@ 2019-09-19 18:20 gdb-buildbot
2019-09-19 21:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/testsuite] Don't use FOOBAR pattern in gdb_test
@ 2019-09-19 18:42 gdb-buildbot
2019-09-20 0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Declare dwarf_always_disassemble in dwarf2read.h
@ 2019-09-20 0:39 gdb-buildbot
2019-09-20 1:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move arm_apcs_32 extern declaration to header
@ 2019-09-20 0:53 gdb-buildbot
2019-09-20 3:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move declaration of overload_resolution to value.h
@ 2019-09-20 1:12 gdb-buildbot
2019-09-20 4:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC64, error on unsupported dynamic relocation
@ 2019-09-20 7:59 gdb-buildbot
2019-09-20 8:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 10:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions
@ 2019-09-20 9:09 gdb-buildbot
2019-09-20 10:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions, asymbol
@ 2019-09-20 9:27 gdb-buildbot
2019-09-20 13:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd macro conversion to inline functions, section
@ 2019-09-20 9:43 gdb-buildbot
2019-09-20 14:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Fix crash in Ada "catch exception"
@ 2019-09-20 19:53 gdb-buildbot
2019-09-20 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove tui_clear_source_windows_detail
@ 2019-09-20 20:49 gdb-buildbot
2019-09-20 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change tui_source_element::line to be a unique_xmalloc_ptr
@ 2019-09-20 21:04 gdb-buildbot
2019-09-20 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-20 21:04 UTC (permalink / raw)
To: gdb-testers
*** TEST RESULTS FOR COMMIT f14bec587fd0b695bbb8dcfe92169b4dae76245d ***
commit f14bec587fd0b695bbb8dcfe92169b4dae76245d
Author: Tom Tromey <tom@tromey.com>
AuthorDate: Tue Jul 23 15:34:40 2019 -0600
Commit: Tom Tromey <tom@tromey.com>
CommitDate: Fri Sep 20 13:49:04 2019 -0600
Change tui_source_element::line to be a unique_xmalloc_ptr
This changes tui_source_element::line to be a unique_xmalloc_ptr,
removing some manual memory management.
gdb/ChangeLog
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.h (~tui_source_element): Remove.
(tui_source_element): Update.
(struct tui_source_element) <line>: Now a unique_xmalloc_ptr.
* tui/tui-winsource.c (tui_show_source_line): Update.
* tui/tui-source.c (tui_source_window::set_contents): Update.
* tui/tui-disasm.c (tui_disasm_window::set_contents): Update.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bedc073d9c..3d322877df 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2019-09-20 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-winsource.h (~tui_source_element): Remove.
+ (tui_source_element): Update.
+ (struct tui_source_element) <line>: Now a unique_xmalloc_ptr.
+ * tui/tui-winsource.c (tui_show_source_line): Update.
+ * tui/tui-source.c (tui_source_window::set_contents): Update.
+ * tui/tui-disasm.c (tui_disasm_window::set_contents): Update.
+
2019-09-20 Tom Tromey <tom@tromey.com>
* tui/tui-data.h (tui_clear_source_windows_detail): Don't
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 1d019ca60c..2a331327e7 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -231,11 +231,10 @@ tui_disasm_window::set_contents (struct gdbarch *arch,
strcpy (line + insn_pos, asm_lines[i].insn);
/* Now copy the line taking the offset into account. */
- xfree (src->line);
if (strlen (line) > offset)
- src->line = xstrndup (&line[offset], line_width);
+ src->line.reset (xstrndup (&line[offset], line_width));
else
- src->line = xstrdup ("");
+ src->line.reset (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 906006a422..c379173018 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -184,9 +184,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
symtab_to_fullname (s)) == 0
&& cur_line_no == locator->line_no);
- xfree (content[cur_line].line);
- content[cur_line].line
- = xstrdup (text.c_str ());
+ content[cur_line].line.reset (xstrdup (text.c_str ()));
cur_line++;
cur_line_no++;
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 4520a1ac3f..d5281193c0 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -222,8 +222,7 @@ tui_show_source_line (struct tui_source_window_base *win_info, int lineno)
tui_set_reverse_mode (win_info->handle, true);
wmove (win_info->handle, lineno, TUI_EXECINFO_SIZE);
- tui_puts (line->line,
- win_info->handle);
+ tui_puts (line->line.get (), win_info->handle);
if (line->is_exec_point)
tui_set_reverse_mode (win_info->handle, false);
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 445cc7c735..64f0739e53 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -54,23 +54,17 @@ struct tui_source_element
line_or_addr.u.line_no = 0;
}
- ~tui_source_element ()
- {
- xfree (line);
- }
-
DISABLE_COPY_AND_ASSIGN (tui_source_element);
tui_source_element (tui_source_element &&other)
- : line (other.line),
+ : line (std::move (other.line)),
line_or_addr (other.line_or_addr),
is_exec_point (other.is_exec_point),
break_mode (other.break_mode)
{
- other.line = nullptr;
}
- char *line = nullptr;
+ gdb::unique_xmalloc_ptr<char> line;
struct tui_line_or_address line_or_addr;
bool is_exec_point = false;
tui_bp_flags break_mode = 0;
^ permalink raw reply [flat|nested] 4390+ messages in thread
* [binutils-gdb] Move "fullname" to tui_source_window
@ 2019-09-20 21:15 gdb-buildbot
2019-09-20 23:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change tui_make_status_line to return std::string
@ 2019-09-20 21:27 gdb-buildbot
2019-09-21 0:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change tui_make_status_line to be a method
@ 2019-09-20 21:42 gdb-buildbot
2019-09-21 1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove some explicit re-rendering from the TUI
@ 2019-09-20 21:56 gdb-buildbot
2019-09-21 2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Simplify tui_source_window_base::show_source_content
@ 2019-09-20 22:05 gdb-buildbot
2019-09-21 3:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Simplify TUI disassembly
@ 2019-09-20 22:25 gdb-buildbot
2019-09-21 4:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use "bool" in tui_data_window::show_register_group
@ 2019-09-20 22:33 gdb-buildbot
2019-09-21 5:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change "win_resized" to bool
@ 2019-09-20 22:45 gdb-buildbot
2019-09-21 6:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Set TUI locator height to 1
@ 2019-09-20 22:59 gdb-buildbot
2019-09-21 7:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Don't call refresh in tui_resize_all
@ 2019-09-20 23:08 gdb-buildbot
2019-09-21 8:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove a call to tui_locator_win_info_ptr
@ 2019-09-20 23:22 gdb-buildbot
2019-09-21 9:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change members of tui_locator_window to std::string
@ 2019-09-20 23:35 gdb-buildbot
2019-09-21 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Rename private data members of tui_data_window
@ 2019-09-20 23:46 gdb-buildbot
2019-09-21 11:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Rename a private data member in tui_source_window
@ 2019-09-20 23:58 gdb-buildbot
2019-09-21 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove strcat_to_buf
@ 2019-09-21 0:13 gdb-buildbot
2019-09-21 13:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove separator comments from TUI
@ 2019-09-21 0:26 gdb-buildbot
2019-09-21 14:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Use make_unique_xstrdup in TUI
@ 2019-09-21 0:43 gdb-buildbot
2019-09-21 15:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Change TUI window commands to be case-sensitive
@ 2019-09-21 0:53 gdb-buildbot
2019-09-21 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove Cell Broadband Engine debugging support
@ 2019-09-21 1:04 gdb-buildbot
2019-09-21 18:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 23:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Move declarations of debug_threads and using_threads to header
@ 2019-09-21 2:32 gdb-buildbot
2019-09-22 0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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-22 1:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: change "nonzero" to "true" in comments
@ 2019-09-22 0:17 gdb-buildbot
2019-09-22 2:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: make watchpoint::val_valid a bool
@ 2019-09-22 0:41 gdb-buildbot
2019-09-22 3:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb: fix formatting in solib-svr4.c
@ 2019-09-22 2:47 gdb-buildbot
2019-09-22 4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] csky bfd.h tidy
@ 2019-09-23 1:25 gdb-buildbot
2019-09-23 2:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] mips bfd.h tidy
@ 2019-09-23 1:37 gdb-buildbot
2019-09-23 3:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] v850 bfd.h tidy
@ 2019-09-23 1:59 gdb-buildbot
2019-09-23 4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] ia64 bfd.h tidy
@ 2019-09-23 2:01 gdb-buildbot
2019-09-23 5:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] h8300 bfd.h tidy
@ 2019-09-23 2:13 gdb-buildbot
2019-09-23 6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] tic6x bfd.h tidy
@ 2019-09-23 2:50 gdb-buildbot
2019-09-23 9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] arm bfd.h tidy
@ 2019-09-23 3:03 gdb-buildbot
2019-09-23 9:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] coff bfd.h tidy
@ 2019-09-23 3:14 gdb-buildbot
2019-09-23 10:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] xcoff bfd.h tidy
@ 2019-09-23 3:27 gdb-buildbot
2019-09-23 12:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] obsoleted bfd.h tidy
@ 2019-09-23 3:37 gdb-buildbot
2019-09-23 13:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] cr16 bfd.h tidy
@ 2019-09-23 3:51 gdb-buildbot
2019-09-23 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfin bfd.h tidy
@ 2019-09-23 4:12 gdb-buildbot
2019-09-23 14:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] m68k bfd.h tidy
@ 2019-09-23 4:13 gdb-buildbot
2019-09-23 16:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] elf bfd.h tidy
@ 2019-09-23 4:36 gdb-buildbot
2019-09-23 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] ecoff bfd.h tidy
@ 2019-09-23 4:36 gdb-buildbot
2019-09-23 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] linker bfd.h tidy
@ 2019-09-23 4:45 gdb-buildbot
2019-09-23 18:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] bfd Makefile update
@ 2019-09-23 5:57 gdb-buildbot
2019-09-23 19:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PowerPC64 dynamic symbol tweaks
@ 2019-09-23 15:16 gdb-buildbot
2019-09-23 20:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Make ada_decode not use a static buffer
@ 2019-09-23 19:29 gdb-buildbot
2019-09-23 21:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] sim: Add PRU simulator port
@ 2019-09-23 21:43 gdb-buildbot
2019-09-23 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] gdb/readline: fix use of an undefined variable
@ 2019-09-23 22:26 gdb-buildbot
2019-09-24 1:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] [gdb/tdep] Handle mxcsr kernel bug on Intel Skylake CPUs
@ 2019-09-24 22:13 gdb-buildbot
2019-09-25 0:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove make_hex_string
@ 2019-09-25 16:37 gdb-buildbot
2019-09-25 19:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] PR24262, plugin search dir doesn't respect --libdir
@ 2019-09-26 11:09 gdb-buildbot
2019-09-26 13:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove initialize_utils
@ 2019-09-26 14:43 gdb-buildbot
2019-09-26 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Do not expose stub types to Python
@ 2019-09-26 15:01 gdb-buildbot
2019-09-26 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
* [binutils-gdb] Remove gdb_usleep.c
@ 2019-09-26 15:42 gdb-buildbot
2019-09-26 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ 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 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
0 siblings, 1 reply; 4390+ 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] 4390+ messages in thread
[parent not found: <@gdb-build>]
* Failures on Debian-s390x-native-gdbserver-m64, branch master
[not found] <@gdb-build>
@ 2018-12-07 12:54 ` sergiodj+buildbot
2019-09-27 10:02 ` gdb-buildbot
2019-09-27 10:24 ` gdb-buildbot
2 siblings, 0 replies; 4390+ messages in thread
From: sergiodj+buildbot @ 2018-12-07 12:54 UTC (permalink / raw)
To: gdb-testers
Buildslave:
debian-jessie-s390x-1
Full Build URL:
<http://gdb-build.sergiodj.net/builders/Debian-s390x-native-gdbserver-m64/builds/7053>
Commit(s) tested:
af03af8f55f2536b6e20928e6b1fa0324a5f3d6e
Author(s) (in the same order as the commits):
Nick Clifton <nickc@redhat.com>
Subject:
Synchronize libiberty with gcc and add --no-recruse-limit option to tools that support name demangling.
Testsuite log (gdb.sum and gdb.log) URL(s):
<http://gdb-build.sergiodj.net/results/Debian-s390x-native-gdbserver-m64/af/af03af8f55f2536b6e20928e6b1fa0324a5f3d6e/>
*** Failed to update master GDB git repository. The build can continue. ***
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
[not found] <@gdb-build>
2018-12-07 12:54 ` sergiodj+buildbot
@ 2019-09-27 10:02 ` gdb-buildbot
2019-09-27 10:24 ` gdb-buildbot
2 siblings, 0 replies; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-27 10:02 UTC (permalink / raw)
To: gdb-testers
Buildername:
Debian-s390x-native-gdbserver-m64
Worker:
debian-jessie-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/21/builds/231
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/Debian-s390x-native-gdbserver-m64/50/50fa3001ce25e221ca2e54564b5589d29c4bed19/
*** Diff to previous build ***
==============================================
No regressions found!
==============================================
*** 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/Debian-s390x-native-gdbserver-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/Debian-s390x-native-gdbserver-m64/50/50fa3001ce25e221ca2e54564b5589d29c4bed19//xfail.table.gz>
^ permalink raw reply [flat|nested] 4390+ messages in thread
* Failures on Debian-s390x-native-gdbserver-m64, branch master
[not found] <@gdb-build>
2018-12-07 12:54 ` sergiodj+buildbot
2019-09-27 10:02 ` gdb-buildbot
@ 2019-09-27 10:24 ` gdb-buildbot
2 siblings, 0 replies; 4390+ messages in thread
From: gdb-buildbot @ 2019-09-27 10:24 UTC (permalink / raw)
To: gdb-testers
Buildername:
Debian-s390x-native-gdbserver-m64
Worker:
debian-jessie-s390x-1
Full Build URL:
https://gdb-buildbot.osci.io/#builders/21/builds/232
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/Debian-s390x-native-gdbserver-m64/68/68f7d34dd506d1ccdaab9e772a533f8e76a5fe19/
*** Diff to previous build ***
==============================================
No regressions found!
==============================================
*** 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/Debian-s390x-native-gdbserver-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/Debian-s390x-native-gdbserver-m64/68/68f7d34dd506d1ccdaab9e772a533f8e76a5fe19//xfail.table.gz>
^ permalink raw reply [flat|nested] 4390+ messages in thread
end of thread, other threads:[~2019-09-27 9:30 UTC | newest]
Thread overview: 4390+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-20 2:06 [binutils-gdb] Correct assembler mnemonic for RISC-V aqrl AMOs sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-m32, branch master sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-cc-with-index, " sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-native-gdbserver-m32, " sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " sergiodj+buildbot
2016-12-20 2:05 ` Failures on Fedora-x86_64-m64, " sergiodj+buildbot
2016-12-20 2:06 ` Failures on Fedora-s390x-m64, " sergiodj+buildbot
2016-12-20 2:12 ` Failures on Fedora-x86_64-native-gdbserver-m64, " sergiodj+buildbot
2016-12-20 2:12 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-12-20 2:14 ` Failures on Fedora-i686, " sergiodj+buildbot
2016-12-20 5:02 ` Failures on Fedora-x86_64-cc-with-index, " sergiodj+buildbot
2016-12-20 13:14 ` Failures on Ubuntu-AArch64-native-gdbserver-m64, " sergiodj+buildbot
2016-12-20 13:15 ` Failures on Ubuntu-AArch64-m64, " sergiodj+buildbot
2016-12-20 19:37 ` Failures on Debian-i686-native-extended-gdbserver, " sergiodj+buildbot
2016-12-20 20:07 ` Failures on Debian-i686, " sergiodj+buildbot
2016-12-22 14:31 ` Failures on Fedora-ppc64be-cc-with-index, " sergiodj+buildbot
2016-12-23 19:19 ` Failures on Fedora-ppc64le-native-gdbserver-m64, " sergiodj+buildbot
2016-12-23 21:24 ` Failures on Fedora-ppc64le-m64, " sergiodj+buildbot
2016-12-23 23:30 ` Failures on Fedora-ppc64le-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-12-24 20:18 ` Failures on Debian-s390x-native-gdbserver-m64, " sergiodj+buildbot
2018-11-22 16:58 [binutils-gdb] Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc sergiodj+buildbot
2018-11-22 20:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-22 18:39 [binutils-gdb] Fix follow_exec latent problem sergiodj+buildbot
2018-11-22 19:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-23 14:22 [binutils-gdb] Remove declarations of is_running/is_stopped/is_exited sergiodj+buildbot
2018-11-23 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-23 14:34 [binutils-gdb] gdbserver: AArch64: Remove cannot_fetch/store_register sergiodj+buildbot
2018-11-23 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-24 12:23 [binutils-gdb] Re-fix leak in source.c (open_source_file) sergiodj+buildbot
2018-11-24 13:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-25 23:04 [binutils-gdb] Remove obsolete comments from field_fmt sergiodj+buildbot
2018-11-26 0:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-25 23:41 [binutils-gdb] Implement timestamp'ed output on "make check" sergiodj+buildbot
2018-11-26 1:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-26 14:27 [binutils-gdb] Fix Solaris build sergiodj+buildbot
2018-11-26 14:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-26 22:26 [binutils-gdb] Fix spurious semicolon in sparc-linux-nat.c sergiodj+buildbot
2018-11-26 23:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 13:47 [binutils-gdb] AArch64: Fix regression in Cortex A53 erratum when PIE. (PR ld/23904) sergiodj+buildbot
2018-11-27 15:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 15:46 [binutils-gdb] Initialize *uncompressed_align_pow_p to 0 sergiodj+buildbot
2018-11-27 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 17:21 [binutils-gdb] MIPS/LD: Continue processing with refused relocations in PIC code sergiodj+buildbot
2018-11-27 18:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 19:07 [binutils-gdb] [ARM] Update knowledge of bfd architectures sergiodj+buildbot
2018-11-27 21:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-27 20:10 [binutils-gdb] RISC-V: Add .insn CA support sergiodj+buildbot
2018-11-27 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-29 18:14 [binutils-gdb] Fix use-after-free in gdbserver sergiodj+buildbot
2018-11-29 19:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-29 21:41 [binutils-gdb] RISC-V: Add missing c.unimp instruction sergiodj+buildbot
2018-11-29 22:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-29 22:18 [binutils-gdb] Implement the "gdb_signal_to/from_target" gdbarch methods for FreeBSD sergiodj+buildbot
2018-11-30 0:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 12:13 [binutils-gdb] Remove an abort in the bfd library and add a check for an integer overflow when mapping sections to segments sergiodj+buildbot
2018-11-30 13:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 12:21 [binutils-gdb] Fix a memory exhaustion bug when attempting to allocate room for an impossible number of program headers sergiodj+buildbot
2018-11-30 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 16:37 [binutils-gdb] Move test_target_ops to a separate file sergiodj+buildbot
2018-11-30 17:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 17:25 [binutils-gdb] Convert default_child_has_foo functions to process_stratum_target methods sergiodj+buildbot
2018-11-30 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 18:06 [binutils-gdb] target_ops::to_stratum -> target_ops::stratum() virtual method sergiodj+buildbot
2018-11-30 22:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 18:26 [binutils-gdb] gdb/riscv: Make some target description functions constant sergiodj+buildbot
2018-12-01 1:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 18:29 [binutils-gdb] gdb/riscv: Add equality operators to riscv_gdb_features sergiodj+buildbot
2018-12-01 2:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 19:00 [binutils-gdb] gdb/riscv: Create each unique target description only once sergiodj+buildbot
2018-12-01 3:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 22:02 [binutils-gdb] Update the conditionals in fbsd-nat.h so they are always honored sergiodj+buildbot
2018-12-01 6:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 22:26 [binutils-gdb] Fix leak in linespec parser sergiodj+buildbot
2018-12-01 7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-11-30 23:52 [binutils-gdb] Use kinfo_getfile to implement fdwalk on FreeBSD sergiodj+buildbot
2018-12-01 8:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-01 17:05 [binutils-gdb] x86: Delay setting the iplt section alignment sergiodj+buildbot
2018-12-03 18:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-03 23:16 [binutils-gdb] RISC-V: Accept version, supervisor ext and more than one NSE for -march sergiodj+buildbot
2018-12-03 23:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-05 19:40 [binutils-gdb] [aarch64] Add support for pointer authentication B key sergiodj+buildbot
2018-12-05 22:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-06 10:52 [binutils-gdb] opcodes/riscv: Hide '.L0 ' fake symbols sergiodj+buildbot
2018-12-06 11:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-06 12:57 [binutils-gdb] sim/opcodes: Allow use of out of tree cgen source directory sergiodj+buildbot
2018-12-06 13:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-06 13:02 [binutils-gdb] sim/cris: Fix references to cgen cpu directory sergiodj+buildbot
2018-12-06 15:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 14:46 [binutils-gdb] PR23952, memory leak in _bfd_generic_read_minisymbols sergiodj+buildbot
2018-12-07 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 16:37 [binutils-gdb] Fix a (one shot small) leak in language.c sergiodj+buildbot
2018-12-07 17:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 16:59 [binutils-gdb] elf: Report property change when merging properties sergiodj+buildbot
2018-12-07 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 20:48 [binutils-gdb] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd sergiodj+buildbot
2018-12-07 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-07 22:49 [binutils-gdb] gdb/or1k: Add linux debugging support sergiodj+buildbot
2018-12-08 0:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-08 0:24 [binutils-gdb] gdb/emacs/dir-locals: Update settings for c++-mode sergiodj+buildbot
2018-12-08 1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-08 16:16 [binutils-gdb] Merge forward-search/reverse-search, use gdb::def_vector, remove limit sergiodj+buildbot
2018-12-08 16:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-08 17:30 [binutils-gdb] Fix leak by using td_ta_delete() to deregister target process and deallocate internal process handle sergiodj+buildbot
2018-12-08 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-09 16:26 [binutils-gdb] Fix tid-reuse sometimes blocks for a very long (infinite?) time sergiodj+buildbot
2018-12-09 16:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-10 11:31 [binutils-gdb] gdb/riscv: Remove whitespace before #include line sergiodj+buildbot
2018-12-10 12:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 12:18 [binutils-gdb] gdb/riscv: Update test to handle targets without an fpu sergiodj+buildbot
2018-12-11 13:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 12:53 [binutils-gdb] Fix a failure in the libiberty testsuite by increasing the recursion limit to 2048 sergiodj+buildbot
2018-12-11 14:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 22:25 [binutils-gdb] PATCH/OBVIOUS Remove various trailing spaces in linux-osdata.c sergiodj+buildbot
2018-12-11 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-11 23:16 [binutils-gdb] bfd: xtensa: ignore overflow in hight part of const16 relocation sergiodj+buildbot
2018-12-12 2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 15:16 [binutils-gdb] gdb/riscv: Handle passing variadic floating point arguments sergiodj+buildbot
2018-12-12 16:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 18:45 [binutils-gdb] gdb: Update test pattern to deal with native-extended-gdbserver sergiodj+buildbot
2018-12-12 20:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 18:57 [binutils-gdb] gdb/infcall: Make infcall_suspend_state into a class sergiodj+buildbot
2018-12-12 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 21:31 [binutils-gdb] OBVIOUS: Forward declare linux_xfer_osdata_info_os_types on one line to fix ARI warning sergiodj+buildbot
2018-12-12 22:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-12 22:57 [binutils-gdb] gdb: Update NEWS for OpenRISC Linux support sergiodj+buildbot
2018-12-12 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 19:51 [binutils-gdb] RISC-V: Correct printing of MSTATUS and MISA sergiodj+buildbot
2018-12-13 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 20:28 [binutils-gdb] Change get_syscalls_by_group to append to an existing vector of integers sergiodj+buildbot
2018-12-13 22:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 20:49 [binutils-gdb] Add an optional "alias" attribute to syscall entries sergiodj+buildbot
2018-12-13 23:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-13 23:40 [binutils-gdb] Update the FreeBSD system call table to match FreeBSD 12.0 sergiodj+buildbot
2018-12-14 0:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-15 2:55 [binutils-gdb] Minor gdb/Makefile.in cleanups sergiodj+buildbot
2018-12-15 3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master 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 22:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-17 3:31 [binutils-gdb] PR23994, libbfd integer overflow sergiodj+buildbot
2018-12-17 3:59 ` Failures on Debian-s390x-native-gdbserver-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 11:02 ` Failures on Debian-s390x-native-gdbserver-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 12:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-17 23:32 [binutils-gdb] PR23980, powerpc64 ld segfault sergiodj+buildbot
2018-12-18 0:13 ` Failures on Debian-s390x-native-gdbserver-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 3:02 ` Failures on Debian-s390x-native-gdbserver-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 18:53 ` Failures on Debian-s390x-native-gdbserver-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 22:56 ` Failures on Debian-s390x-native-gdbserver-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-21 0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-21 17:28 [binutils-gdb] Fix compile error with clang 3.8 sergiodj+buildbot
2018-12-21 18:17 ` Failures on Debian-s390x-native-gdbserver-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 20:04 ` Failures on Debian-s390x-native-gdbserver-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 21:15 ` Failures on Debian-s390x-native-gdbserver-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-22 0:29 ` Failures on Debian-s390x-native-gdbserver-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 11:41 ` Failures on Debian-s390x-native-gdbserver-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 13:17 ` Failures on Debian-s390x-native-gdbserver-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 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-23 18:40 [binutils-gdb] i386: Remove the unused bfd pointer argument sergiodj+buildbot
2018-12-23 19:51 ` Failures on Debian-s390x-native-gdbserver-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 14:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-24 17:54 [binutils-gdb] Simplify dwarf2_find_containing_comp_unit sergiodj+buildbot
2018-12-24 18:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-24 19:34 [binutils-gdb] gdb: Extend the comments in c-exp.y sergiodj+buildbot
2018-12-24 19:55 ` Failures on Debian-s390x-native-gdbserver-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:55 ` Failures on Debian-s390x-native-gdbserver-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 11:44 ` Failures on Debian-s390x-native-gdbserver-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 14:29 ` Failures on Debian-s390x-native-gdbserver-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 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 12:28 [binutils-gdb] Improve gdb.ada/rename_subscript_param.exp by using more unique names sergiodj+buildbot
2018-12-27 12:58 ` Failures on Debian-s390x-native-gdbserver-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 21:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 20:58 [binutils-gdb] Remove gdbtypes special case from init.c rule sergiodj+buildbot
2018-12-28 0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 21:10 [binutils-gdb] Make init.c depend on source files sergiodj+buildbot
2018-12-28 1:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 21:27 [binutils-gdb] Build gdb "nat" files in subdirectory sergiodj+buildbot
2018-12-28 2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 21:53 [binutils-gdb] Consolidate some Python exception-printing functions sergiodj+buildbot
2018-12-28 5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-27 22:36 [binutils-gdb] Translate PyExc_KeyboardInterrupt to gdb "quit" sergiodj+buildbot
2018-12-28 6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 7:24 [binutils-gdb] PR24028, PPC_INT_FMT sergiodj+buildbot
2018-12-28 8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 10:24 [binutils-gdb] PR24015, glibc-2.28 on little-endian mips32 broken sergiodj+buildbot
2018-12-28 11:14 ` Failures on Debian-s390x-native-gdbserver-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 19:13 ` Failures on Debian-s390x-native-gdbserver-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 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:14 [binutils-gdb] Change gdb test suite's TERM setting sergiodj+buildbot
2018-12-29 2:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:24 [binutils-gdb] Add output styles to gdb sergiodj+buildbot
2018-12-29 4:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:26 [binutils-gdb] Reset terminal styles sergiodj+buildbot
2018-12-29 5:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 22:37 [binutils-gdb] Style variable names sergiodj+buildbot
2018-12-29 6:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 23:02 [binutils-gdb] Style print_address_symbolic sergiodj+buildbot
2018-12-29 9:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-28 23:25 [binutils-gdb] Style the "Reading symbols" message sergiodj+buildbot
2018-12-29 12:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-29 0:31 [binutils-gdb] Introduce ui_file_style sergiodj+buildbot
2018-12-29 1:38 ` Failures on Debian-s390x-native-gdbserver-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 18:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-29 14:34 [binutils-gdb] Make ANSI terminal escape sequences work in TUI sergiodj+buildbot
2018-12-29 14:49 ` Failures on Debian-s390x-native-gdbserver-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 16:07 ` Failures on Debian-s390x-native-gdbserver-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 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2018-12-31 7:25 [binutils-gdb] [PowerPC64] Nop out ld 2, 24(1) after old-style __tls_get_addr sergiodj+buildbot
2018-12-31 8:14 ` Failures on Debian-s390x-native-gdbserver-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 8:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01 6:54 [binutils-gdb] rotate gdb/ChangeLog sergiodj+buildbot
2019-01-01 7:23 ` Failures on Debian-s390x-native-gdbserver-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 10:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01 12:27 [binutils-gdb] Update year range in copyright notice of binutils files sergiodj+buildbot
2019-01-01 12:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-01 19:54 [binutils-gdb] Fix leak in print_one_catch_syscall sergiodj+buildbot
2019-01-01 20:30 ` Failures on Debian-s390x-native-gdbserver-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 23:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 6:29 [binutils-gdb] Fix year range in unittests/.../char/empty.cc copyright header sergiodj+buildbot
2019-01-02 7:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 16:47 [binutils-gdb] Style improvements in gdb/python sergiodj+buildbot
2019-01-02 17:39 ` Failures on Debian-s390x-native-gdbserver-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 21:00 ` Failures on Debian-s390x-native-gdbserver-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 22:19 ` Failures on Debian-s390x-native-gdbserver-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 23:38 ` Failures on Debian-s390x-native-gdbserver-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-03 1:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-02 23:59 [binutils-gdb] Remove cleanups from linespec.c sergiodj+buildbot
2019-01-03 2:27 ` Failures on Debian-s390x-native-gdbserver-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 15:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-03 18:01 [binutils-gdb] S12Z: opcodes: Separate the decoding of operations from their display sergiodj+buildbot
2019-01-03 18:36 ` Failures on Debian-s390x-native-gdbserver-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 22:31 ` Failures on Debian-s390x-native-gdbserver-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 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-03 23:17 [binutils-gdb] Simplify gdbpy_stop_recording sergiodj+buildbot
2019-01-04 7:53 ` Failures on Debian-s390x-native-gdbserver-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 13:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-04 3:18 [binutils-gdb] gdb: Remove cleanup from linux_nat_target::follow_fork sergiodj+buildbot
2019-01-04 3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-04 10:32 [binutils-gdb] Avoid questionable casts in py-symtab.c sergiodj+buildbot
2019-01-04 10:32 ` Failures on Debian-s390x-native-gdbserver-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 15:01 ` Failures on Debian-s390x-native-gdbserver-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 22:49 ` Failures on Debian-s390x-native-gdbserver-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 9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-05 14:07 [binutils-gdb] RX: include - Add RXv3 support sergiodj+buildbot
2019-01-05 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-06 17:00 [binutils-gdb] Use std::vector in type stacks sergiodj+buildbot
2019-01-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-06 20:15 [binutils-gdb] Remove string-related cleanup from c-exp.y sergiodj+buildbot
2019-01-06 20:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-06 21:39 [binutils-gdb] Remove remaining cleanups from c-exp.y sergiodj+buildbot
2019-01-06 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-07 4:49 [binutils-gdb] s12z regen sergiodj+buildbot
2019-01-07 5:39 ` Failures on Debian-s390x-native-gdbserver-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-08 0:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-08 12:32 [binutils-gdb] PR24065, 32-bit objcopy fails with 64-bit address ... out of range sergiodj+buildbot
2019-01-08 13:07 ` Failures on Debian-s390x-native-gdbserver-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 14:29 ` Failures on Debian-s390x-native-gdbserver-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 15:49 ` Failures on Debian-s390x-native-gdbserver-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 17:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-08 18:21 [binutils-gdb] Fix build failure with macOS bison sergiodj+buildbot
2019-01-08 18:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-09 3:39 [binutils-gdb] Adjust bfd/warning.m4 egrep patterns sergiodj+buildbot
2019-01-09 4:28 ` Failures on Debian-s390x-native-gdbserver-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 11:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-09 18:33 [binutils-gdb] gdb: Remove support for old mangling schemes sergiodj+buildbot
2019-01-09 19:10 ` Failures on Debian-s390x-native-gdbserver-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 21:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 2:24 [binutils-gdb] Remove ALL_PSPACE_OBJFILES sergiodj+buildbot
2019-01-10 4:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 2:36 [binutils-gdb] Remove most uses of ALL_OBJFILES sergiodj+buildbot
2019-01-10 5:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 2:59 [binutils-gdb] Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS sergiodj+buildbot
2019-01-10 8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 3:56 [binutils-gdb] Remove ALL_COMPUNIT_FILETABS sergiodj+buildbot
2019-01-10 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 4:42 [binutils-gdb] Remove ALL_OBJFILE_PSYMTABS sergiodj+buildbot
2019-01-10 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 14:26 [binutils-gdb] Move some declarations to mdebugread.h sergiodj+buildbot
2019-01-10 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 14:57 [binutils-gdb] Remove ALL_OBJFILE_FILETABS sergiodj+buildbot
2019-01-10 16:42 ` Failures on Debian-s390x-native-gdbserver-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-11 3:25 ` Failures on Debian-s390x-native-gdbserver-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-11 6:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:06 [binutils-gdb] Introduce objfile::reset_psymtabs sergiodj+buildbot
2019-01-11 9:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:18 [binutils-gdb] Allocate the address map on the psymtab obstack sergiodj+buildbot
2019-01-11 11:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:31 [binutils-gdb] Move more allocations to psymtab obstack sergiodj+buildbot
2019-01-11 12:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 16:43 [binutils-gdb] Add psymtab_storage::allocate_dependencies sergiodj+buildbot
2019-01-11 13:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 17:09 [binutils-gdb] Move psymtabs to their own obstack sergiodj+buildbot
2019-01-11 16:39 ` Failures on Debian-s390x-native-gdbserver-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-11 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 22:27 [binutils-gdb] gdb/23712: Introduce multidictionary's sergiodj+buildbot
2019-01-11 23:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 22:39 [binutils-gdb] gdb/23712: Use new multidictionary API sergiodj+buildbot
2019-01-12 0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 23:02 [binutils-gdb] gdb/23712: Remove dw2_add_symbol_to_list sergiodj+buildbot
2019-01-12 8:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-10 23:27 [binutils-gdb] Replace inf_threads_iterator with next_iterator sergiodj+buildbot
2019-01-12 11:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-11 14:49 [binutils-gdb] Make psymtab_storage::free_psymtabs private sergiodj+buildbot
2019-01-11 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-11 17:34 [binutils-gdb] gdb: Fix incorrect variable name in scoped_switch_fork_info sergiodj+buildbot
2019-01-11 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12 1:32 [binutils-gdb] gdb/23712: Cleanup/Remove temporary dictionary functions sergiodj+buildbot
2019-01-12 2:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12 9:25 [binutils-gdb] gdb/23712: Test case for multidictionary sergiodj+buildbot
2019-01-12 9:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12 15:21 [binutils-gdb] expand a bit the in-GDB help for the "catch exception" help text sergiodj+buildbot
2019-01-12 15:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-12 16:44 [binutils-gdb] Add RXv3 instructions sergiodj+buildbot
2019-01-12 17:33 ` Failures on Debian-s390x-native-gdbserver-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 22:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-14 15:04 [binutils-gdb] Sync config.guess, config.sub from GCC sergiodj+buildbot
2019-01-14 16:13 ` Failures on Debian-s390x-native-gdbserver-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 20:36 ` Failures on Debian-s390x-native-gdbserver-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 23:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-14 23:32 [binutils-gdb] Fix placement of output in TUI mode sergiodj+buildbot
2019-01-15 0:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-15 1:15 [binutils-gdb] Constify some remote-notif functions sergiodj+buildbot
2019-01-15 4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-15 23:04 [binutils-gdb] sim: Fix definition of SIM_ARANGE_INLINE sergiodj+buildbot
2019-01-16 1:09 ` Failures on Debian-s390x-native-gdbserver-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 14:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 19:54 [binutils-gdb] Introduce dwarf2_cu::get_builder sergiodj+buildbot
2019-01-16 20:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 21:51 [binutils-gdb] RISC-V: Merge ELF attribute for ld sergiodj+buildbot
2019-01-17 1:04 ` Failures on Debian-s390x-native-gdbserver-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-17 3:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-16 22:52 [binutils-gdb] RISC-V: Support ELF attribute for gas and readelf sergiodj+buildbot
2019-01-16 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-17 17:38 [binutils-gdb] Replace "the the" with "the" sergiodj+buildbot
2019-01-17 18:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-17 17:50 [binutils-gdb] Remove cleanups from solib-target.c sergiodj+buildbot
2019-01-17 19:53 ` Failures on Debian-s390x-native-gdbserver-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-18 0:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18 0:03 [binutils-gdb] Add compunits range adapter to objfile sergiodj+buildbot
2019-01-18 3:23 ` Failures on Debian-s390x-native-gdbserver-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 4:43 ` Failures on Debian-s390x-native-gdbserver-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 7:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18 1:13 [binutils-gdb] Change all_objfiles_safe adapter to be a method on program_space sergiodj+buildbot
2019-01-18 1:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-18 5:48 [binutils-gdb] Simplify minsym iteration sergiodj+buildbot
2019-01-18 6:08 ` Failures on Debian-s390x-native-gdbserver-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 18:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-20 2:52 [binutils-gdb] [MIPS] fix typo in mips_arch_choices sergiodj+buildbot
2019-01-20 3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-21 12:52 [binutils-gdb] Fix spelling mistakes in BFD library sergiodj+buildbot
2019-01-21 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-21 18:41 [binutils-gdb] Remove duplicate or commented-out #includes sergiodj+buildbot
2019-01-21 19:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-22 23:15 [binutils-gdb] Remove the EXTERN define from stabsread.h sergiodj+buildbot
2019-01-23 0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 4:20 [binutils-gdb] Include compile-internal.h in gcc-c-plugin.h sergiodj+buildbot
2019-01-23 5:01 ` Failures on Debian-s390x-native-gdbserver-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 9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 5:55 [binutils-gdb] Remove a comment in compile/compile-cplus-types.c sergiodj+buildbot
2019-01-23 6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 12:06 [binutils-gdb] AArch64: Ensure lwp info is created zeroed sergiodj+buildbot
2019-01-23 18:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 16:32 [binutils-gdb] Updated translations for some of the binutils subdirectory sergiodj+buildbot
2019-01-23 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 17:48 [binutils-gdb] Remove a warning from symtab.c sergiodj+buildbot
2019-01-23 19:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 19:30 [binutils-gdb] Rename ESC -> ESC_PARENS sergiodj+buildbot
2019-01-23 20:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 19:52 [binutils-gdb] Introduce forward_scope_exit sergiodj+buildbot
2019-01-23 23:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 20:56 [binutils-gdb] Remove remaining cleanup from gdb/breakpoint.c sergiodj+buildbot
2019-01-24 4:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 21:21 [binutils-gdb] Remove make_bpstat_clear_actions_cleanup sergiodj+buildbot
2019-01-24 7:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 21:33 [binutils-gdb] Remove cleanup_delete_std_terminate_breakpoint sergiodj+buildbot
2019-01-24 8:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 22:51 [binutils-gdb] Update an obsolete cleanup comment sergiodj+buildbot
2019-01-24 15:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-23 23:02 [binutils-gdb] Update cleanup comment in ui-out.h sergiodj+buildbot
2019-01-24 16:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-24 1:46 [binutils-gdb] Use SCOPE_EXIT in gdbarch-selftest.c sergiodj+buildbot
2019-01-24 2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-24 8:41 [binutils-gdb] AArch64 AAPCS: Ignore static members sergiodj+buildbot
2019-01-24 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-24 21:28 [binutils-gdb] target_pass_signals/target_program_signals: Use gdb::array_view sergiodj+buildbot
2019-01-24 21:58 ` Failures on Debian-s390x-native-gdbserver-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 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-25 17:11 [binutils-gdb] AArch64: Add new STZGM instruction for Armv8.5-A Memory Tagging Extension sergiodj+buildbot
2019-01-25 17:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-25 23:52 [binutils-gdb] Update create-version.sh to use common/version.h sergiodj+buildbot
2019-01-25 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-26 1:11 [binutils-gdb] Normalize includes to use common/ sergiodj+buildbot
2019-01-26 1:11 ` Failures on Debian-s390x-native-gdbserver-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 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-28 16:17 [binutils-gdb] Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate sergiodj+buildbot
2019-01-28 16:55 ` Failures on Debian-s390x-native-gdbserver-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 19:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-30 18:16 [binutils-gdb] [PR gdb/23985] Fix libinproctrace.so build sergiodj+buildbot
2019-01-30 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-31 17:04 [binutils-gdb] S/390: Implement instruction set extensions sergiodj+buildbot
2019-01-31 17:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-01-31 18:19 [binutils-gdb] Readline: Cleanup some warnings sergiodj+buildbot
2019-01-31 18:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-05 13:58 [binutils-gdb] Hoist assertion in target_stack::unpush sergiodj+buildbot
2019-02-05 14:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-06 20:21 [binutils-gdb] Fix leak of identifier in macro definition sergiodj+buildbot
2019-02-06 21:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-06 20:32 [binutils-gdb] Factorize macro definition code in macrotab.c sergiodj+buildbot
2019-02-06 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 11:00 [binutils-gdb] Normalize include guards in gdb sergiodj+buildbot
2019-02-07 11:38 ` Failures on Debian-s390x-native-gdbserver-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 15:45 ` Failures on Debian-s390x-native-gdbserver-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 17:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 15:06 [binutils-gdb] gdbserver: When attaching, add process before lwps sergiodj+buildbot
2019-02-07 18:21 ` Failures on Debian-s390x-native-gdbserver-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-08 0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 19:10 [binutils-gdb] Updated Swedish translation for the opcodes sub-directory sergiodj+buildbot
2019-02-07 19:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-07 21:52 [binutils-gdb] SPARC: fix PR ld/18841 sergiodj+buildbot
2019-02-07 23:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-08 1:07 [binutils-gdb] Arm: Backport hlt to all architectures sergiodj+buildbot
2019-02-08 1:37 ` Failures on Debian-s390x-native-gdbserver-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 22:22 ` Failures on Debian-s390x-native-gdbserver-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 23:41 ` Failures on Debian-s390x-native-gdbserver-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 16:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-11 17:01 [binutils-gdb] AArch64: Detect exit from execve syscall sergiodj+buildbot
2019-02-11 17:59 ` Failures on Debian-s390x-native-gdbserver-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 14:10 ` Failures on Debian-s390x-native-gdbserver-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 20:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-12 22:15 [binutils-gdb] Make symtab.c better styled sergiodj+buildbot
2019-02-12 22:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-12 22:22 [binutils-gdb] Add a new function child_path sergiodj+buildbot
2019-02-13 4:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-13 3:05 [binutils-gdb] Use child_path to determine if an object file is under a sysroot sergiodj+buildbot
2019-02-13 5:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-13 6:14 [binutils-gdb] Adding a test case sergiodj+buildbot
2019-02-13 8:33 ` Failures on Debian-s390x-native-gdbserver-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 23:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 4:51 [binutils-gdb] (riscv/ada) fix error when calling functions with range argument sergiodj+buildbot
2019-02-14 5:38 ` Failures on Debian-s390x-native-gdbserver-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 17:09 ` Failures on Debian-s390x-native-gdbserver-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 18:28 ` Failures on Debian-s390x-native-gdbserver-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 21:14 ` Failures on Debian-s390x-native-gdbserver-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 23:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 19:25 [binutils-gdb] [gdb, hurd] Repair build after "Share fork_inferior et al with gdbserver" changes sergiodj+buildbot
2019-02-14 19:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-14 22:41 [binutils-gdb] Updating test case sergiodj+buildbot
2019-02-15 2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 20:41 [binutils-gdb] C++-ify bp_location sergiodj+buildbot
2019-02-15 21:33 ` Failures on Debian-s390x-native-gdbserver-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 22:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 21:22 [binutils-gdb] Exception safety in ravenscar-thread.c sergiodj+buildbot
2019-02-16 1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:17 [binutils-gdb] Minor C++-ification in ravenscar-thread.c sergiodj+buildbot
2019-02-16 5:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:29 [binutils-gdb] Add push_target overload sergiodj+buildbot
2019-02-16 6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:41 [binutils-gdb] Make the ravenscar thread target multi-target-ready sergiodj+buildbot
2019-02-16 8:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 22:54 [binutils-gdb] Special-case wildcard requests in ravenscar-thread.c sergiodj+buildbot
2019-02-16 9:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-15 23:42 [binutils-gdb] Fix some typos in ravenscar-thread.c sergiodj+buildbot
2019-02-16 0:12 ` Failures on Debian-s390x-native-gdbserver-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 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-18 6:37 [binutils-gdb] PR24225, nios2 buffer overflow sergiodj+buildbot
2019-02-18 6:37 ` Failures on Debian-s390x-native-gdbserver-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-19 0:29 ` Failures on Debian-s390x-native-gdbserver-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 13:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 1:53 [binutils-gdb] PR24236, Heap buffer overflow in _bfd_archive_64_bit_slurp_armap sergiodj+buildbot
2019-02-20 2:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 8:48 [binutils-gdb] Check asprintf return value sergiodj+buildbot
2019-02-20 10:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 11:09 [binutils-gdb] bfd: xtensa: fix callx relaxation sergiodj+buildbot
2019-02-20 13:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 13:53 [binutils-gdb] AArch64: Add default reggroups sergiodj+buildbot
2019-02-20 14:23 ` Failures on Debian-s390x-native-gdbserver-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 16:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-20 19:48 [binutils-gdb] Fix typos in symtab_symbol_info sergiodj+buildbot
2019-02-20 20:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-21 13:50 [binutils-gdb] Disable styling when running in batch mode sergiodj+buildbot
2019-02-21 14:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-21 18:38 [binutils-gdb] Document style behavior in batch mode sergiodj+buildbot
2019-02-21 19:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-22 20:22 [binutils-gdb] Fix symtab/23853: symlinked default symtab sergiodj+buildbot
2019-02-22 21:07 ` Failures on Debian-s390x-native-gdbserver-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 22:25 ` Failures on Debian-s390x-native-gdbserver-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 23:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-23 1:12 [binutils-gdb] Update my email address sergiodj+buildbot
2019-02-23 1:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-24 11:25 [binutils-gdb] PR24144, pdp11-ld overwriting section data with zeros sergiodj+buildbot
2019-02-24 11:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-25 16:02 [binutils-gdb] Fix BFD leak in solib-darwin.c sergiodj+buildbot
2019-02-25 16:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-25 21:09 [binutils-gdb] Fix crash when loading dwp files sergiodj+buildbot
2019-02-25 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-25 22:54 [binutils-gdb] Fix BFD leak in dwarf2_get_dwz_file sergiodj+buildbot
2019-02-26 0:19 ` Failures on Debian-s390x-native-gdbserver-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 23:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-26 19:28 [binutils-gdb] Define gdb.Value(bufobj, type) constructor sergiodj+buildbot
2019-02-26 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-26 19:57 [binutils-gdb] Fix new py-value.exp test case sergiodj+buildbot
2019-02-27 2:45 ` Failures on Debian-s390x-native-gdbserver-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 11:59 ` Failures on Debian-s390x-native-gdbserver-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 17:18 ` Failures on Debian-s390x-native-gdbserver-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 18:41 ` Failures on Debian-s390x-native-gdbserver-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 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 15:43 [binutils-gdb] gdb/arm: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 2:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 16:18 [binutils-gdb] gdb/csky: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 16:53 [binutils-gdb] gdb/ft32: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 10:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 17:04 [binutils-gdb] gdb/h8300: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 11:53 ` Failures on Debian-s390x-native-gdbserver-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-28 14:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 19:00 [binutils-gdb] Remove Python 2.4 and 2.5 support sergiodj+buildbot
2019-02-28 17:49 ` Failures on Debian-s390x-native-gdbserver-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-28 21:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 19:37 [binutils-gdb] Test "set width/height -1" sergiodj+buildbot
2019-02-28 22:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-27 20:01 [binutils-gdb] Handle \r\n in gdbreplay sergiodj+buildbot
2019-03-01 1:09 ` Failures on Debian-s390x-native-gdbserver-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-03-01 2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 0:52 [binutils-gdb] gdb/arc: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 4:51 [binutils-gdb] gdb/cris: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 5:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 7:38 [binutils-gdb] (gdb/sim) Move Mike Frysinger to past maintainers section sergiodj+buildbot
2019-03-01 5:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 7:58 [binutils-gdb] gdb/riscv: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 7:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 8:46 [binutils-gdb] gdb/frv: Use default gdbarch methods where possible sergiodj+buildbot
2019-02-28 9:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-02-28 12:41 [binutils-gdb] gdb/hppa: Use default gdbarch method default_dummy_id sergiodj+buildbot
2019-02-28 13:16 ` Failures on Debian-s390x-native-gdbserver-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-03-01 6:32 ` Failures on Debian-s390x-native-gdbserver-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 10:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-01 7:20 [binutils-gdb] Can't interrupt process without controlling terminal on Solaris (PR gdb/8527) sergiodj+buildbot
2019-03-01 7:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-01 12:46 [binutils-gdb] Binutils: Always skip only 1 byte for CIE version 1's return address register sergiodj+buildbot
2019-03-01 12:46 ` Failures on Debian-s390x-native-gdbserver-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 16:31 ` Failures on Debian-s390x-native-gdbserver-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 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-04 15:25 [binutils-gdb] gdbserver short-circuit-argument-list failures sergiodj+buildbot
2019-03-04 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:13 [binutils-gdb] Introduce ATTRIBUTE_UNUSED_RESULT and use it sergiodj+buildbot
2019-03-05 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:26 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_fd sergiodj+buildbot
2019-03-05 19:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:37 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to scoped_mmap sergiodj+buildbot
2019-03-05 21:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 16:49 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to macro_buffer sergiodj+buildbot
2019-03-05 22:19 ` Failures on Debian-s390x-native-gdbserver-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 23:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 17:17 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to ref_ptr::release sergiodj+buildbot
2019-03-06 1:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 17:29 [binutils-gdb] Remove excess calls to gdb_flush sergiodj+buildbot
2019-03-06 2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 17:35 [binutils-gdb] Add ATTRIBUTE_UNUSED_RESULT to parser_state sergiodj+buildbot
2019-03-05 18:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-05 21:27 [binutils-gdb] Change the_dummy_target to be a global sergiodj+buildbot
2019-03-06 6:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 8:50 [binutils-gdb] Fortran function calls with arguments sergiodj+buildbot
2019-03-06 9:45 ` Failures on Debian-s390x-native-gdbserver-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 11:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 18:28 [binutils-gdb] gdb/fortran: Remove some duplicate tests sergiodj+buildbot
2019-03-06 19:19 ` Failures on Debian-s390x-native-gdbserver-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-07 4:56 ` Failures on Debian-s390x-native-gdbserver-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-07 7:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 20:33 [binutils-gdb] gdb/fortran: Handle older TYPE*SIZE typenames sergiodj+buildbot
2019-03-07 9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 21:11 [binutils-gdb] linux-fork.c: rewrite inf_has_multiple_threads sergiodj+buildbot
2019-03-07 14:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-06 21:33 [binutils-gdb] gdb/fortran: Simplify handling of Fortran dot operations and keywords sergiodj+buildbot
2019-03-06 22:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 0:13 [binutils-gdb] Remove last cleanup from gdbserver sergiodj+buildbot
2019-03-08 0:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 0:25 [binutils-gdb] Remove cleanup from solib-svr4.c sergiodj+buildbot
2019-03-08 2:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 0:38 [binutils-gdb] Remove last cleanups from solib-svr4.c sergiodj+buildbot
2019-03-08 3:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 0:51 [binutils-gdb] Remove last cleanup solib-aix.c sergiodj+buildbot
2019-03-08 5:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 1:04 [binutils-gdb] Remove last cleanup from linux-namespaces.c sergiodj+buildbot
2019-03-08 6:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 1:42 [binutils-gdb] Remove basic cleanup code sergiodj+buildbot
2019-03-08 10:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 1:55 [binutils-gdb] Remove free_current_contents sergiodj+buildbot
2019-03-08 11:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 2:08 [binutils-gdb] Use SCOPE_EXIT in write_gcore_file sergiodj+buildbot
2019-03-08 13:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 6:24 [binutils-gdb] gdb/fortran: Use TYPE_CODE_CHAR for character types sergiodj+buildbot
2019-03-07 6:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 10:35 [binutils-gdb] Make "checkpoint" not rely on inferior_ptid sergiodj+buildbot
2019-03-07 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 16:22 [binutils-gdb] Eliminate fork_info::clobber_regs sergiodj+buildbot
2019-03-07 16:22 ` Failures on Debian-s390x-native-gdbserver-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-08 14:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 18:05 [binutils-gdb] C++-ify bcache sergiodj+buildbot
2019-03-08 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 18:41 [binutils-gdb] Update two cleanup comments sergiodj+buildbot
2019-03-07 19:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 21:16 [binutils-gdb] Change displaced_step_clear_cleanup to a forward_scope_exit sergiodj+buildbot
2019-03-07 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-07 22:57 [binutils-gdb] C++ify remote notification code sergiodj+buildbot
2019-03-07 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-08 7:15 [binutils-gdb] Remove last cleanups from stabsread.c sergiodj+buildbot
2019-03-08 7:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-08 13:11 [binutils-gdb] PR24311, FAIL: S-records with constructors sergiodj+buildbot
2019-03-08 20:32 ` Failures on Debian-s390x-native-gdbserver-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:54 ` Failures on Debian-s390x-native-gdbserver-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 14:37 ` Failures on Debian-s390x-native-gdbserver-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 16:01 ` Failures on Debian-s390x-native-gdbserver-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 18:48 ` Failures on Debian-s390x-native-gdbserver-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-10 0:21 ` Failures on Debian-s390x-native-gdbserver-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-10 3:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-10 1:16 [binutils-gdb] Split rank_one_type_parm_float from rank_one_type sergiodj+buildbot
2019-03-10 1:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-10 6:46 [binutils-gdb] Remove unnecessary cases from rank_one_type's switch sergiodj+buildbot
2019-03-10 7:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-11 17:36 [binutils-gdb] Remove redundant assignment from dwarf2_find_containing_comp_unit sergiodj+buildbot
2019-03-11 18:07 ` Failures on Debian-s390x-native-gdbserver-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 17:06 ` Failures on Debian-s390x-native-gdbserver-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 18:29 ` Failures on Debian-s390x-native-gdbserver-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 19:56 ` Failures on Debian-s390x-native-gdbserver-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 22:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 18:26 [binutils-gdb] Fix MinGW build with source-highlight sergiodj+buildbot
2019-03-13 3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 20:07 [binutils-gdb] gdb/testsuite: Prepare for DejaGnu 1.6.2 sergiodj+buildbot
2019-03-13 4:30 ` Failures on Debian-s390x-native-gdbserver-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-13 5:56 ` Failures on Debian-s390x-native-gdbserver-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-13 7:19 ` Failures on Debian-s390x-native-gdbserver-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-13 11:24 ` Failures on Debian-s390x-native-gdbserver-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-13 12:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 22:47 [binutils-gdb] Support TLS variables on FreeBSD/amd64 sergiodj+buildbot
2019-03-13 16:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 22:59 [binutils-gdb] Support TLS variables on FreeBSD/i386 sergiodj+buildbot
2019-03-13 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-12 23:25 [binutils-gdb] Support TLS variables on FreeBSD/powerpc sergiodj+buildbot
2019-03-13 21:10 ` Failures on Debian-s390x-native-gdbserver-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-13 22:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-13 9:31 [binutils-gdb] Update comment for target::get_thread_local_address sergiodj+buildbot
2019-03-13 10:02 ` Failures on Debian-s390x-native-gdbserver-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-14 2:54 ` Failures on Debian-s390x-native-gdbserver-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-14 4:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-13 19:30 [binutils-gdb] Fix MI output for multi-location breakpoints sergiodj+buildbot
2019-03-14 6:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-14 0:03 [binutils-gdb] x86: Properly set IBT and SHSTK properties for -z ibt/shstk sergiodj+buildbot
2019-03-14 0:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-14 1:31 [binutils-gdb] [BFD, LD, AArch64, 1/3] Add support for GNU PROPERTIES in AArch64 for BTI and PAC sergiodj+buildbot
2019-03-14 1:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-14 12:15 [binutils-gdb] Add the "set style source" command sergiodj+buildbot
2019-03-14 14:19 ` Failures on Debian-s390x-native-gdbserver-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-15 0:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 4:17 [binutils-gdb] Fix a buffer overrun error when attempting to parse corrupt DWARF information sergiodj+buildbot
2019-03-15 4:17 ` Failures on Debian-s390x-native-gdbserver-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 9:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 10:11 [binutils-gdb] PR24336, buffer overflow in swap_reloca_in sergiodj+buildbot
2019-03-15 10:42 ` Failures on Debian-s390x-native-gdbserver-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 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 10:35 [binutils-gdb] PR24339, segfault on NULL symbol section sergiodj+buildbot
2019-03-15 13:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 15:15 [binutils-gdb] COFF: Check for symbols defined in discarded section sergiodj+buildbot
2019-03-15 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 22:36 [binutils-gdb] Use bitset for demangled_hash_languages sergiodj+buildbot
2019-03-16 6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 22:44 [binutils-gdb] Slightly simplify minsym creation sergiodj+buildbot
2019-03-15 23:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-15 22:51 [binutils-gdb] Remove some unneeded initializations in minimal_symbol_reader sergiodj+buildbot
2019-03-16 7:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 0:38 [binutils-gdb] Allocate minimal symbols with malloc sergiodj+buildbot
2019-03-16 14:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 0:52 [binutils-gdb] Use memcpy in minimal_symbol_reader::install sergiodj+buildbot
2019-03-16 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 1:07 [binutils-gdb] Change minimal_symbol inheritance sergiodj+buildbot
2019-03-16 17:33 ` Failures on Debian-s390x-native-gdbserver-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 19:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 11:07 [binutils-gdb] Simplify per-BFD storage management sergiodj+buildbot
2019-03-16 11:07 ` Failures on Debian-s390x-native-gdbserver-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 20:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-16 18:13 [binutils-gdb] Fix vertical scrolling of TUI source window sergiodj+buildbot
2019-03-17 1:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 4:18 [binutils-gdb] gdb: unconditionally define _initialize_string_view_selftests sergiodj+buildbot
2019-03-18 5:19 ` Failures on Debian-s390x-native-gdbserver-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 13:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 14:44 [binutils-gdb] Fix scrolling right in the TUI sergiodj+buildbot
2019-03-18 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-18 15:12 [binutils-gdb] Fix Ada "ptype" bug with array types sergiodj+buildbot
2019-03-18 15:12 ` Failures on Debian-s390x-native-gdbserver-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-19 1:17 ` Failures on Debian-s390x-native-gdbserver-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-19 4:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-19 13:27 [binutils-gdb] ix86: Disable AVX512F when disabling AVX2 sergiodj+buildbot
2019-03-19 14:35 ` Failures on Debian-s390x-native-gdbserver-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 19:26 ` Failures on Debian-s390x-native-gdbserver-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 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-20 18:24 [binutils-gdb] Merge handle_inferior_event and handle_inferior_event_1 sergiodj+buildbot
2019-03-20 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-21 17:04 [binutils-gdb] [BFD, AArch64, x86] Improve warning for --force-bti sergiodj+buildbot
2019-03-21 17:44 ` Failures on Debian-s390x-native-gdbserver-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 23:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 12:22 [binutils-gdb] AArch64: Add pointer authentication feature sergiodj+buildbot
2019-03-22 13:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 13:17 [binutils-gdb] AArch64: Add pauth DWARF registers sergiodj+buildbot
2019-03-22 19:54 ` Failures on Debian-s390x-native-gdbserver-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 21:31 ` Failures on Debian-s390x-native-gdbserver-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 23:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 14:02 [binutils-gdb] AArch64: Read pauth section from core files sergiodj+buildbot
2019-03-23 2:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-22 18:18 [binutils-gdb] AArch64: gdbserver: read pauth registers sergiodj+buildbot
2019-03-22 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-23 17:15 [binutils-gdb] Include bcache.h from objfiles.h sergiodj+buildbot
2019-03-23 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-23 17:30 [binutils-gdb] Have parser reset the innermost block tracker sergiodj+buildbot
2019-03-23 23:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 6:17 [binutils-gdb] Remove null_block_symbol sergiodj+buildbot
2019-03-25 10:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 6:17 [binutils-gdb] More block constification sergiodj+buildbot
2019-03-25 7:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 14:22 [binutils-gdb] Fix testsuite hangs when gdb_test_multiple body errors out sergiodj+buildbot
2019-03-25 15:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 15:59 [binutils-gdb] AArch64: Fix disassembler bug with out-of-order sections sergiodj+buildbot
2019-03-25 16:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 17:24 [binutils-gdb] Fix s390 build sergiodj+buildbot
2019-03-26 1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 20:39 [binutils-gdb] Note support for TLS variables on FreeBSD sergiodj+buildbot
2019-03-26 6:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-25 22:26 [binutils-gdb] Arm: Fix Arm disassembler mapping symbol search sergiodj+buildbot
2019-03-25 22:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-26 17:26 [binutils-gdb] gdbserver: Add linux_get_hwcap sergiodj+buildbot
2019-03-26 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-26 20:13 [binutils-gdb] gdb: Avoid trailing whitespace when pretty printing sergiodj+buildbot
2019-03-26 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-26 20:58 [binutils-gdb] Fix Powerpc build sergiodj+buildbot
2019-03-26 21:21 ` Failures on Debian-s390x-native-gdbserver-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 23:22 ` Failures on Debian-s390x-native-gdbserver-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-28 4:12 ` Failures on Debian-s390x-native-gdbserver-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-28 4:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-28 12:45 [binutils-gdb] gdbserver: Ensure AT_HWCAP2 is defined sergiodj+buildbot
2019-03-28 15:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-28 17:50 [binutils-gdb] AArch64: View the pseudo V registers as vectors sergiodj+buildbot
2019-03-28 20:39 ` Failures on Debian-s390x-native-gdbserver-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-29 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-03-28 23:33 [binutils-gdb] sim: fix all sim builds sergiodj+buildbot
2019-03-29 15:01 ` Failures on Debian-s390x-native-gdbserver-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 22:48 ` Failures on Debian-s390x-native-gdbserver-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 12:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 8:39 [binutils-gdb] Add gdb.Value.format_string () sergiodj+buildbot
2019-04-01 11:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 15:18 [binutils-gdb] Destroy allocated values when exiting GDB sergiodj+buildbot
2019-04-01 16:45 ` Failures on Debian-s390x-native-gdbserver-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:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 21:35 [binutils-gdb] gdb: Add $_cimag and $_creal internal functions sergiodj+buildbot
2019-04-01 22:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-01 21:51 [binutils-gdb] gdb/fortran: Handle internal function calls sergiodj+buildbot
2019-04-02 0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-03 4:24 [binutils-gdb] BFD whitespace fixes sergiodj+buildbot
2019-04-03 5:09 ` Failures on Debian-s390x-native-gdbserver-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-08 11:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 2:09 [binutils-gdb] PowerPC disassembler: Don't emit trailing spaces sergiodj+buildbot
2019-04-09 11:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 2:26 [binutils-gdb] PowerPC bc extended branch mnemonics and "y" hints sergiodj+buildbot
2019-04-09 12:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 2:42 [binutils-gdb] Make increase_expout_size static sergiodj+buildbot
2019-04-09 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 3:47 [binutils-gdb] Turn parse_gdbarch into a method sergiodj+buildbot
2019-04-09 18:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 4:17 [binutils-gdb] Move expression_context_* globals to parser_state sergiodj+buildbot
2019-04-09 23:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 4:17 [binutils-gdb] Remove paren_depth global sergiodj+buildbot
2019-04-10 1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 4:48 [binutils-gdb] Move lexptr and prev_lexptr to parser_state sergiodj+buildbot
2019-04-10 5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-05 5:50 [binutils-gdb] Move innermost_block_tracker global to parse_state sergiodj+buildbot
2019-04-10 11:42 ` Failures on Debian-s390x-native-gdbserver-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-10 15:14 ` Failures on Debian-s390x-native-gdbserver-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-10 20:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-07 13:25 [binutils-gdb] Merge libiberty from gcc sergiodj+buildbot
2019-04-11 6:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-07 13:40 [binutils-gdb] PR24421, Wrong brackets in opcodes/arm-dis.c sergiodj+buildbot
2019-04-11 8:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 4:59 [binutils-gdb] Fix x86_64-rdos build fail sergiodj+buildbot
2019-04-11 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 15:37 [binutils-gdb] Simplify exception handling sergiodj+buildbot
2019-04-11 13:30 ` Failures on Debian-s390x-native-gdbserver-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-11 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 16:39 [binutils-gdb] Remove some now-dead exception code sergiodj+buildbot
2019-04-11 20:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 16:39 [binutils-gdb] Rewrite TRY/CATCH sergiodj+buildbot
2019-04-11 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 17:11 [binutils-gdb] Replace throw_exception with throw in some cases sergiodj+buildbot
2019-04-12 0:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 19:19 [binutils-gdb] x86: Remove i386-*-kaos* and i386-*-chaos targets sergiodj+buildbot
2019-04-12 3:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-08 19:35 [binutils-gdb] Some gdb_exception{,error,quit} tweaks sergiodj+buildbot
2019-04-12 5:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 4:09 [binutils-gdb] Add python method InferiorThread.handle sergiodj+buildbot
2019-04-12 10:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 4:40 [binutils-gdb] Tests for gdb.InferiorThread.handle sergiodj+buildbot
2019-04-12 13:44 ` Failures on Debian-s390x-native-gdbserver-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-12 17:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 16:15 [binutils-gdb] Remove parser_state "initial_size" parameter sergiodj+buildbot
2019-04-09 16:48 ` Failures on Debian-s390x-native-gdbserver-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-12 19:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 18:18 [binutils-gdb] Consistently use bool for fake_pid_p sergiodj+buildbot
2019-04-12 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 19:44 [binutils-gdb] Fix Rust lexer buglet sergiodj+buildbot
2019-04-13 0:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-09 19:44 [binutils-gdb] Turn parse_language into a method sergiodj+buildbot
2019-04-09 20:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-10 9:17 [binutils-gdb] Move type stack handling to a new class sergiodj+buildbot
2019-04-10 9:57 ` Failures on Debian-s390x-native-gdbserver-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-13 2:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-10 14:24 [binutils-gdb] Remove some uses of "object_files" sergiodj+buildbot
2019-04-13 4:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-10 16:12 [binutils-gdb] x86: Support Intel AVX512 BF16 sergiodj+buildbot
2019-04-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 0:58 [binutils-gdb] Fix amd64->i386 linux syscall restart problem sergiodj+buildbot
2019-04-13 11:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 9:21 [binutils-gdb] print_insn_powerpc tidy sergiodj+buildbot
2019-04-11 9:38 ` Failures on Debian-s390x-native-gdbserver-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-13 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 11:45 [binutils-gdb] PR24435, buffer overflow reading dynamic entries sergiodj+buildbot
2019-04-13 20:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-11 19:21 [binutils-gdb] Make "msg" const in internal_vproblem sergiodj+buildbot
2019-04-14 3:09 ` Failures on Debian-s390x-native-gdbserver-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-14 6:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 6:05 [binutils-gdb] x86: Define GNU_PROPERTY_X86_ISA_1_AVX512_BF16 sergiodj+buildbot
2019-04-12 7:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 10:57 [binutils-gdb] Testsuite: Add gdbserver sysroot test sergiodj+buildbot
2019-04-14 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 12:53 [binutils-gdb] Another fix for GDB styling sergiodj+buildbot
2019-04-14 13:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:20 [binutils-gdb] Introduce a separate debug objfile iterator sergiodj+buildbot
2019-04-13 7:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:22 [binutils-gdb] AArch64: Ensure regcache is reset between tests sergiodj+buildbot
2019-04-13 13:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:25 [binutils-gdb] x86: Add -z cet-report=[none|warning|error] sergiodj+buildbot
2019-04-13 23:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-12 15:29 [binutils-gdb] gdb/riscv: Remove riscv_type_alignment function sergiodj+buildbot
2019-04-14 8:57 ` Failures on Debian-s390x-native-gdbserver-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-16 0:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 14:41 [binutils-gdb] [binutils, ARM, 13/16] Add support for CLRM sergiodj+buildbot
2019-04-16 7:02 ` Failures on Debian-s390x-native-gdbserver-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-16 12:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 15:51 [binutils-gdb] AArch64: Tidy up aarch64_gdbarch_init sergiodj+buildbot
2019-04-16 14:06 ` Failures on Debian-s390x-native-gdbserver-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-16 15:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-15 16:46 [binutils-gdb] Fix AMD64 return value ABI in expression evaluation sergiodj+buildbot
2019-04-16 19:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-16 4:47 [binutils-gdb] [binutils, ARM, 12/16] Scalar Low Overhead loop instructions for Armv8.1-M Mainline sergiodj+buildbot
2019-04-16 4:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-16 7:40 [binutils-gdb] [opcodes, ARM, 14/16] Add mode availability to coprocessor table entries sergiodj+buildbot
2019-04-16 8:29 ` Failures on Debian-s390x-native-gdbserver-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 1:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-17 13:47 [binutils-gdb] gdbserver: Ensure all debug output uses debug functions sergiodj+buildbot
2019-04-17 13:57 ` Failures on Debian-s390x-native-gdbserver-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 17:44 ` Failures on Debian-s390x-native-gdbserver-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 19:48 ` Failures on Debian-s390x-native-gdbserver-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 18:03 ` Failures on Debian-s390x-native-gdbserver-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 23:25 ` Failures on Debian-s390x-native-gdbserver-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 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 15:56 [binutils-gdb] Fix "list" when control characters are seen sergiodj+buildbot
2019-04-20 23:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 17:12 [binutils-gdb] Make copy_name return std::string sergiodj+buildbot
2019-04-21 8:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 17:28 [binutils-gdb] Make objfile::static_links an htab_up sergiodj+buildbot
2019-04-21 11:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 17:46 [binutils-gdb] Use std::list for event notifications in gdbserver sergiodj+buildbot
2019-04-21 12:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-20 18:38 [binutils-gdb] Remove common/queue.h sergiodj+buildbot
2019-04-21 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-21 4:17 [binutils-gdb] gdb/configure.ac: add --enable-source-highlight sergiodj+buildbot
2019-04-21 5:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-21 14:06 [binutils-gdb] Use std::list for remote_notif_state::notif_queue sergiodj+buildbot
2019-04-21 14:38 ` Failures on Debian-s390x-native-gdbserver-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 9:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 13:32 [binutils-gdb] Testsuite: Remove pie from trace tests sergiodj+buildbot
2019-04-23 15:09 ` Failures on Debian-s390x-native-gdbserver-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 20:20 ` Failures on Debian-s390x-native-gdbserver-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 22:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 22:28 [binutils-gdb] gdb/iq2000: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 12:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 22:46 [binutils-gdb] gdb/aarch64: Use type_align instead of aarch64_type_align sergiodj+buildbot
2019-04-24 2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-23 22:47 [binutils-gdb] gdb/lm32: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 14:11 ` Failures on Debian-s390x-native-gdbserver-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 15:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 1:15 [binutils-gdb] gdb/moxie: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 1:32 [binutils-gdb] gdb/msp430: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 5:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 1:49 [binutils-gdb] gdb/nds32: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 7:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 2:22 [binutils-gdb] gdb/or1k: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 10:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 3:46 [binutils-gdb] gdb/sparc: Use default_unwind_pc sergiodj+buildbot
2019-04-25 20:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 5:07 [binutils-gdb] gdb/xstormy16: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-26 5:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 5:24 [binutils-gdb] gdb/rl78: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-26 6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 7:30 [binutils-gdb] gdb/arm: Use type_align instead of arm_type_align sergiodj+buildbot
2019-04-24 8:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 9:52 [binutils-gdb] gdb/nds32: Use type_align instead of nds32_type_align sergiodj+buildbot
2019-04-24 11:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 17:03 [binutils-gdb] gdb/m32r: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 17:34 ` Failures on Debian-s390x-native-gdbserver-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-26 14:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 20:48 [binutils-gdb] Fix Rust testing sergiodj+buildbot
2019-04-26 18:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-24 23:39 [binutils-gdb] gdb/mep: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-24 23:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 13:08 [binutils-gdb] gdb/rx: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 15:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 13:53 [binutils-gdb] [BFD, AArch64] Improve bti/pac plts sergiodj+buildbot
2019-04-26 22:17 ` Failures on Debian-s390x-native-gdbserver-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-27 3:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 19:44 [binutils-gdb] Make SJLJ exceptions more efficient sergiodj+buildbot
2019-04-27 10:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 20:51 [binutils-gdb] c++/24367: Infinite recursion of typedef substitution sergiodj+buildbot
2019-04-27 18:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-25 23:25 [binutils-gdb] gdb/tilegx: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-25 23:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-26 8:03 [binutils-gdb] gdb/s12z: Use default gdbarch methods where possible sergiodj+buildbot
2019-04-26 9:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-26 15:11 [binutils-gdb] Use "pulongest" on aarch64-tdep.c:aarch64_gdbarch_init sergiodj+buildbot
2019-04-26 16:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 3:38 [binutils-gdb] [PATCH] Support for DW_FORM_strx tag sergiodj+buildbot
2019-04-27 5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 10:41 [binutils-gdb] Avoid undefined behavior in Guile exception handling sergiodj+buildbot
2019-04-27 11:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 11:41 [binutils-gdb] Implement show | set may-call-functions [on|off] sergiodj+buildbot
2019-04-28 0:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 12:26 [binutils-gdb] Make exception handling more efficient sergiodj+buildbot
2019-04-27 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-27 20:23 [binutils-gdb] Don't complain undefined weak dynamic reference sergiodj+buildbot
2019-04-27 21:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-28 1:28 [binutils-gdb] Have 'thread|frame apply' style their output sergiodj+buildbot
2019-04-28 2:22 ` Failures on Debian-s390x-native-gdbserver-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 6:48 ` Failures on Debian-s390x-native-gdbserver-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 16:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-29 21:43 [binutils-gdb] gdb/ada: Update some predicate functions to return bool sergiodj+buildbot
2019-04-29 22:34 ` Failures on Debian-s390x-native-gdbserver-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-30 2:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-29 22:12 [binutils-gdb] gdb: Introduce 'print max-depth' feature sergiodj+buildbot
2019-04-30 4:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 12:53 [binutils-gdb] gdb: Remove an unbalanced stray double quote from a comment sergiodj+buildbot
2019-04-30 13:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 13:16 [binutils-gdb] gdb/fortran: Additional builtin procedures sergiodj+buildbot
2019-04-30 17:32 ` Failures on Debian-s390x-native-gdbserver-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 22:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 14:39 [binutils-gdb] gdb/fortran: Introduce fortran-operator.def file sergiodj+buildbot
2019-04-30 15:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 15:12 [binutils-gdb] Fix crash in dwarf2read.c with template parameters sergiodj+buildbot
2019-05-01 8:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 15:28 [binutils-gdb] Fix "catch exception" with dynamic linking sergiodj+buildbot
2019-05-01 10:01 ` Failures on Debian-s390x-native-gdbserver-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-05-01 16:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-04-30 23:41 [binutils-gdb] Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms sergiodj+buildbot
2019-05-01 17:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 3:08 [binutils-gdb] PowerPC64 GOT indirect to GOT relative optimisation sergiodj+buildbot
2019-05-01 3:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 13:10 [binutils-gdb] (Windows) fix thr != nullptr assert failure in delete_thread_1 sergiodj+buildbot
2019-05-01 13:52 ` Failures on Debian-s390x-native-gdbserver-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 21:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 16:32 [binutils-gdb] [BINUTILS, AArch64] Enable Transactional Memory Extension sergiodj+buildbot
2019-05-02 2:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-01 22:56 [binutils-gdb] Fix big-endian aggregate assignment in Ada sergiodj+buildbot
2019-05-01 23:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-03 1:02 [binutils-gdb] Remove _initialize_valarith sergiodj+buildbot
2019-05-03 3:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-03 10:03 [binutils-gdb] Fix lookup of separate debug file on MS-Windows sergiodj+buildbot
2019-05-03 10:20 ` Failures on Debian-s390x-native-gdbserver-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 20:38 ` Failures on Debian-s390x-native-gdbserver-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 1:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 3:19 [binutils-gdb] Remove "struct" from foreach statements sergiodj+buildbot
2019-05-04 3:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 6:26 [binutils-gdb] Fix leaks by clearing registers and frame caches sergiodj+buildbot
2019-05-04 6:45 ` Failures on Debian-s390x-native-gdbserver-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 21:49 ` Failures on Debian-s390x-native-gdbserver-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-05 4:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 22:08 [binutils-gdb] Use "false" in compile_cplus_convert_enum sergiodj+buildbot
2019-05-05 12:01 ` Failures on Debian-s390x-native-gdbserver-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-05 14:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-04 22:41 [binutils-gdb] Change arc_tdesc_init to return bool sergiodj+buildbot
2019-05-05 15:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-05 1:02 [binutils-gdb] Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py sergiodj+buildbot
2019-05-05 0:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-05 8:19 [binutils-gdb] Use "false" in select_frame_for_mi sergiodj+buildbot
2019-05-05 8:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-05 17:17 [binutils-gdb] Remove a VEC from ppc-linux-nat.c sergiodj+buildbot
2019-05-05 17:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-06 3:06 [binutils-gdb] PowerPC reloc symbols that shouldn't be adjusted sergiodj+buildbot
2019-05-06 3:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-06 3:06 [binutils-gdb] PicoJava weak undefined symbols sergiodj+buildbot
2019-05-06 5:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-06 7:21 [binutils-gdb] [gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index, debug-names} sergiodj+buildbot
2019-05-06 7:23 ` Failures on Debian-s390x-native-gdbserver-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:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-07 4:22 [binutils-gdb] Fix scoped_mmap includes sergiodj+buildbot
2019-05-07 4:23 ` Failures on Debian-s390x-native-gdbserver-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 11:07 ` Failures on Debian-s390x-native-gdbserver-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 9:52 ` Failures on Debian-s390x-native-gdbserver-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 13:24 ` Failures on Debian-s390x-native-gdbserver-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 15:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 16:34 [binutils-gdb] Fix VLA printing for Ada sergiodj+buildbot
2019-05-08 17:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 17:16 [binutils-gdb] Change ptype/o to print bit offset sergiodj+buildbot
2019-05-08 20:50 ` Failures on Debian-s390x-native-gdbserver-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 22:40 ` Failures on Debian-s390x-native-gdbserver-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-09 14:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 22:42 [binutils-gdb] Convert main_info to type-safe registry API sergiodj+buildbot
2019-05-09 17:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-08 23:06 [binutils-gdb] Don't declare read_unsigned_leb128 in defs.h sergiodj+buildbot
2019-05-09 5:09 ` Failures on Debian-s390x-native-gdbserver-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-10 0:49 ` Failures on Debian-s390x-native-gdbserver-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-10 4:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 1:46 [binutils-gdb] Convert breakpoint.c to type-safe registry API sergiodj+buildbot
2019-05-10 13:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 1:54 [binutils-gdb] Change some remote.c globals to "static" sergiodj+buildbot
2019-05-09 10:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 2:03 [binutils-gdb] Convert remote.c to type-safe registry API sergiodj+buildbot
2019-05-10 15:08 ` Failures on Debian-s390x-native-gdbserver-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-11 4:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 4:53 [binutils-gdb] Add a type-safe C++ interface to a registry sergiodj+buildbot
2019-05-09 15:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 6:17 [binutils-gdb] Convert stabsread.c to type-safe registry API sergiodj+buildbot
2019-05-11 16:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 7:07 [binutils-gdb] Convert target dcache to type-safe registry API sergiodj+buildbot
2019-05-09 21:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 9:44 [binutils-gdb] Convert objfiles.c to type-safe registry API sergiodj+buildbot
2019-05-10 2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 10:22 [binutils-gdb] [binutils][aarch64] Introduce SVE_IMM_ROT3 operand sergiodj+buildbot
2019-05-12 5:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 10:37 [binutils-gdb] [binutils][aarch64] New iclass sve_size_hsd2 sergiodj+buildbot
2019-05-12 6:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 11:57 [binutils-gdb] [binutils][aarch64] New sve_size_013 iclass sergiodj+buildbot
2019-05-12 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 12:14 [binutils-gdb] [binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand sergiodj+buildbot
2019-05-12 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 12:22 [binutils-gdb] Convert symfile-debug.c to type-safe registry API sergiodj+buildbot
2019-05-10 8:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 14:30 [binutils-gdb] Convert linux-tdep.c to type-safe registry API sergiodj+buildbot
2019-05-10 12:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 17:08 [binutils-gdb] Convert solib-svr4.c to type-safe registry API sergiodj+buildbot
2019-05-10 16:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 20:54 [binutils-gdb] Convert fbsd-tdep.c to type-safe registry API sergiodj+buildbot
2019-05-11 0:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-09 23:40 [binutils-gdb] Convert nto-tdep.c to type-safe registry API sergiodj+buildbot
2019-05-11 5:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 3:57 [binutils-gdb] Remove mips_pdr_data sergiodj+buildbot
2019-05-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 6:46 [binutils-gdb] Convert dwarf2-frame.c to type-safe registry API sergiodj+buildbot
2019-05-11 19:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 12:03 [binutils-gdb] [binutils][aarch64] SVE2 feature extension flags sergiodj+buildbot
2019-05-12 1:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 16:16 [binutils-gdb] Add completion for Ada catch commands sergiodj+buildbot
2019-05-13 9:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-10 16:33 [binutils-gdb] [binutils][aarch64] New SVE_ADDR_ZX operand sergiodj+buildbot
2019-05-12 10:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11 0:43 [binutils-gdb] [binutils][aarch64] Add SVE2 instructions sergiodj+buildbot
2019-05-13 2:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11 0:59 [binutils-gdb] PowerPC objdump -Mraw sergiodj+buildbot
2019-05-13 15:46 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11 2:38 [binutils-gdb] Update printing of optional operands during disassembly sergiodj+buildbot
2019-05-13 7:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11 8:39 [binutils-gdb] Fix GDB build when using --disable-gdbmi sergiodj+buildbot
2019-05-13 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-11 12:31 [binutils-gdb] Add macro expansions for ADD, SUB, DADD and DSUB for MIPS r6 sergiodj+buildbot
2019-05-13 16:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-12 16:12 [binutils-gdb] Fix two langauge -> language typos sergiodj+buildbot
2019-05-14 6:07 ` Failures on Debian-s390x-native-gdbserver-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 9:06 ` Failures on Debian-s390x-native-gdbserver-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 10:38 ` Failures on Debian-s390x-native-gdbserver-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 12:31 ` Failures on Debian-s390x-native-gdbserver-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 14:17 ` Failures on Debian-s390x-native-gdbserver-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:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-15 5:50 [binutils-gdb] GDB (s12z): Improve reliability of the stack unwinder sergiodj+buildbot
2019-05-15 6:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-15 15:54 [binutils-gdb] linux-thread-db.c: use bool where possible in thread_db code sergiodj+buildbot
2019-05-15 21:45 ` Failures on Debian-s390x-native-gdbserver-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 22:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 13:25 [binutils-gdb] Revert "ARM STM32L4XX erratum test failure" sergiodj+buildbot
2019-05-16 14:02 ` Failures on Debian-s390x-native-gdbserver-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 21:12 ` Failures on Debian-s390x-native-gdbserver-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-17 2:36 ` Failures on Debian-s390x-native-gdbserver-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-17 6:02 ` Failures on Debian-s390x-native-gdbserver-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-17 9:52 ` Failures on Debian-s390x-native-gdbserver-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-17 12:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 19:46 [binutils-gdb] Fix darwin-nat.c build sergiodj+buildbot
2019-05-17 20:48 ` Failures on Debian-s390x-native-gdbserver-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-17 22:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 21:12 [binutils-gdb] [PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number instructions sergiodj+buildbot
2019-05-17 4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 21:37 [binutils-gdb] Fix complaint string formatting on stap-probe.c sergiodj+buildbot
2019-05-18 4:25 ` Failures on Debian-s390x-native-gdbserver-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-18 6:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-16 23:02 [binutils-gdb] [PATCH 51/57][Arm][OBJDUMP] Add support for MVE instructions: lctp, letp, wlstp and dlstp sergiodj+buildbot
2019-05-17 7:55 ` Failures on Debian-s390x-native-gdbserver-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-18 8:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 10:42 [binutils-gdb] MI: extract command completion logic from complete_command() sergiodj+buildbot
2019-05-19 0:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 11:02 [binutils-gdb] MI: Add new command -complete sergiodj+buildbot
2019-05-19 3:15 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 13:27 [binutils-gdb] Change file close behavior for tee_file sergiodj+buildbot
2019-05-19 6:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 13:46 [binutils-gdb] Add debug redirect option sergiodj+buildbot
2019-05-19 9:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 14:55 [binutils-gdb] testsuite: Disable some tests when logging sergiodj+buildbot
2019-05-19 13:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 16:26 [binutils-gdb] testsuite: Add replay logging to GDBSERVER_DEBUG sergiodj+buildbot
2019-05-20 3:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 16:43 [binutils-gdb] testsuite: Remove TRANSCRIPT support sergiodj+buildbot
2019-05-20 15:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 17:00 [binutils-gdb] Constify annotate_source sergiodj+buildbot
2019-05-20 16:20 ` Failures on Debian-s390x-native-gdbserver-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-20 21:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-17 19:13 [binutils-gdb] testsuite: Add option to capture GDB debug sergiodj+buildbot
2019-05-19 12:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 7:37 [binutils-gdb] Updated translations for various binutils subdirectories sergiodj+buildbot
2019-05-21 8:34 ` Failures on Debian-s390x-native-gdbserver-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 12:49 ` Failures on Debian-s390x-native-gdbserver-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 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 16:56 [binutils-gdb] [gdb/testsuite] Require c++11 where necessary sergiodj+buildbot
2019-05-21 18:27 ` Failures on Debian-s390x-native-gdbserver-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 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-21 18:17 [binutils-gdb] AArch64: Fix -Werror on build sergiodj+buildbot
2019-05-21 23:14 ` Failures on Debian-s390x-native-gdbserver-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-22 9:58 ` Failures on Debian-s390x-native-gdbserver-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-22 10:22 ` Failures on Debian-s390x-native-gdbserver-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-22 11:17 ` Failures on Debian-s390x-native-gdbserver-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 13:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 10:41 [binutils-gdb] bfdtest1 segfaults on hppa-hp-hpux10 sergiodj+buildbot
2019-05-22 16:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 13:57 [binutils-gdb] gdb/riscv: Improve flen length determination sergiodj+buildbot
2019-05-22 23:58 ` Failures on Debian-s390x-native-gdbserver-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-23 17:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-22 18:22 [binutils-gdb] [gdb/testsuite] Add missing mi_skip_python_tests to py-mi-var-info-path-expression.exp sergiodj+buildbot
2019-05-23 17:19 ` Failures on Debian-s390x-native-gdbserver-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-23 18:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-23 20:19 [binutils-gdb] opcodes: add support for eBPF sergiodj+buildbot
2019-05-24 2:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-23 20:52 [binutils-gdb] bfd: add support for eBPF sergiodj+buildbot
2019-05-24 0:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24 2:50 [binutils-gdb] PowerPC add initial -mfuture instruction support sergiodj+buildbot
2019-05-24 4:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24 3:29 [binutils-gdb] PowerPC relocations for prefix insns sergiodj+buildbot
2019-05-24 22:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24 3:52 [binutils-gdb] PowerPC GOT_PCREL34 optimisation sergiodj+buildbot
2019-05-24 23:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-24 4:14 [binutils-gdb] PowerPC notoc linkage stubs sergiodj+buildbot
2019-05-24 23:28 ` Failures on Debian-s390x-native-gdbserver-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-27 7:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-25 0:56 [binutils-gdb] aarch64: handle STO_AARCH64_VARIANT_PCS in bfd sergiodj+buildbot
2019-05-27 7:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-25 1:22 [binutils-gdb] Regen POTFILES for bpf sergiodj+buildbot
2019-05-25 4:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-28 3:44 [binutils-gdb] Fix typo in gdb/NEWS sergiodj+buildbot
2019-05-28 4:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-28 4:24 [binutils-gdb] XCOFF linker segmentation fault sergiodj+buildbot
2019-05-28 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 0:02 [binutils-gdb] LM32 linker segmentation faults sergiodj+buildbot
2019-05-29 3:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 0:04 [binutils-gdb] Alpha-linux linker segmentation fault sergiodj+buildbot
2019-05-29 5:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 0:06 [binutils-gdb] Microblaze linker segmentation fault sergiodj+buildbot
2019-05-29 8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 0:08 [binutils-gdb] Suppress SIGTTOU when handling errors sergiodj+buildbot
2019-05-29 11:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 0:11 [binutils-gdb] include: new header ctf-api.h sergiodj+buildbot
2019-05-29 15:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 0:24 [binutils-gdb] m68k linker segmentation faults sergiodj+buildbot
2019-05-29 1:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 0:50 [binutils-gdb] libctf: build system sergiodj+buildbot
2019-06-01 10:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 1:04 [binutils-gdb] Remove find_old_style_renaming_symbol sergiodj+buildbot
2019-06-01 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 1:10 [binutils-gdb] x86: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL sergiodj+buildbot
2019-06-01 11:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 1:13 [binutils-gdb] MIPS/LD: Skip overflow check for %pcrel_hi relocations sergiodj+buildbot
2019-06-01 11:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 2:19 [binutils-gdb] libctf: opening sergiodj+buildbot
2019-05-30 3:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 3:33 [binutils-gdb] libctf: core type lookup sergiodj+buildbot
2019-05-31 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 4:16 [binutils-gdb] libctf: library version enforcement sergiodj+buildbot
2019-05-31 21:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 4:47 [binutils-gdb] libctf: labels sergiodj+buildbot
2019-06-01 6:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 4:51 [binutils-gdb] libctf: debug dumping sergiodj+buildbot
2019-06-01 8:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 5:10 [binutils-gdb] COFF linker segmentation faults sergiodj+buildbot
2019-05-29 9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 9:28 [binutils-gdb] libctf: lowest-level memory allocation and debug-dumping wrappers sergiodj+buildbot
2019-05-29 16:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 10:59 [binutils-gdb] libctf: error handling sergiodj+buildbot
2019-05-29 20:36 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 12:26 [binutils-gdb] libctf: implementation definitions related to file creation sergiodj+buildbot
2019-05-30 1:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 16:18 [binutils-gdb] libctf: ELF file opening via BFD sergiodj+buildbot
2019-05-31 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-29 19:15 [binutils-gdb] libctf: lookups by name and symbol sergiodj+buildbot
2019-05-31 16:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-30 11:54 [binutils-gdb] Revert "Sync top level files with versions from gcc." sergiodj+buildbot
2019-06-02 0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-30 16:46 [binutils-gdb] Two comment fixes in gdbtypes.h sergiodj+buildbot
2019-06-02 3:44 ` Failures on Debian-s390x-native-gdbserver-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-06-02 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-31 18:04 [binutils-gdb] Implement | (pipe) command sergiodj+buildbot
2019-06-02 23:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-31 18:34 [binutils-gdb] Add function execute_command_to_ui_file sergiodj+buildbot
2019-06-02 23:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-05-31 18:35 [binutils-gdb] NEWS and documentation for | (pipe) command sergiodj+buildbot
2019-06-03 2:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 2:58 [binutils-gdb] Remove fromhex implementation from gdbreplay sergiodj+buildbot
2019-06-03 15:48 ` Failures on Debian-s390x-native-gdbserver-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 20:59 ` Failures on Debian-s390x-native-gdbserver-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:41 ` Failures on Debian-s390x-native-gdbserver-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 23:16 ` Failures on Debian-s390x-native-gdbserver-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-04 17:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-03 22:28 [binutils-gdb] Update tests following changes to "help" and "apropos" sergiodj+buildbot
2019-06-04 19:53 ` Failures on Debian-s390x-native-gdbserver-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-04 20:28 ` Failures on Debian-s390x-native-gdbserver-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 22:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 17:11 [binutils-gdb] Add support for Intel ENQCMD[S] instructions sergiodj+buildbot
2019-06-05 0:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 17:31 [binutils-gdb] Enable Intel AVX512_VP2INTERSECT insn sergiodj+buildbot
2019-06-05 0:59 ` Failures on Debian-s390x-native-gdbserver-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-05 2:20 ` Failures on Debian-s390x-native-gdbserver-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-05 9:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 19:41 [binutils-gdb] libctf: work on platforms without O_CLOEXEC sergiodj+buildbot
2019-06-05 9:55 ` Failures on Debian-s390x-native-gdbserver-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-05 10:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 21:37 [binutils-gdb] Use CHAR_BIT instead of NBBY in libctf sergiodj+buildbot
2019-06-05 10:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 22:03 [binutils-gdb] libctf: fix use-after-free in function dumping sergiodj+buildbot
2019-06-05 4:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-04 23:38 [binutils-gdb] Introduce and use make_unique_xstrdup sergiodj+buildbot
2019-06-05 10:33 ` Failures on Debian-s390x-native-gdbserver-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 11:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-05 18:25 [binutils-gdb] libctf: eschew %zi format specifier sergiodj+buildbot
2019-06-06 11:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-06 13:19 [binutils-gdb] [LD, AArch64] Move ELF options behind -z sergiodj+buildbot
2019-06-06 15:25 ` Failures on Debian-s390x-native-gdbserver-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 17:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-06 18:15 [binutils-gdb] Add timestamps to "maint time" output sergiodj+buildbot
2019-06-06 18:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-06 19:36 [binutils-gdb] Add thread-exit annotation sergiodj+buildbot
2019-06-07 13:40 ` Failures on Debian-s390x-native-gdbserver-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 15:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-07 15:36 [binutils-gdb] libctf: avoid strndup sergiodj+buildbot
2019-06-10 8:24 ` Failures on Debian-s390x-native-gdbserver-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:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 14:44 [binutils-gdb] Delay allocation of dbx_symfile_info sergiodj+buildbot
2019-06-10 15:24 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 14:58 [binutils-gdb] Use gdbpy_enter in py-breakpoint.c sergiodj+buildbot
2019-06-10 16:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 17:18 [binutils-gdb] Add support for NetBSD/sh3 core file sections. Merge multiple copies of auxv section creation into one function sergiodj+buildbot
2019-06-10 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 18:19 [binutils-gdb] Remove newlines from warnings sergiodj+buildbot
2019-06-10 18:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-10 19:04 [binutils-gdb] [gdb/symtab] Fix symbol loading performance regression sergiodj+buildbot
2019-06-10 20:42 ` Failures on Debian-s390x-native-gdbserver-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 22:37 ` Failures on Debian-s390x-native-gdbserver-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 23:17 ` Failures on Debian-s390x-native-gdbserver-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:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-11 11:55 [binutils-gdb] [gdb/testsuite] Add readnow.exp sergiodj+buildbot
2019-06-11 12:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-11 13:14 [binutils-gdb] Remove shadowing from darwin-nat.c sergiodj+buildbot
2019-06-11 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-11 15:52 [binutils-gdb] Remove trailing newlines from help text sergiodj+buildbot
2019-06-11 16:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-12 15:03 [binutils-gdb] Dwarf: Don't add nameless modules to partial symbol table sergiodj+buildbot
2019-06-12 15:14 ` Failures on Debian-s390x-native-gdbserver-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:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-12 23:45 [binutils-gdb] opcodes/or1k: Regenerate opcodes sergiodj+buildbot
2019-06-13 0:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 1:56 [binutils-gdb] Allow "unlimited" abbreviations sergiodj+buildbot
2019-06-13 8:00 ` Failures on Debian-s390x-native-gdbserver-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 9:30 ` Failures on Debian-s390x-native-gdbserver-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 11:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 2:48 [binutils-gdb] Introduce generic command options framework sergiodj+buildbot
2019-06-13 13:42 ` Failures on Debian-s390x-native-gdbserver-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 15:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 3:01 [binutils-gdb] "set print raw frame-arguments" -> "set print raw-frame-arguments" sergiodj+buildbot
2019-06-13 17:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 3:40 [binutils-gdb] lib/completion-support.exp: Add test_gdb_completion_offers_commands sergiodj+buildbot
2019-06-15 1:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 3:56 [binutils-gdb] Make "frame apply" support -OPT options sergiodj+buildbot
2019-06-15 12:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 4:21 [binutils-gdb] Make "thread apply" use the gdb::option framework sergiodj+buildbot
2019-06-15 15:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 10:19 [binutils-gdb] Fix gdb build with -std=gnu++11 sergiodj+buildbot
2019-06-15 17:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 14:32 [binutils-gdb] sim/common: wire up new unordered comparisons sergiodj+buildbot
2019-06-15 20:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-13 15:25 [binutils-gdb] sim/testsuite/or1k: Add tests for unordered compares sergiodj+buildbot
2019-06-15 21:16 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 6:59 [binutils-gdb] Regenerate with approved autotools version sergiodj+buildbot
2019-06-15 21:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 7:17 [binutils-gdb] sim/testsuite/or1k: Add test for 64-bit fpu operations sergiodj+buildbot
2019-06-15 20:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 9:52 [binutils-gdb] Fix "set integer-command unlimited junk" sergiodj+buildbot
2019-06-15 21:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 13:09 [binutils-gdb] PowerPC comment fixes sergiodj+buildbot
2019-06-15 21:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 14:49 [binutils-gdb] Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs sergiodj+buildbot
2019-06-15 21:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 14:49 [binutils-gdb] Fix gdb.ada/vla.exp sergiodj+buildbot
2019-06-15 21:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 15:48 [binutils-gdb] Recognize _ in attribute names sergiodj+buildbot
2019-06-16 0:12 ` Failures on Debian-s390x-native-gdbserver-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-16 2:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 19:25 [binutils-gdb] Allow re-assigning to convenience variables sergiodj+buildbot
2019-06-16 1:11 ` Failures on Debian-s390x-native-gdbserver-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-16 8:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-14 23:38 [binutils-gdb] Minor NEWS rearrangement sergiodj+buildbot
2019-06-16 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-15 22:01 [binutils-gdb] gdb: Remove file path from test name sergiodj+buildbot
2019-06-16 14:15 ` Failures on Debian-s390x-native-gdbserver-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-16 14:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-15 23:31 [binutils-gdb] gdb: Remove unused parameter sergiodj+buildbot
2019-06-16 14:33 ` Failures on Debian-s390x-native-gdbserver-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 15:54 ` Failures on Debian-s390x-native-gdbserver-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 16:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16 2:06 [binutils-gdb] gdb: Don't allow annotations to influence what else GDB prints sergiodj+buildbot
2019-06-16 15:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16 16:53 [binutils-gdb] Remove some NULL checks from the TUI sergiodj+buildbot
2019-06-16 20:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-16 20:58 [binutils-gdb] Write index for dwz -m file sergiodj+buildbot
2019-06-17 4:13 ` Failures on Debian-s390x-native-gdbserver-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-17 18:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-17 18:56 [binutils-gdb] aarch64: remove unnecessary loc_hash_table traversal sergiodj+buildbot
2019-06-17 19:45 ` Failures on Debian-s390x-native-gdbserver-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 20:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18 2:06 [binutils-gdb] PR gdb/24364: Don't call dtrace_process_dof with NULL dof sergiodj+buildbot
2019-06-18 7:24 ` Failures on Debian-s390x-native-gdbserver-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 16:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18 16:46 [binutils-gdb] [gdb/testsuite] Break up long debug_flags line in fission.exp sergiodj+buildbot
2019-06-18 17:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18 17:21 [binutils-gdb] Add comment to list0.h sergiodj+buildbot
2019-06-18 18:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-18 18:53 [binutils-gdb] [gdb/testsuite] Use -fuse-ld=gold in fission.exp sergiodj+buildbot
2019-06-19 4:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19 5:18 [binutils-gdb] gdb: Remove use of deprecated_interactive_hook sergiodj+buildbot
2019-06-19 8:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19 12:58 [binutils-gdb] Instantiate a single source highlighter sergiodj+buildbot
2019-06-19 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19 14:38 [binutils-gdb] Fix crash when setting breakpoint condition sergiodj+buildbot
2019-06-19 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-19 17:31 [binutils-gdb] [gdb] Fix build breaker with gcc 4.8 sergiodj+buildbot
2019-06-20 5:03 ` Failures on Debian-s390x-native-gdbserver-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 9:46 ` Failures on Debian-s390x-native-gdbserver-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:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-21 7:56 [binutils-gdb] [gdbserver] Fix s390x -m31 gdbserver build sergiodj+buildbot
2019-06-21 12:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-06-21 12:52 [binutils-gdb] PR24689, string table corruption sergiodj+buildbot
2019-06-21 13:27 ` Failures on Debian-s390x-native-gdbserver-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 17:46 ` Failures on Debian-s390x-native-gdbserver-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 18:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master sergiodj+buildbot
2019-08-21 21:57 [binutils-gdb] Fix nullptr in with_command_1 gdb-buildbot
2019-08-21 22:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 5:38 [binutils-gdb] ARM CMSE symbols gdb-buildbot
2019-08-22 9:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 11:36 [binutils-gdb] AArch64: Fix LD crash on weak and undefined TLS symbols. (PR/24602) gdb-buildbot
2019-08-22 12:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 12:18 [binutils-gdb] gdb/fortran: Remove some dead code from the parser gdb-buildbot
2019-08-22 13:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 14:33 [binutils-gdb] Fix an illegal memory access when dumping corrupt x86_64 PE unwind data gdb-buildbot
2019-08-22 14:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 15:14 [binutils-gdb] Arm: Add support for missing CPUs gdb-buildbot
2019-08-22 16:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 16:40 [binutils-gdb] [gdb/testsuite] Make gdb_test message more informative in multi-term-settings.exp gdb-buildbot
2019-08-22 18:12 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-22 23:24 [binutils-gdb] Make GDB compile with Python 3 on MinGW gdb-buildbot
2019-08-23 4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 10:41 [binutils-gdb] PR24933, Memory leak in elf_x86_64_get_synthetic_symtab gdb-buildbot
2019-08-23 12:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 13:01 [binutils-gdb] Stop the BFD library from failing when encountering a second set of relocs for the same section gdb-buildbot
2019-08-23 13:42 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 14:14 [binutils-gdb] or1k: Fix incorrect value in PLT GOT entries, causing infinite loop gdb-buildbot
2019-08-23 15:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 16:00 [binutils-gdb] Fix bug in nios2 prologue analysis gdb-buildbot
2019-08-23 17:54 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-23 18:28 [binutils-gdb] Move gdb-dlfcn.[ch] to gdbsupport/ gdb-buildbot
2019-08-24 0:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-24 1:17 [binutils-gdb] PowerPC64 segfault in ppc64_elf_edit_toc gdb-buildbot
2019-08-24 22:07 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-24 22:23 [binutils-gdb] Fix compile warning in symtab.c gdb-buildbot
2019-08-25 9:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-25 11:38 [binutils-gdb] Convert the RX target to make use of target descriptions gdb-buildbot
2019-08-25 12:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-25 23:11 [binutils-gdb] dwarf2read: replace gdb::optional<bool> with enum gdb-buildbot
2019-08-26 2:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 2:14 [binutils-gdb] dwarf2read: fix compilation issue with gcc 4.8 gdb-buildbot
2019-08-26 13:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 13:56 [binutils-gdb] Use raw strings on gdb.python/py-xmethods.exp (and fix Python 3.8's "SyntaxWarning: invalid escape sequence") gdb-buildbot
2019-08-26 17:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 17:29 [binutils-gdb] [gdb/testsuite] Make skip_libstdcxx_probe_tests return 1 if true gdb-buildbot
2019-08-26 18:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 18:01 [binutils-gdb] [gdb, c++] Improve error message when using libstdcxx without SDT probes gdb-buildbot
2019-08-26 19:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-26 22:05 [binutils-gdb] Factor out the common code in lookup_{static,global}_symbol gdb-buildbot
2019-08-27 5:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-27 11:48 [binutils-gdb] Add support for the MVE VMOV instruction to the ARM assembler. This instruction copies the value of one vector register to another vector register. The patch also modifies the decoding of VORR instruction which is effecting decoding of VMOV instruction gdb-buildbot
2019-08-27 15:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-27 16:22 [binutils-gdb] gdb: Add new -n flag to some info commands gdb-buildbot
2019-08-27 16:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-27 19:31 [binutils-gdb] Fix compiler warning in linux-namespaces.c gdb-buildbot
2019-08-28 12:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 13:33 [binutils-gdb] gdb/fortran: Implement la_print_typedef for Fortran gdb-buildbot
2019-08-28 13:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 13:58 [binutils-gdb] gdb/fortran: Don't include module symbols when searching for types gdb-buildbot
2019-08-28 15:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 15:15 [binutils-gdb] Fix Gnulib glob.c resource leaks found by Coverity gdb-buildbot
2019-08-28 16:30 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-28 17:56 [binutils-gdb] [gdb/testsuite] Fix info-var.exp for debug info from other files gdb-buildbot
2019-08-28 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 0:55 [binutils-gdb] PR24891, objdump memory leaks when parsing malformed archive gdb-buildbot
2019-08-29 1:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 1:25 [binutils-gdb] RISC-V: Fix a gp relaxation reloc overflow error gdb-buildbot
2019-08-29 2:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 4:31 [binutils-gdb] PowerPC64 xlate_pcrel_opt gdb-buildbot
2019-08-29 11:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 12:16 [binutils-gdb] PR24697, R_PPC_EMB_SDA21 cannot be used when making a shared object gdb-buildbot
2019-08-29 13:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 13:44 [binutils-gdb] [gdb/testsuite] Fix gdb.fortran/info-types.exp regexp gdb-buildbot
2019-08-29 16:44 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 17:21 [binutils-gdb] Fix PR win32/24284: tcp_auto_retry doesn't work in MinGW gdb-buildbot
2019-08-29 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-29 22:28 [binutils-gdb] Run argv0-symlink.exp only on native target and local host gdb-buildbot
2019-08-30 8:53 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 9:11 [binutils-gdb] [ARC] [COMMITTED] Fix FASTMATH field gdb-buildbot
2019-08-30 15:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 15:17 [binutils-gdb] Copy BFD_COMPRESS/BFD_DECOMPRESS/BFD_COMPRESS_GABI for thin archive gdb-buildbot
2019-08-30 19:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 19:52 [binutils-gdb] Remove NO_DATA_STRING gdb-buildbot
2019-08-30 20:28 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 20:53 [binutils-gdb] Remove tui_data_window::display_all_data gdb-buildbot
2019-08-30 21:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 21:05 [binutils-gdb] Remove some checks of .empty() gdb-buildbot
2019-08-30 22:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 21:37 [binutils-gdb] Remove some calls in tui_data_window gdb-buildbot
2019-08-30 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 22:10 [binutils-gdb] Private data members in tui_data_window gdb-buildbot
2019-08-31 0:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 22:32 [binutils-gdb] Simplify register display gdb-buildbot
2019-08-31 1:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 23:36 [binutils-gdb] Remove NULL checks from box_win gdb-buildbot
2019-08-31 2:20 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-30 23:43 [binutils-gdb] Don't call touchwin in tui_gen_win_info::refresh_window gdb-buildbot
2019-08-31 3:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 0:20 [binutils-gdb] Don't call tui_refresh_all from show_layout gdb-buildbot
2019-08-31 4:08 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 1:42 [binutils-gdb] Turn two locator functions into methods gdb-buildbot
2019-08-31 4:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 2:53 [binutils-gdb] Minor rearrangement of tui-stack.c gdb-buildbot
2019-08-31 8:00 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 3:30 [binutils-gdb] Don't call wrefresh from tui_cont_sig gdb-buildbot
2019-08-31 8:43 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 4:56 [binutils-gdb] Remove "\nError: " suffix from nat/fork-inferior.c:trace_start_error warning message gdb-buildbot
2019-08-31 10:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 5:12 [binutils-gdb] RISC-V: Force linker error exit after unresolvable reloc gdb-buildbot
2019-08-31 12:10 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 5:30 [binutils-gdb] Swap tui_show_locator_content and tui_locator_window::rerender gdb-buildbot
2019-08-31 5:57 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 6:20 [binutils-gdb] Make tui_locator_window::set_locator_fullname re-render gdb-buildbot
2019-08-31 7:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-08-31 9:14 [binutils-gdb] Remove tui_win_info::refresh_all gdb-buildbot
2019-08-31 9:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-01 6:49 [binutils-gdb] RISC-V: Fix linker problems with tls copy relocs gdb-buildbot
2019-09-01 8:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02 8:27 [binutils-gdb] Re: Memory leak in dwarf2.c gdb-buildbot
2019-09-02 9:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02 14:04 [binutils-gdb] Refactor svr4_create_solib_event_breakpoints gdb-buildbot
2019-09-02 14:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02 15:09 [binutils-gdb] Use gdbarch for probe::get_argument_count gdb-buildbot
2019-09-02 15:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-02 15:29 [binutils-gdb] Check arguments for all probes before using them gdb-buildbot
2019-09-02 17:26 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-03 9:35 [binutils-gdb] Fix a potential buffer overrun in the MMIX disassembler when processing a corrupt input file gdb-buildbot
2019-09-03 14:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-03 15:14 [binutils-gdb] Fix buffer underrun bug in the TI C30 disassembler gdb-buildbot
2019-09-03 16:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-03 17:01 [binutils-gdb] Handle biased types gdb-buildbot
2019-09-03 21:46 ` Failures on Debian-s390x-native-gdbserver-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-04 2:54 ` Failures on Debian-s390x-native-gdbserver-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-05 1:17 ` Failures on Debian-s390x-native-gdbserver-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 6:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-05 5:56 [binutils-gdb] R_PPC64_PCREL_OPT gdb-buildbot
2019-09-05 6:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-05 7:02 [binutils-gdb] PowerPC64 GOT_PCREL relocs gdb-buildbot
2019-09-05 9:23 ` Failures on Debian-s390x-native-gdbserver-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-06 2:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-06 14:26 [binutils-gdb] bfd_get_filename gdb-buildbot
2019-09-06 19:48 ` Failures on Debian-s390x-native-gdbserver-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 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-06 21:56 [binutils-gdb] un-XFAIL under Clang tests using labels gdb-buildbot
2019-09-07 2:06 ` Failures on Debian-s390x-native-gdbserver-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-08 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-08 20:44 [binutils-gdb] Truncate long TUI window titles gdb-buildbot
2019-09-09 9:46 ` Failures on Debian-s390x-native-gdbserver-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 22:05 ` Failures on Debian-s390x-native-gdbserver-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 23:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-09 23:50 [binutils-gdb] Use ui_out for "info win" gdb-buildbot
2019-09-10 1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 2:15 [binutils-gdb] DWARF 5 support: Handle dwo_id gdb-buildbot
2019-09-10 14:36 ` Failures on Debian-s390x-native-gdbserver-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:40 ` Failures on Debian-s390x-native-gdbserver-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 16:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 15:39 [binutils-gdb] Change iterate_over_symbols to return bool gdb-buildbot
2019-09-10 18:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 15:52 [binutils-gdb] Simplify psym_map_matching_symbols gdb-buildbot
2019-09-10 18:55 ` Failures on Debian-s390x-native-gdbserver-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 19:47 ` Failures on Debian-s390x-native-gdbserver-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 20:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-10 16:33 [binutils-gdb] Add Ada support for .debug_names gdb-buildbot
2019-09-10 21:45 ` Failures on Debian-s390x-native-gdbserver-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 22:44 ` Failures on Debian-s390x-native-gdbserver-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-11 0:04 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 7:07 [binutils-gdb] Tidy ld/ldmisc.c gdb-buildbot
2019-09-11 9:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 18:15 [binutils-gdb] Introduce bfd_set_filename gdb-buildbot
2019-09-11 19:04 ` Failures on Debian-s390x-native-gdbserver-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 20:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 19:49 [binutils-gdb] Fix float to LONGEST conversion gdb-buildbot
2019-09-11 21:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-11 22:11 [binutils-gdb] Refactor get_init_files to use std::string gdb-buildbot
2019-09-12 2:35 ` Failures on Debian-s390x-native-gdbserver-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-12 5:34 ` Failures on Debian-s390x-native-gdbserver-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 6:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-12 9:22 [binutils-gdb] Fix signals reported for faults on Solaris gdb-buildbot
2019-09-12 10:41 ` Failures on Debian-s390x-native-gdbserver-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 21:54 ` Failures on Debian-s390x-native-gdbserver-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-13 1:03 ` Failures on Debian-s390x-native-gdbserver-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 2:52 ` Failures on Debian-s390x-native-gdbserver-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 3:05 ` Failures on Debian-s390x-native-gdbserver-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 4:32 ` Failures on Debian-s390x-native-gdbserver-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 5:23 ` Failures on Debian-s390x-native-gdbserver-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-16 10:15 ` Failures on Debian-s390x-native-gdbserver-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 11:41 ` Failures on Debian-s390x-native-gdbserver-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 12:04 ` Failures on Debian-s390x-native-gdbserver-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 20:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-17 20:17 [binutils-gdb] gdb: Catch exceptions when accessing source cache gdb-buildbot
2019-09-17 21:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-17 21:49 [binutils-gdb] gdb: Look for compilation directory relative to directory search path gdb-buildbot
2019-09-17 23:27 ` Failures on Debian-s390x-native-gdbserver-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 2:08 ` Failures on Debian-s390x-native-gdbserver-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 11:25 ` Failures on Debian-s390x-native-gdbserver-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 14:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 13:33 [binutils-gdb] Use bfd_set_filename more gdb-buildbot
2019-09-18 15:16 ` Failures on Debian-s390x-native-gdbserver-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 16:22 ` Failures on Debian-s390x-native-gdbserver-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 16:52 ` Failures on Debian-s390x-native-gdbserver-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 17:52 ` Failures on Debian-s390x-native-gdbserver-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 19:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 14:30 [binutils-gdb] bfd_asymbol_* macros gdb-buildbot
2019-09-18 19:45 ` Failures on Debian-s390x-native-gdbserver-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 20:57 ` Failures on Debian-s390x-native-gdbserver-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 21:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 19:50 [binutils-gdb] gdb: Fix native build on Linux/Alpha gdb-buildbot
2019-09-18 22:36 ` Failures on Debian-s390x-native-gdbserver-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 23:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-18 23:45 [binutils-gdb] [gdb/testsuite] Fix gdb_target_cmd gdb-buildbot
2019-09-19 1:50 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-19 1:02 [binutils-gdb] bfd_section_* macros gdb-buildbot
2019-09-19 3:21 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-19 18:20 [binutils-gdb] [gdb] Catch exception when constructing the highlighter gdb-buildbot
2019-09-19 21:52 ` Failures on Debian-s390x-native-gdbserver-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-20 0:25 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 0:39 [binutils-gdb] Declare dwarf_always_disassemble in dwarf2read.h gdb-buildbot
2019-09-20 1:48 ` Failures on Debian-s390x-native-gdbserver-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 3:01 ` Failures on Debian-s390x-native-gdbserver-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 4:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 7:59 [binutils-gdb] PowerPC64, error on unsupported dynamic relocation gdb-buildbot
2019-09-20 8:55 ` Failures on Debian-s390x-native-gdbserver-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 10:19 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 9:09 [binutils-gdb] bfd macro conversion to inline functions gdb-buildbot
2019-09-20 10:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 9:27 [binutils-gdb] bfd macro conversion to inline functions, asymbol gdb-buildbot
2019-09-20 13:18 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 9:43 [binutils-gdb] bfd macro conversion to inline functions, section gdb-buildbot
2019-09-20 14:14 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 19:53 [binutils-gdb] Fix crash in Ada "catch exception" gdb-buildbot
2019-09-20 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 20:49 [binutils-gdb] Remove tui_clear_source_windows_detail gdb-buildbot
2019-09-20 21:39 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:04 [binutils-gdb] Change tui_source_element::line to be a unique_xmalloc_ptr gdb-buildbot
2019-09-20 22:33 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:15 [binutils-gdb] Move "fullname" to tui_source_window gdb-buildbot
2019-09-20 23:35 ` Failures on Debian-s390x-native-gdbserver-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-21 0:40 ` Failures on Debian-s390x-native-gdbserver-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-21 1:37 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 21:56 [binutils-gdb] Remove some explicit re-rendering from the TUI gdb-buildbot
2019-09-21 2:32 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:05 [binutils-gdb] Simplify tui_source_window_base::show_source_content gdb-buildbot
2019-09-21 3:47 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:25 [binutils-gdb] Simplify TUI disassembly gdb-buildbot
2019-09-21 4:35 ` Failures on Debian-s390x-native-gdbserver-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-21 5:38 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:45 [binutils-gdb] Change "win_resized" to bool gdb-buildbot
2019-09-21 6:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 22:59 [binutils-gdb] Set TUI locator height to 1 gdb-buildbot
2019-09-21 7:27 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 23:08 [binutils-gdb] Don't call refresh in tui_resize_all gdb-buildbot
2019-09-21 8:30 ` Failures on Debian-s390x-native-gdbserver-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-21 9:34 ` Failures on Debian-s390x-native-gdbserver-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-21 10:35 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-20 23:46 [binutils-gdb] Rename private data members of tui_data_window gdb-buildbot
2019-09-21 11:27 ` Failures on Debian-s390x-native-gdbserver-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-21 12:06 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21 0:13 [binutils-gdb] Remove strcat_to_buf gdb-buildbot
2019-09-21 13:03 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21 0:26 [binutils-gdb] Remove separator comments from TUI gdb-buildbot
2019-09-21 14:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21 0:43 [binutils-gdb] Use make_unique_xstrdup in TUI gdb-buildbot
2019-09-21 15:27 ` Failures on Debian-s390x-native-gdbserver-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 15:58 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-21 1:04 [binutils-gdb] Remove Cell Broadband Engine debugging support gdb-buildbot
2019-09-21 18:43 ` Failures on Debian-s390x-native-gdbserver-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 20:26 ` Failures on Debian-s390x-native-gdbserver-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 23:24 ` Failures on Debian-s390x-native-gdbserver-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-22 0:12 ` Failures on Debian-s390x-native-gdbserver-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-22 1:01 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-22 0:17 [binutils-gdb] gdb: change "nonzero" to "true" in comments gdb-buildbot
2019-09-22 2:09 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-22 0:41 [binutils-gdb] gdb: make watchpoint::val_valid a bool gdb-buildbot
2019-09-22 3:17 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-22 2:47 [binutils-gdb] gdb: fix formatting in solib-svr4.c gdb-buildbot
2019-09-22 4:13 ` Failures on Debian-s390x-native-gdbserver-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:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 1:25 [binutils-gdb] csky bfd.h tidy gdb-buildbot
2019-09-23 2:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 1:37 [binutils-gdb] mips bfd.h tidy gdb-buildbot
2019-09-23 3:11 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 1:59 [binutils-gdb] v850 bfd.h tidy gdb-buildbot
2019-09-23 4:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 2:01 [binutils-gdb] ia64 bfd.h tidy gdb-buildbot
2019-09-23 5:23 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 2:13 [binutils-gdb] h8300 bfd.h tidy gdb-buildbot
2019-09-23 6:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 2:50 [binutils-gdb] tic6x bfd.h tidy gdb-buildbot
2019-09-23 9:13 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 3:03 [binutils-gdb] arm bfd.h tidy gdb-buildbot
2019-09-23 9:48 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 3:14 [binutils-gdb] coff bfd.h tidy gdb-buildbot
2019-09-23 10:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 3:27 [binutils-gdb] xcoff bfd.h tidy gdb-buildbot
2019-09-23 12:05 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 3:37 [binutils-gdb] obsoleted bfd.h tidy gdb-buildbot
2019-09-23 13:40 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 3:51 [binutils-gdb] cr16 bfd.h tidy gdb-buildbot
2019-09-23 14:31 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 4:12 [binutils-gdb] bfin bfd.h tidy gdb-buildbot
2019-09-23 14:41 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 4:13 [binutils-gdb] m68k bfd.h tidy gdb-buildbot
2019-09-23 16:02 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 4:36 [binutils-gdb] elf bfd.h tidy gdb-buildbot
2019-09-23 16:51 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 4:36 [binutils-gdb] ecoff bfd.h tidy gdb-buildbot
2019-09-23 17:45 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 4:45 [binutils-gdb] linker bfd.h tidy gdb-buildbot
2019-09-23 18:34 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 5:57 [binutils-gdb] bfd Makefile update gdb-buildbot
2019-09-23 19:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 15:16 [binutils-gdb] PowerPC64 dynamic symbol tweaks gdb-buildbot
2019-09-23 20:26 ` Failures on Debian-s390x-native-gdbserver-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 21:29 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 21:43 [binutils-gdb] sim: Add PRU simulator port gdb-buildbot
2019-09-23 23:22 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-23 22:26 [binutils-gdb] gdb/readline: fix use of an undefined variable gdb-buildbot
2019-09-24 1:43 ` Failures on Debian-s390x-native-gdbserver-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-25 0:52 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-25 16:37 [binutils-gdb] Remove make_hex_string gdb-buildbot
2019-09-25 19:31 ` Failures on Debian-s390x-native-gdbserver-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 13:59 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 14:43 [binutils-gdb] Remove initialize_utils gdb-buildbot
2019-09-26 14:56 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 15:01 [binutils-gdb] Do not expose stub types to Python gdb-buildbot
2019-09-26 16:49 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
2019-09-26 15:42 [binutils-gdb] Remove gdb_usleep.c gdb-buildbot
2019-09-26 17:12 ` Failures on Debian-s390x-native-gdbserver-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 20:55 ` Failures on Debian-s390x-native-gdbserver-m64, branch master gdb-buildbot
[not found] <@gdb-build>
2018-12-07 12:54 ` sergiodj+buildbot
2019-09-27 10:02 ` gdb-buildbot
2019-09-27 10:24 ` 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).