MIPS TLS relocation assembly code invalid from GCC-4.1...
Jim Wilson
wilson@specifix.com
Mon Oct 24 01:01:00 GMT 2005
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
More information about the Gcc
mailing list