[Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux
--- 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
--- 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=gcc&view=rev&rev=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
--- 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=gcc&view=rev&rev=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
--- 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 %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
--- Comment #4 from ebotcazou at gcc dot gnu dot org 2010-09-22 06:06 --- Jakub, what do you think? gcc.c reads: %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
--- 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=gcc&view=rev&rev=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 % about correcting the handling of % doesn't mix well. My interpretation is that the %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
--- 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
--- 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
-- 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
-- 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