aboutsummaryrefslogtreecommitdiff
path: root/ld/ldbuildid.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@gmail.com>2016-03-21 19:07:55 -0700
committerCary Coutant <ccoutant@gmail.com>2016-03-21 21:42:15 -0700
commit648c5cbbf34dcbf96bde7e07b14868777fd5d635 (patch)
treeb2d83b9ce51b0a3d3d84601c675f606b89134520 /ld/ldbuildid.h
parent6f4c0a426c653867c40936a9b8f503628adbd64b (diff)
downloadgdb-648c5cbbf34dcbf96bde7e07b14868777fd5d635.zip
gdb-648c5cbbf34dcbf96bde7e07b14868777fd5d635.tar.gz
gdb-648c5cbbf34dcbf96bde7e07b14868777fd5d635.tar.bz2
Fix problem where gold fails to issue an undefined symbol error during LTO.
During LTO, if (1) an IR file contains a COMDAT group that is kept, (2) a later non-claimed file contains the same group, which we discard, and (3) the plugin fails to provide a definition of the symbols in that COMDAT group, gold silently resolves any references to those symbols to 0. This patch adds a check for a placeholder symbol when deciding whether to issue an undefined symbol error. It also adds an extra note after any undefined placeholder symbol error that explains that a definition was expected from the plugin. gold/ PR gold/19842 * errors.cc (Errors::undefined_symbol): Add info message when symbol should have been provided by a plugin. * target-reloc.h (issue_undefined_symbol_error): Check for placeholder symbols defined in discarded sections. * testsuite/Makefile.am (plugin_test_9b): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/plugin_test_9b_elf.cc: New test source file. * testsuite/plugin_test_9b_ir.cc: New test source file.
Diffstat (limited to 'ld/ldbuildid.h')
0 files changed, 0 insertions, 0 deletions