This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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]

Re: libmudflap and emutls question


Hi Paolo,

Paolo Bonzini wrote:
Both are same.

Ah, I see, the call is optimized out because __emutls_get_address is const. You can try

  __thread int a;
  int main () {
    return *(int *)__emutls_get_address ((void *)0) == a;
  }

I don't have an emutls target at hand, but it does fail on Linux.

Which version of gcc did you use? gcc 4.1 (maybe and 4.2) will report error. But gcc 4.3 compiles OK. I tested using x86_64 native gcc from Debian unstable. __emutls_get_address is defined in libgcc even the target has real TLS.

/usr/lib/gcc/x86_64-linux-gnu$ readelf -a ./4.3/libgcc_s.so | grep emutls
28: 0000000000013a80 390 FUNC GLOBAL DEFAULT 12 __emutls_get_address@@GCC_4.3.0
136: 0000000000013970 57 FUNC GLOBAL DEFAULT 12 __emutls_register_common@@GCC_4.3.0



Regards, Jie


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