This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: MIPS TLS relocation assembly code invalid from GCC-4.1...
- From: Jim Wilson <wilson at specifix dot com>
- To: "Steven J. Hill" <sjhill at realitydiluted dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 23 Oct 2005 15:07:40 -0700
- Subject: Re: MIPS TLS relocation assembly code invalid from GCC-4.1...
- References: <435A8D7F.4060301@realitydiluted.com>
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