[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-09-22 Thread ebotcazou at gcc dot gnu dot org


--- Comment #4 from ebotcazou at gcc dot gnu dot org  2010-09-22 06:06 
---
Jakub, what do you think?  gcc.c reads:

 %Sremove all occurrences of -S from the command line.
Note - this command is position dependent.  % commands in the
spec string before this one will see -S, % commands in the
spec string after this one will not.

and the spec is gcc/java/jvspec.c:jvgenmain_spec.  I think that the above means
that 'as' shoudn't see -findirect-dispatch but your change breaks that.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-09-22 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2010-09-22 08:07 ---
That semantics can't cope well with -fcompare-debug though, where cc1 etc. is
invoked multiple times.  If you remove some options forever, they wouldn't
appear on the next cc1 etc. invocation line and thus that would behave
differently.  I wonder if e.g. not using %(invoke_as) but instead duplicating
its text in java/jvspec.c with additional %findirect-dispatch right after as
and before %(asm_options) wouldn't do the trick.
Or we need a different % letter that would have the previous behavior, though
am not sure if it could ever work with gcj -fcompare-debug -fmain=myclass
myclass.java


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-09-22 Thread ebotcazou at gcc dot gnu dot org


--- Comment #6 from ebotcazou at gcc dot gnu dot org  2010-09-22 21:15 
---
Subject: Bug 44095

Author: ebotcazou
Date: Wed Sep 22 21:14:50 2010
New Revision: 164534

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164534
Log:
PR java/44095
* config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
is specified and the suffix of the file isn't .c.
* config/sparc/linux64.h (ASM_SPEC): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sparc/linux.h
trunk/gcc/config/sparc/linux64.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-09-22 Thread ebotcazou at gcc dot gnu dot org


--- Comment #7 from ebotcazou at gcc dot gnu dot org  2010-09-22 21:16 
---
Subject: Bug 44095

Author: ebotcazou
Date: Wed Sep 22 21:15:37 2010
New Revision: 164535

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164535
Log:
PR java/44095
* config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
is specified and the suffix of the file isn't .c.
* config/sparc/linux64.h (ASM_SPEC): Likewise.

Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/sparc/linux.h
branches/gcc-4_5-branch/gcc/config/sparc/linux64.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-09-22 Thread ebotcazou at gcc dot gnu dot org


--- Comment #8 from ebotcazou at gcc dot gnu dot org  2010-09-22 21:19 
---
Further kludged.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2010-
   ||09/msg01800.html
 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-09-21 Thread ebotcazou at gcc dot gnu dot org


--- Comment #3 from ebotcazou at gcc dot gnu dot org  2010-09-21 21:45 
---
 Java is severely broken on sparc64-linux with gcc 4.5/4.6, which is a major
 regression from 4.4:
 
 http://gcc.gnu.org/ml/gcc-testresults/2010-05/msg00853.html (4.6 broken)
 http://gcc.gnu.org/ml/gcc-testresults/2010-05/msg00681.html (4.5 broken)
 http://gcc.gnu.org/ml/gcc-testresults/2010-05/msg00472.html (4.4 works)
 
 The detailed test suite logs show that _every_ -findirect-dispatch test case
 SEGFAULTs shortly after startup.
 
 I've bisected trunk and identified r155622 as the cause:
 
 Author: jakub
 Date: Mon Jan  4 16:02:41 2010
 New Revision: 155622
 
 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155622
 Log:
 PR driver/42442
 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
 (do_self_spec): For switches with SWITCH_IGNORE set set also
 SWITCH_IGNORE_PERMANENTLY.
 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
 of SWITCH_IGNORE.

 [...]

 The main difference is that in the working compiler, the java classes are
 assembled with -K PIC but the generated main() is not, while in the broken
 compiler both the java classes and the generated main() are assembled with -K
 PIC.

Thanks for the detailed analysis.

 I note that gcc/java/jvspec.c has %findirect-dispatch, and that PR42442 is
 about correcting the handling of %match=native.  Clearly something here
 doesn't mix well.

My interpretation is that the %findirect-dispatch for cc1 used to cancel the
effect of -findirect-dispatch for subsequent programs invoked by the driver, in
particular 'as' in this case.  Jakub's change disables this cancellation so
-findirect-dispatch is passed to 'as' and thus the kludge I put in ASM_SPEC for
Linux triggers, which breaks because cc1 hasn't compiled the file in PIC mode.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2010-09-20 21:40:00 |2010-09-21 21:45:21
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-09-20 Thread ebotcazou at gcc dot gnu dot org


--- Comment #2 from ebotcazou at gcc dot gnu dot org  2010-09-20 21:40 
---
Investigating.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ebotcazou at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-20 21:40:00
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-07-31 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2010-07-31 09:29 ---
GCC 4.5.1 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.5.1   |4.5.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-05-19 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P4
Summary|[4.5/4.6 regression] massive|[4.5/4.6 Regression] massive
   |java failures due to -  |java failures due to -
   |findirect-dispatch breakage |findirect-dispatch breakage
   |on sparc64-linux|on sparc64-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095



[Bug java/44095] [4.5/4.6 regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux

2010-05-12 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.5.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44095