From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13163 invoked by alias); 21 Sep 2010 21:45:22 -0000 Received: (qmail 13142 invoked by uid 48); 21 Sep 2010 21:45:22 -0000 Date: Tue, 21 Sep 2010 21:45:00 -0000 Message-ID: <20100921214522.13141.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug java/44095] [4.5/4.6 Regression] massive java failures due to -findirect-dispatch breakage on sparc64-linux In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: java-prs@gcc.gnu.org From: "ebotcazou at gcc dot gnu dot org" Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org X-SW-Source: 2010-q3/txt/msg00054.txt.bz2 ------- 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 %