Change how versioned symbols are recorded
authorTom Tromey <tromey@adacore.com>
Tue, 3 Aug 2021 18:42:43 +0000 (12:42 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 5 Jan 2022 17:44:53 +0000 (10:44 -0700)
commit28a4e64dd1b17b0d9f267c3466d7da3e8a41afd8
tree21c1eeea078734080beb0abcef03b8d9efbd40ef
parent72df4c816f8a2c6dfb76988ccceee28e28bbaa3d
Change how versioned symbols are recorded

A change to BFD caused a gdb regression when using the Ada "catch
exception" feature.  The bug is visible when a shared library throws
an exception that is caught in the main executable.

This was discussed here:

https://sourceware.org/pipermail/binutils/2021-July/117538.html

This patch implements Alan's proposed fix, namely to use VERSYM_HIDDEN
rather than the name when deciding to install a version-less symbol.

The internal test case is identical to the catch_ex_std.exp that is
in-tree, so I haven't added a new test.  I could not make that one
fail on x86-64 Linux, though.  It's possible that maybe I'd have to
update the system linker first, but I didn't want to try that.

Regression tested on x86-64 Fedora 32.
gdb/elfread.c