Steps to reproduce: cat >> test.c <<EOF __thread int foo; void bar (void) { foo = 2; } EOF hppa64-linux-gnu-gcc-4.3.1 -S test.c test.c: In function 'bar': test.c:5: error: unrecognizable insn: (insn 6 5 7 3 test.c:4 (set (reg:DI 67) (unspec:SI [ (const_int 0 [0x0]) ] 3)) -1 (nil)) test.c:5: internal compiler error: in extract_insn, at recog.c:1990 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Expected: - Compiler correctly compiles the code. Observed: - ICE trying to compile code with __thread keyword. hppa does have support for thread local storage, but it's never been tested on the 64-bit compiler. I came across this error while trying to port glibc to hppa64-linux-gnu during a 64-bit userspace bring-up.
Subject: Re: New: Failure to compile __thread variable. > hppa64-linux-gnu-gcc-4.3.1 -S test.c There is no TLS support for the 64-bit compiler. This is an enhancement request. Dave
Yes, I just realized there were no TARGET_64BIT TLS patterns in config/pa/pa.md. I'm closing the bug as invalid. I'll take this up seperately. We'll have to define call sequences for the 64-bit address loads etcs.