PATCH: [4.1 Regression]: java compiler generates wrong code on ia64

Bryce McKinlay mckinlay@redhat.com
Mon Apr 18 17:56:00 GMT 2005


H. J. Lu wrote:

>On Sun, Apr 17, 2005 at 11:33:13PM -0400, Andrew Pinski wrote:
>  
>
>>On Apr 17, 2005, at 11:31 PM, H. J. Lu wrote:
>>    
>>
>>>make_local_function_alias is introduced in
>>>
>>>http://gcc.gnu.org/ml/java-patches/2004-q3/msg00618.html
>>>
>>>Is there a testcase to show it is really needed? I'd like to run it
>>>on ia32, x86_64 and ia64 to verify its usage.
>>>      
>>>
>>This was done so that Java code could avoid GOT code.
>>
>>    
>>
>
>I am not sure if it makes any differences in GOT on ia32, x86_64 and
>ia64. Again, I'd like to see a testcase.
>  
>

Actually, this was done so that the function pointers in GCJ's method 
metadata always point to the actual entry point of a function, and not a 
PLT stub. Without this, the PC value returned by _Unwind_GetRegionStart 
is, in some circumstances[*], not the same as that in the method's 
metadata entry. When this happens, libgcj cannot map stack frames to the 
appropriate class and method, which is essential for correct stack 
traces and the Java security model.

Bryce

[*] See here for further explanation of the problem: 
http://gcc.gnu.org/ml/gcc/2003-12/msg00383.html



More information about the Java-patches mailing list