This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gold patch] Fix problem with TLS symbols when using LTO


The plugin API doesn't provide a way to mark a symbol as TLS, and gold
will complain about a symbol being "used as both __thread and
non-__thread" if the TLS symbol is referenced in a regular .o file and
in an IR file. This patch fixes the problem by ignoring the symbol
type when it comes from a plugin.

Tested on x86_64 and committed.

-cary


2013-06-14  Cary Coutant  <ccoutant@google.com>

gold/
        * resolve.cc (Symbol::override_base): Don't override st_type
        from plugin placeholder symbols.
        (Symbol_table::resolve): Likewise.
        (Symbol_table::should_override): Don't complain about TLS mismatch
        if the TO symbol is a plugin placeholder.
        * testsuite/Makefile.am (plugin_test_tls): New test.
        * testsuite/Makefile.in: Regenerate.
        * testsuite/plugin_test_tls.sh: New test script.
        * testsuite/two_file_test_2_tls.cc: New test source.
        * testsuite/two_file_test_tls.cc: New test source.

Attachment: gold-plugin-tls-patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]