mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 02:24:46 +08:00
f80cb3b46a
When running test-case gdb.dwarf2/gdb-index.exp cleanly by issuing this command: ... $ rm -Rf build/gdb/testsuite/outputs/gdb.dwarf2/gdb-index ... before running, it passes both with native and target board cc-with-gdb-index. But when we run the test-case first with native and then with cc-with-gdb-index without intermediate cleanup, we get instead: ... Running src/gdb/testsuite/gdb.dwarf2/gdb-index.exp ... gdb compile failed, cc-with-tweaks.sh: Index file \ build/gdb/testsuite/outputs/gdb.dwarf2/gdb-index/gdb-index.gdb-index \ exists, won't clobber. === gdb Summary === # of untested testcases 1 ... What happens is that the native run produces a file build/gdb/testsuite/outputs/gdb.dwarf2/gdb-index/gdb-index.gdb-index, which causes gdb/contrib/cc-with-tweaks.sh to hit this code: ... index_file="${output_file}.gdb-index" if [ "$want_index" = true ] && [ -f "$index_file" ] then echo "$myname: Index file $index_file exists, won't clobber." >&2 exit 1 fi ... The gdb-add-index script has a problem that it uses temp files alongside the executable, filed as PR25843. The code in cc-with-tweaks.sh attempts to detect the case that creating such a temp file would overwrite an pre-existing file. It however does this only for a single file, while gdb-add-index uses more temporary files: - <exec>.gdb-index - <exec>.debug_names - <exec>.debug_str - <exec>.debug_str.merge - <exec>.debug_str.err Fix this by working around PR25843 in a more generic way: - move the executable into a temp directory - execute gdb-add-index, allowing it to create any temp file alongside the executable in the temp directory - move the executable back to the original location Tested on x86_64-linux, with target board cc-with-debug-index. gdb/ChangeLog: 2020-04-24 Tom de Vries <tdevries@suse.de> * contrib/cc-with-tweaks.sh: Remove <exec>.gdb-index file handling. Run gdb-add-index inside temp dir. |
||
---|---|---|
.. | ||
ari | ||
cc-with-tweaks.sh | ||
expect-read1.c | ||
expect-read1.sh | ||
gdb-add-index.sh | ||
test_pubnames_and_indexes.py | ||
words.sh |