[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-29 Thread amodra at gcc dot gnu dot org
--- Comment #14 from amodra at gcc dot gnu dot org 2008-07-30 02:44 --- Subject: Bug 36955 Author: amodra Date: Wed Jul 30 02:43:05 2008 New Revision: 138291 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=138291 Log: PR target/36955 * config/rs6000/rs6000.c

[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-29 Thread amodra at bigpond dot net dot au
--- Comment #15 from amodra at bigpond dot net dot au 2008-07-30 02:44 --- . -- amodra at bigpond dot net dot au changed: What|Removed |Added

[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-28 Thread pinskia at gcc dot gnu dot org
--- Comment #8 from pinskia at gcc dot gnu dot org 2008-07-28 22:29 --- The difference is the saving/restoring of r30. r30 is not used at all as far as I can tell. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added

[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-28 Thread janis at gcc dot gnu dot org
--- Comment #9 from janis at gcc dot gnu dot org 2008-07-28 23:21 --- The difference is in setting up r30 before branching to __tls_get_addr, which probably uses r30. -- janis at gcc dot gnu dot org changed: What|Removed |Added

[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-28 Thread pinskia at gcc dot gnu dot org
--- Comment #10 from pinskia at gcc dot gnu dot org 2008-07-28 23:27 --- From http://sourceware.org/ml/binutils/2005-05/msg00391.html: Also, the ld support doesn't allow registers other than r30 as a GOT pointer. booo. -- Pinski -- pinskia at gcc dot gnu dot org changed:

[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-28 Thread amodra at bigpond dot net dot au
--- Comment #11 from amodra at bigpond dot net dot au 2008-07-29 00:20 --- When -fPIC, r30 needs to be set to point into the .got2 section for the function, so that r30 is valid for the __tls_get_addr plt call stub. Note that this is a different GOT pointer than that used by @[EMAIL

[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-28 Thread amodra at bigpond dot net dot au
--- Comment #12 from amodra at bigpond dot net dot au 2008-07-29 00:37 --- So, the easy fix for this bug is (totally untested, not even compiled) Index: gcc/config/rs6000/rs6000.c === --- gcc/config/rs6000/rs6000.c

[Bug target/36955] [4.4 Regression] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-28 Thread amodra at bigpond dot net dot au
--- Comment #13 from amodra at bigpond dot net dot au 2008-07-29 01:04 --- Blah, of course that's the wrong place to add the use_reg. Needs to be a few lines lower. I guess I may as well take this bug and go thru a boot/regress cycle. -- amodra at bigpond dot net dot au changed: