[PR gdb/27614] gdb-add-index fails on symlinks.
authorLancelot SIX <lsix@lancelotsix.com>
Wed, 24 Mar 2021 23:55:25 +0000 (23:55 +0000)
committerLancelot SIX <lsix@lancelotsix.com>
Mon, 10 May 2021 22:14:41 +0000 (23:14 +0100)
commitdb1f6cd692cac4818e16f9e3b43ee7802b079d1c
tree7e133a4f0cf754f52b11c23fd25e2c8d5d777a7e
parentb397aef4cd054724fef9fec381f6ca97b52c884e
[PR gdb/27614] gdb-add-index fails on symlinks.

PR 27614 shows that gdb-add-index fails to generate the index when its
argument is a symlink.

The following one liner illustrates the reported problem:

        $ echo 'int main(){}'|gcc -g -x c -;ln -s a.out symlink;gdb-add-index symlink
        gdb-add-index: No index was created for symlink
        gdb-add-index: [Was there no debuginfo? Was there already an index?]
        $ ls -l
        -rwxr-xr-x 1 25712 Mar 19 23:05 a.out*
        -rw------- 1  8277 Mar 19 23:05 a.out.gdb-index
        lrwxrwxrwx 1     5 Mar 19 23:05 symlink -> a.out*

GDB generates the .gdb-index file with a name that matches the name of
the actual program (a.out.gdb-index here), not the symlink that
references it.  The remaining of the script is looking for a file named
after the provided argument (would be 'symlink.gdb-index' in our
example).

gdb/ChangeLog:

PR gdb/27614
* contrib/gdb-add-index.sh: Fix when called with a symlink as an
argument.

gdb/testsuite/ChangeLog:

PR gdb/27614
* gdb.dwarf2/gdb-add-index-symlink.exp: New test.
gdb/ChangeLog
gdb/contrib/gdb-add-index.sh
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp [new file with mode: 0644]