[patch] Fix oddity in personality routine
Andrew Haley
aph@redhat.com
Fri Dec 4 16:06:00 GMT 2009
Jack Howarth wrote:
> On Fri, Dec 04, 2009 at 03:48:03PM +0000, Andrew Haley wrote:
>> Jack Howarth wrote:
>>> On Fri, Dec 04, 2009 at 02:59:43PM +0000, Andrew Haley wrote:
>>>>> I suspect we may have a layered problem here and need
>>>>> to work through each section. This weekend, I do some additional
>>>>> builds to verify that the crash debugs to the same locations
>>>>> in both darwin9 and darwin10 with and without the proposed
>>>>> patch to pass -Wl,-allow_stack_execute on GCJLINK.
>>>> Right.
>>>>
>>> Andrew,
>>> Just to double check, you do agree that everything linked with
>>> GCJLINK should be passed -Wl,-allow_stack_execute on darwin9/darwin10?
>> I think so.
>>
>>> I am a bit confused by the criteria used to determine which java binaries
>>> need the ld flag for -allow_stack_execute. If the a shared library contains
>>> code that needs to execute on the stack
>> No gcj library needs to execute on the stack, only the heap. I think the flag
>> is misnamed.
>>
>>> (libgcj) shouldn't any executable
>>> that links in that shared lib use the -allow_stack_execute ld flag?
>> Yes, which is why I suggested you use SYSTEMSPEC. (Twice now, I think. :-)
>>
>> SYSTEMSPEC should pass that flag to everything liked with gcj.
> I tried SYSTEMSPEC last night and it didn't eliminate the crashes in gcj. I'll double
> check that tonight and specifically look for when libtool is using gcj to link to make
> sure the -allow_stack_execute flag is invoked. If so, I'll make sure that the location of
> the crash in gcj has shifted as it did when passing -Wl,-allow_stack_execute on GCJLINK.
OK.
> ps Should I take this to mean that SYSTEMSPEC will cause gcj to automatically pass
> -Wl,-allow_stack_execute when it links code? I assume I should be able to see that with
> -v being pased to gcj.
Yes. This should work everywhere, all the time.
> What confuses me is that gcj -v shows ejc1 being invoked.
Yes.
> So does ecj1 get the -Wl,-allow_stack_execute passed on from gcj or should it be invoking
> -Wl,-allow_stack_execute on its own from SYSTEMSPEC?
ecj1 doesn't get passed -allow_stack_execute, the linker does. Adding -allow_stack_execute
to SYSTEMSPEC will make sure that the linker is always passed this command.
Bryce's patch is right, I think.
Andrew.
More information about the Java
mailing list