Re: [patch] Fix oddity in personality routine
Andrew Haley <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <[email protected]> |
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.