https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #44 from Andrew Pinski ---
*** Bug 44450 has been marked as a duplicate of this bug. ***
--- Comment #42 from rth at gcc dot gnu dot org 2010-07-26 22:54 ---
Subject: Bug 44132
Author: rth
Date: Mon Jul 26 22:53:50 2010
New Revision: 162549
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162549
Log:
PR target/44132
Emulated TLS rewrite.
Added:
--- Comment #43 from rth at gcc dot gnu dot org 2010-07-26 22:58 ---
Emutls now re-written in a way that should support LTO.
--
rth at gcc dot gnu dot org changed:
What|Removed |Added
--
rth at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |rth at gcc dot gnu dot org
|dot org
--- Comment #41 from iains at gcc dot gnu dot org 2010-07-03 16:45 ---
this should do it, asm problems solved.
http://gcc.gnu.org/ml/gcc-patches/2010-07/msg00262.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #39 from dominiq at lps dot ens dot fr 2010-06-04 18:25 ---
I confirm that the failures for libjava reported in comment #33 were due to
some misconfiguration.
With the patches in http://gcc.gnu.org/bugzilla/attachment.cgi?id=20762 and
--- Comment #40 from iains at gcc dot gnu dot org 2010-06-04 18:45 ---
(In reply to comment #39)
I confirm that the failures for libjava reported in comment #33 were due to
some misconfiguration.
With the patches in http://gcc.gnu.org/bugzilla/attachment.cgi?id=20762 and
--- Comment #32 from iains at gcc dot gnu dot org 2010-06-03 09:21 ---
(In reply to comment #31)
The latest proposed patch triggers one additional g++ tls failure...
FAIL: g++.dg/tls/init-2.C (test for excess errors)
this test is not enabled for emutls at present;
yes, I know it
--- Comment #33 from dominiq at lps dot ens dot fr 2010-06-03 14:52 ---
On x86_64-apple-darwin10.3.0 the patch in comment #26 applied on top of r160219
cause
=== libjava Summary for unix/-m64 ===
# of expected passes2459
# of unexpected failures62
--- Comment #34 from iains at gcc dot gnu dot org 2010-06-03 15:03 ---
(In reply to comment #33)
On x86_64-apple-darwin10.3.0 the patch in comment #26 applied on top of
r160219
cause
=== libjava Summary for unix/-m64 ===
# of expected passes2459
#
--- Comment #35 from dominiq at lps dot ens dot fr 2010-06-03 15:21 ---
Extracted from x86_64-apple-darwin10.3.0/libjava/testsuite/libjava.log:
...
set_ld_library_path_env_vars:
ld_library_path=.:/opt/gcc/build_w/x86_64-apple-darwin10.3.0/./libjava/.libs
invoke:
--- Comment #36 from iains at gcc dot gnu dot org 2010-06-03 16:08 ---
(In reply to comment #35)
Extracted from x86_64-apple-darwin10.3.0/libjava/testsuite/libjava.log:
...
set_ld_library_path_env_vars:
ld_library_path=.:/opt/gcc/build_w/x86_64-apple-darwin10.3.0/./libjava/.libs
--- Comment #37 from dominiq at lps dot ens dot fr 2010-06-03 20:57 ---
(In reply to comment #35)
Note the failures occur only with -m64, not with -m32.
This may due to a misconfiguration of libjava similar to pr43170. I am
bootstrapping with the latest patch and I'll redo the testing
--- Comment #38 from iains at gcc dot gnu dot org 2010-06-03 23:45 ---
(In reply to comment #37)
(In reply to comment #35)
Note the failures occur only with -m64, not with -m32.
This may due to a misconfiguration of libjava similar to pr43170. I am
bootstrapping with the latest
--- Comment #29 from jakub at gcc dot gnu dot org 2010-06-02 20:35 ---
I don't see that as justification for breaking the ABI.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #30 from iains at gcc dot gnu dot org 2010-06-02 20:41 ---
(In reply to comment #29)
I don't see that as justification for breaking the ABI.
no problem - I'll revert that part.
I had thought that since these vars could get hit very hard in parallel code,
the 0 offset
--- Comment #31 from howarth at nitro dot med dot uc dot edu 2010-06-03
01:10 ---
The latest proposed patch triggers one additional g++ tls failure...
FAIL: g++.dg/tls/init-2.C (test for excess errors)
with http://gcc.gnu.org/ml/gcc-patches/2010-05/txt00053.txt...
Executing on host:
--- Comment #26 from iains at gcc dot gnu dot org 2010-05-27 20:11 ---
Created an attachment (id=20762)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20762action=view)
candidate fix that handles aliases as well.
PR44276 revealed that I wasn't handling alias cases.
The new
--- Comment #27 from jakub at gcc dot gnu dot org 2010-05-27 22:02 ---
Can you explain the struct __emutls_object change? That is an ABI break (and I
don't see anywhere any rationale for that).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #28 from iains at gcc dot gnu dot org 2010-05-27 22:52 ---
(In reply to comment #27)
Can you explain the struct __emutls_object change? That is an ABI break (and
I
don't see anywhere any rationale for that).
I did it for two reasons;
1/ to prove that I'd got a handle
--- Comment #25 from iains at gcc dot gnu dot org 2010-05-25 09:38 ---
#24 works for me also on powerpc-apple-darwin9 and powerpc64-apple-darwin9.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #22 from iains at gcc dot gnu dot org 2010-05-24 14:36 ---
Subject: Bug 44132
Author: iains
Date: Mon May 24 14:36:32 2010
New Revision: 159781
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=159781
Log:
2010-05-24 Iain Sandoe ia...@gcc.gnu.org
PR
--- Comment #23 from iains at gcc dot gnu dot org 2010-05-24 17:27 ---
Created an attachment (id=20736)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20736action=view)
candidate solution
OK, so comment #22 is the work-around ...
.. here is the current version of the proper
--- Comment #24 from iains at gcc dot gnu dot org 2010-05-24 20:11 ---
Created an attachment (id=20738)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20738action=view)
candidate solution (with all the files)
and now with all the changed files ...
--
iains at gcc dot gnu dot
--- Comment #20 from ro at gcc dot gnu dot org 2010-05-19 10:39 ---
This seems to be the same problem that breaks Solaris 8/9 SPARC bootstrap with
Sun
as: several libjava tools fail to link:
Undefined first referenced
symbol in file
--- Comment #21 from iains at gcc dot gnu dot org 2010-05-19 14:48 ---
Created an attachment (id=20701)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20701action=view)
latest..
this is mostly there ... might be worth trying on other platforms for feedback.
without the catch-net
--- Comment #17 from iains at gcc dot gnu dot org 2010-05-18 09:09 ---
Created an attachment (id=20693)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20693action=view)
latest version
a few more tweaks.
with this emutls is working for lto/whopr
OMP is still broken and so will be
--- Comment #18 from iains at gcc dot gnu dot org 2010-05-18 15:55 ---
(In reply to comment #17)
Created an attachment (id=20693)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20693action=view) [edit]
latest version
a few more tweaks.
with this emutls is working for lto/whopr
--- Comment #19 from dominiq at lps dot ens dot fr 2010-05-18 16:55 ---
This PR may have an overlap with pr44139.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #14 from iains at gcc dot gnu dot org 2010-05-17 20:22 ---
Created an attachment (id=20688)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20688action=view)
Work-In-Progress...
here is a modification of comment #7 which gets us a bit further .. but I'm a
bit stumped in
--- Comment #15 from iains at gcc dot gnu dot org 2010-05-17 20:31 ---
the libgomp fails with comment #14 are pretty much:
/i686-apple-darwin9/./libgomp/.libs:/Volumes/ScratchCS/gcc-4-6-trunk-build/gcc
atomic-4.exe(94763) malloc: *** error for object 0x800180: pointer being
reallocated
--- Comment #16 from iains at gcc dot gnu dot org 2010-05-18 01:40 ---
the patch below helps...
I also suspect we might have to check for emutls vars twice - because they can
be introduced by profiling code
just for the sake of a trial - I've put the emutls_final into toplev.c twice:
--- Comment #2 from iains at gcc dot gnu dot org 2010-05-15 08:25 ---
as of 159429 - m32 seems to be fixed (and m64 improved):
=== libgomp Summary for unix/-m32 ===
# of expected passes2490
# of unsupported tests 2
=== libgomp
--- Comment #3 from iains at gcc dot gnu dot org 2010-05-15 08:29 ---
note fails are for O 0
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #4 from hubicka at ucw dot cz 2010-05-15 08:39 ---
Subject: Re: [4.6 Regression] emutls is broken under a
range of circumstances.
The problem is because emultls is handling declarations in a way so references
are not visible to
middle end. I guess we need to put
--- Comment #5 from iains at gcc dot gnu dot org 2010-05-15 08:59 ---
(In reply to comment #4)
Subject: Re: [4.6 Regression] emutls is broken under a
range of circumstances.
The problem is because emultls is handling declarations in a way so references
are not visible to
--- Comment #6 from iains at gcc dot gnu dot org 2010-05-15 09:25 ---
(In reply to comment #5)
Index: gcc/varasm.c
===
--- gcc/varasm.c(revision 159429)
+++ gcc/varasm.c(working copy)
@@ -386,6 +386,7
--- Comment #7 from hubicka at ucw dot cz 2010-05-15 09:35 ---
Subject: Re: [4.6 Regression] emutls is broken under a
range of circumstances.
Hi,
we can either go with DECL_PRESERVE that is kind of hack but makes situation no
worse.
Correct fix is to lower emultls earlier so
--- Comment #8 from iains at gcc dot gnu dot org 2010-05-15 11:24 ---
(In reply to comment #7)
Subject: Re: [4.6 Regression] emutls is broken under a
range of circumstances.
Correct fix is to lower emultls earlier so both ipa-ref and LTO understands
it.
This might be bit
--- Comment #9 from rguenth at gcc dot gnu dot org 2010-05-15 11:32 ---
I'd rather go with the DECL_PRESERVE_P hack for now.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #10 from iains at gcc dot gnu dot org 2010-05-15 11:57 ---
hmm - that certainly looks simpler...
I guess, otherwise, we have to intercept every circumstance where a __thread
var might be used .. and interpose the exchange.
--
--- Comment #11 from hubicka at ucw dot cz 2010-05-15 13:48 ---
Subject: Re: [4.6 Regression] emutls is broken under a
range of circumstances.
I'd rather go with the DECL_PRESERVE_P hack for now.
Problem with this is that emultls is still broken with LTO. As soon as we
merge
--- Comment #12 from hubicka at ucw dot cz 2010-05-15 13:49 ---
Subject: Re: [4.6 Regression] emutls is broken under a
range of circumstances.
I guess, otherwise, we have to intercept every circumstance where a __thread
var might be used .. and interpose the exchange.
Hmm,
--- Comment #13 from iains at gcc dot gnu dot org 2010-05-15 15:40 ---
see: http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01119.html for a workaround
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
--- Comment #1 from iains at gcc dot gnu dot org 2010-05-14 08:17 ---
this was caused by r159370, 72 or 72.
(CC ing Jan Hubika).
in case it's relevant, the emutls control vars are not finalized .
I have a patch to do this
(http://gcc.gnu.org/ml/gcc-patches/2010-05/msg00824.html) ...
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|--- |4.6.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132
46 matches
Mail list logo