Steven J. Hill wrote:
GCC guts, but could not figure out why I get the symbolic register
representations in the glibc compiled code and not in my stuff. Can

Those aren't symbolic registers. Those are variable names. Try looking at the input file tst-tls10.c, and notice that it has variable names a1, a2, and a3. So somehow, in your output, the variable name a1 got replaced with the register name $5, which won't work.

It is a very bad idea to try to use register names that are indistinguishable from variable names. One of them must have a prefix and/or postfix to avoid ambiguity.

Maybe you have a macro somewhere that is trying to define a1 to $5? This should only be an issue if you are trying to preprocess .s output though.

Or maybe you are using a compiler option to change register names? -mrname was removed in gcc-4.0, and I'm skeptical that this could cause the failure that you are seeing.

Or maybe there is just a bug in the mips uclib tls support.
--
Jim Wilson, GNU Tools Support, http://www.specifix.com

Reply via email to