Files
clang-p2996/lld/test/ELF
Fangrui Song e32f04cdc9 [ELF] Parse SHT_GNU_verneed and respect versioned undefined symbols in shared objects
An undefined symbol in a shared object can be versioned, like `f@v1`.
We currently insert `f` as an Undefined into the symbol table, but we
should insert `f@v1` instead.

The string `v1` is inferred from SHT_GNU_versym and SHT_GNU_verneed.
This patch implements the functionality.

Failing to do this can cause two issues:

* If a versioned symbol referenced by a shared object is defined in the
  executable, we will fail to export it.
* If a versioned symbol referenced by a shared object in another object
  file, --no-allow-shlib-undefined may spuriously report an
  "undefined reference to " error. See https://bugs.llvm.org/show_bug.cgi?id=44842
  (Linking -lfftw3 -lm on Arch Linux can cause
  `undefined reference to __log_finite`)

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D80059
2020-05-23 09:55:48 -07:00
..
2019-07-22 11:37:03 +00:00
2020-03-27 11:56:02 -07:00
2020-03-27 11:56:02 -07:00
2020-03-31 12:41:18 +01:00
2019-09-07 10:42:11 +00:00
2019-09-07 10:42:11 +00:00
2020-03-27 11:56:02 -07:00
2020-04-13 19:32:44 -05:00
2019-08-01 09:25:34 +00:00
2019-09-07 10:42:11 +00:00
2019-07-25 07:12:23 +00:00
2019-09-07 10:42:11 +00:00
2019-09-07 10:42:11 +00:00
2019-02-06 01:00:49 +00:00
2019-09-07 10:42:11 +00:00