On 17-Oct-11, at 2:10 PM, John David Anglin wrote:
The cancellation issues happen in tst-cancel*.
I believe the cancellation issues are toolchain issues and I need to
look into them.
Possibly, this is related to the following bug that I found last
week building mpfr-3.1.0:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50691
A call to __tls_get_addr clobbers first argument of call to
mpfr_cache. Don't have a
fix at the moment, but there is a simple testcase.
I looked at this a bit. The problem is legitimize_tls_address doesn't
work properly.
First, GCC doesn't know that the libcall needs r26 and ret0 when the
__thread variable
is an argument to a call. Secondly, the implementation of
__tls_get_addr clobbers
some other call clobbered registers. I'm thinking the glibc
implementation might need to
be in assembly language so that the clobbered registers are limited
(i.e., it needs to
save registers). This all seems really ugly...
The issues occur in generating PIC code.
Thoughts?
Dave
--
John David Anglin dave.anglin@xxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html