Changes between Initial Version and Version 1 of Ticket #12430, comment 13


Ignore:
Timestamp:
Nov 9, 2015 5:32:52 AM (4 years ago)
Author:
jessicah
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #12430, comment 13

    initial v1  
    11FYI, the change to the -shared flag being passed onto `ld` has broken Haiku's TLS support when building gcc4 on Haiku.
     2
     3As a result of the changes, gcc generates R_386_TLS_TPOFF32 relocations in the configure test for TLS, instead of previously R_386_TLS_DTPMOD32 & R_386_TLS_DTPOFF32. Currently, runtime_loader doesn't support R_386_TLS_TPOFF32 relocations. Due to the failed test, libstdc++.so generates different symbols (e.g. no std::__once_call), which breaks apps that use TLS (WebPositive being one).
     4
     5Example test:
     6{{{
     7__thread int a;
     8int b;
     9int main() {
     10  return a = b;
     11}
     12}}}
     13
     14My only change to gcc/config/i386/haiku.h: `s/%{shared:-shared;/%{!r:-shared;/` which was enough to make TLS support work again, but obviously isn't ideal.