* Re: gcc-4.6.3 ICE
@ 2012-03-21 13:47 Dennis Clarke
2012-03-21 13:59 ` Joseph S. Myers
0 siblings, 1 reply; 9+ messages in thread
From: Dennis Clarke @ 2012-03-21 13:47 UTC (permalink / raw)
To: Jonathan Wakely; +Cc: dclarke, gcc
>> Thank you for the quick reply.
>>
OKay, follow up from a few days ago. I ran the testsuite again however
with a stack size of 32Mb and now there are no ICE issues.
See :
http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg02401.html
What I find interesting is why we see an internal compiler error
as opposed to something more reasonable when the user stack size is
too small. Really, this is not a compiler fault at all but a user
environment issue and thus the ICE is a false alarm.
dc
--
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-------------------------+-----------------------------------+
| Dennis Clarke | Solaris and Linux and Open Source |
| dclarke@blastwave.org | Respect for open standards. |
+-------------------------+-----------------------------------+
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: gcc-4.6.3 ICE
2012-03-21 13:47 gcc-4.6.3 ICE Dennis Clarke
@ 2012-03-21 13:59 ` Joseph S. Myers
2012-03-21 14:33 ` Rainer Orth
0 siblings, 1 reply; 9+ messages in thread
From: Joseph S. Myers @ 2012-03-21 13:59 UTC (permalink / raw)
To: Dennis Clarke; +Cc: Jonathan Wakely, gcc
On Wed, 21 Mar 2012, Dennis Clarke wrote:
> What I find interesting is why we see an internal compiler error
> as opposed to something more reasonable when the user stack size is
> too small. Really, this is not a compiler fault at all but a user
> environment issue and thus the ICE is a false alarm.
I suppose we could use sigaltstack where available and a signal handler to
detect stack overflow on suitable hosts to give a better message.
It ought to be possible to use -fsplit-stack to avoid stack overflow - it
would be interesting to know if that works (if GCC is built with
-fsplit-stack, and linked with gold, on a host for which this is properly
supported) and how it affects GCC's performance.
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: gcc-4.6.3 ICE
2012-03-21 13:59 ` Joseph S. Myers
@ 2012-03-21 14:33 ` Rainer Orth
2012-03-21 16:19 ` Ian Lance Taylor
0 siblings, 1 reply; 9+ messages in thread
From: Rainer Orth @ 2012-03-21 14:33 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: Dennis Clarke, Jonathan Wakely, gcc
"Joseph S. Myers" <joseph@codesourcery.com> writes:
> On Wed, 21 Mar 2012, Dennis Clarke wrote:
>
>> What I find interesting is why we see an internal compiler error
>> as opposed to something more reasonable when the user stack size is
>> too small. Really, this is not a compiler fault at all but a user
>> environment issue and thus the ICE is a false alarm.
Btw., the problem is long known: PR c/35608.
> I suppose we could use sigaltstack where available and a signal handler to
> detect stack overflow on suitable hosts to give a better message.
Agreed.
> It ought to be possible to use -fsplit-stack to avoid stack overflow - it
> would be interesting to know if that works (if GCC is built with
> -fsplit-stack, and linked with gold, on a host for which this is properly
> supported) and how it affects GCC's performance.
That's a Linux-only option, unfortunately. I asked the Solaris
engineers about implementing split-stack support, but they rejected it
for the complexity.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: gcc-4.6.3 ICE
2012-03-21 14:33 ` Rainer Orth
@ 2012-03-21 16:19 ` Ian Lance Taylor
0 siblings, 0 replies; 9+ messages in thread
From: Ian Lance Taylor @ 2012-03-21 16:19 UTC (permalink / raw)
To: Rainer Orth; +Cc: Joseph S. Myers, Dennis Clarke, Jonathan Wakely, gcc
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
> That's a Linux-only option, unfortunately. I asked the Solaris
> engineers about implementing split-stack support, but they rejected it
> for the complexity.
Wimps. The split-stack support is simpler than than TLS support.
Not that I really think gcc should use split-stack, split-stack is more
for threaded programs. I think for gcc sigaltstack is a fine solution.
Ian
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: gcc-4.6.3 ICE
@ 2012-03-19 16:00 Dennis Clarke
0 siblings, 0 replies; 9+ messages in thread
From: Dennis Clarke @ 2012-03-19 16:00 UTC (permalink / raw)
To: Jonathan Wakely; +Cc: dclarke, gcc
>> Hrmmmm, tried that and didn't get very far probably because the
>> srcdir is at ../gcc-4.6.3
>
> I don't think that's the problem.
>
> Maybe you need
> make check RUNTESTFLAGS=compile.exp=limits-exprparen.c
> or
> make check RUNTESTFLAGS=compile.exp=*/limits-exprparen.c
> or some other variation on that theme.
>
Well, too late now, I already incanted make -j 2 -k check and
can expect results in a few hours.
Thank you for helping.
dc
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: gcc-4.6.3 ICE
2012-03-19 15:30 Dennis Clarke
@ 2012-03-19 15:46 ` Jonathan Wakely
0 siblings, 0 replies; 9+ messages in thread
From: Jonathan Wakely @ 2012-03-19 15:46 UTC (permalink / raw)
To: dclarke; +Cc: gcc
On 19 March 2012 15:30, Dennis Clarke wrote:
>
>>
>> I think you should be able to do something like:
>>
>> make check RUNTESTFLAGS=compile.exp=gcc.c-torture/compile/limits-exprparen.c
>>
>
> Thank you for the quick reply.
>
> Hrmmmm, tried that and didn't get very far probably because the
> srcdir is at ../gcc-4.6.3
I don't think that's the problem.
Maybe you need
make check RUNTESTFLAGS=compile.exp=limits-exprparen.c
or
make check RUNTESTFLAGS=compile.exp=*/limits-exprparen.c
or some other variation on that theme.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: gcc-4.6.3 ICE
@ 2012-03-19 15:30 Dennis Clarke
2012-03-19 15:46 ` Jonathan Wakely
0 siblings, 1 reply; 9+ messages in thread
From: Dennis Clarke @ 2012-03-19 15:30 UTC (permalink / raw)
To: Jonathan Wakely; +Cc: dclarke, gcc
> On 19 March 2012 14:56, Dennis Clarke wrote:
>>
>> thus : http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg02155.html
>>
>> Â Â Â Â Â Â Â Â === gcc tests ===
>>
>>
>> Running target unix
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O0  (internal compiler
>> error)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O0  (test for excess
>> errors)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O1  (internal compiler
>> error)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O1  (test for excess
>> errors)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O2  (internal compiler
>> error)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O2  (test for excess
>> errors)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O3 -fomit-frame-pointer
>> (internal compiler error)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O3 -fomit-frame-pointer
>> (test for excess errors)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O3 -g  (internal compiler
>> error)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -O3 -g  (test for excess
>> errors)
>> FAIL: gcc.c-torture/compile/limits-exprparen.c  -Os  (internal compiler
>> error)
>>
>>
>> I'd like to extend my stack size a bit and re-run the gcc tests only.
>> At the very least I'd like to see gcc.c-torture/compile/limits-exprparen.c
>> run
>> again. In detail.
>
> The full output of those tests should still be in a .log file
> somewhere under the build dir.
>
>> What would the procedure for that be ?
>
> See http://gcc.gnu.org/install/test.html and
> http://gcc.gnu.org/wiki/HowToPrepareATestcase for commands to run
> specific tests.
>
> I think you should be able to do something like:
>
> make check RUNTESTFLAGS=compile.exp=gcc.c-torture/compile/limits-exprparen.c
>
Thank you for the quick reply.
Hrmmmm, tried that and didn't get very far probably because the
srcdir is at ../gcc-4.6.3 which is where I see the familiar old
friend :
titan-i386-SunOS5.8 $ cat
../gcc-4.6.3/gcc/testsuite/gcc.c-torture/compile/limits-exprparen.c
#define LBR1 ( ( ( ( ( ( ( ( ( (
#define LBR2 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1
#define LBR3 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2
#define LBR4 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3
#define LBR5 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4
#define LBR6 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5
#define RBR1 ) ) ) ) ) ) ) ) ) )
#define RBR2 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1
#define RBR3 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2
#define RBR4 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3
#define RBR5 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4
#define RBR6 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5
int q5_var = LBR4 0 RBR4;
This really comes down to the users stack size and a ulimit -s X
for X=16384 or even 32768 solves it if I recall.
I think I may just run the whole testsuite again, there are other
pieces of ICE that I'd like to see melt away.
dc
--
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-------------------------+-----------------------------------+
| Dennis Clarke | Solaris and Linux and Open Source |
| dclarke@blastwave.org | Respect for open standards. |
+-------------------------+-----------------------------------+
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: gcc-4.6.3 ICE
2012-03-19 14:56 Dennis Clarke
@ 2012-03-19 15:17 ` Jonathan Wakely
0 siblings, 0 replies; 9+ messages in thread
From: Jonathan Wakely @ 2012-03-19 15:17 UTC (permalink / raw)
To: dclarke; +Cc: gcc
On 19 March 2012 14:56, Dennis Clarke wrote:
>
> thus : http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg02155.html
>
> === gcc tests ===
>
>
> Running target unix
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O0 (internal compiler error)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O0 (test for excess errors)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O1 (internal compiler error)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O1 (test for excess errors)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O2 (internal compiler error)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O2 (test for excess errors)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -fomit-frame-pointer
> (internal compiler error)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -fomit-frame-pointer
> (test for excess errors)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -g (internal compiler error)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -g (test for excess errors)
> FAIL: gcc.c-torture/compile/limits-exprparen.c -Os (internal compiler error)
>
>
> I'd like to extend my stack size a bit and re-run the gcc tests only.
> At the very least I'd like to see gcc.c-torture/compile/limits-exprparen.c run
> again. In detail.
The full output of those tests should still be in a .log file
somewhere under the build dir.
> What would the procedure for that be ?
See http://gcc.gnu.org/install/test.html and
http://gcc.gnu.org/wiki/HowToPrepareATestcase for commands to run
specific tests.
I think you should be able to do something like:
make check RUNTESTFLAGS=compile.exp=gcc.c-torture/compile/limits-exprparen.c
^ permalink raw reply [flat|nested] 9+ messages in thread
* gcc-4.6.3 ICE
@ 2012-03-19 14:56 Dennis Clarke
2012-03-19 15:17 ` Jonathan Wakely
0 siblings, 1 reply; 9+ messages in thread
From: Dennis Clarke @ 2012-03-19 14:56 UTC (permalink / raw)
To: gcc
thus : http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg02155.html
=== gcc tests ===
Running target unix
FAIL: gcc.c-torture/compile/limits-exprparen.c -O0 (internal compiler error)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O0 (test for excess errors)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O1 (internal compiler error)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O1 (test for excess errors)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O2 (internal compiler error)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O2 (test for excess errors)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -fomit-frame-pointer
(internal compiler error)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -fomit-frame-pointer
(test for excess errors)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -g (internal compiler error)
FAIL: gcc.c-torture/compile/limits-exprparen.c -O3 -g (test for excess errors)
FAIL: gcc.c-torture/compile/limits-exprparen.c -Os (internal compiler error)
I'd like to extend my stack size a bit and re-run the gcc tests only.
At the very least I'd like to see gcc.c-torture/compile/limits-exprparen.c run
again. In detail.
What would the procedure for that be ?
--
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-------------------------+-----------------------------------+
| Dennis Clarke | Solaris and Linux and Open Source |
| dclarke@blastwave.org | Respect for open standards. |
+-------------------------+-----------------------------------+
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-03-21 16:19 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-21 13:47 gcc-4.6.3 ICE Dennis Clarke
2012-03-21 13:59 ` Joseph S. Myers
2012-03-21 14:33 ` Rainer Orth
2012-03-21 16:19 ` Ian Lance Taylor
-- strict thread matches above, loose matches on Subject: below --
2012-03-19 16:00 Dennis Clarke
2012-03-19 15:30 Dennis Clarke
2012-03-19 15:46 ` Jonathan Wakely
2012-03-19 14:56 Dennis Clarke
2012-03-19 15:17 ` Jonathan Wakely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).