This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Add partial big-endian SH support to gcc/configure.


Mike Frysinger <vapier@gentoo.org> wrote:
> lets just ask Kaz ;)

If you make the TLS support of gcc enable for sh?eb targets,
then your gcc will process the __thread keyword specially and
generate special TLS symbols like foo@TLSGD and foo@DTPOFF.
as and ld with the TLS support make special TLS relocations
like R_SH_TLS_DTPMOD32 and R_SH_TLS_DTPOFF32 if needed and
these relocations will interpreted in nptl ld.so, but if
linuxthread ld.so saw them, the program simply dies. So if
sh?eb nptl'ed glibc doesn't work at this point, the program

__thread int thr;
int main (void) { return thr; }

which didn't fail with the old gcc now fails with the new gcc.
That's too bad.
There are several files in libc/nptl/sysdeps/unix/sysv/linux/sh/
which can be endian sensitive and anyway they aren't tested
at all on big-endian machines AFAIK.
Without working nptl'ed glibc, enabling TLS support of gcc would
be just a disaster :-)

Regards,
	kaz

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]