On Fri, Dec 09, 2011 at 10:03:47AM -0500, Jack Howarth wrote:
> On Fri, Dec 09, 2011 at 02:09:54PM +0000, Iain Sandoe wrote:
> >
> > On 8 Dec 2011, at 20:55, Iain Sandoe wrote:
> >> ... but, I'll bow out at this juncture -
> >
> > OK, I lied :-)
> >
> > The boehm-gc tests pass for m32 and m64 with "-fpie/-fPIE" on both x86
> > Darwin9 (XC3.1.4) and x86_64 Darwin10 (XC3.2.5);
> > I'm building with XC3.2.6 to check that too.
> >
> > So I think you need to debug what is actually failing on Darwin11.
> >
> > Iain
>
> Iain,
> I did a bit of experimentation with Xcode 4.2 on 10.6.8 and 10.7.2 with the
> failing gctest test case.
>
> 1) On 10.6.8 using Xcode 4.2 and a previous gcc trunk build, if I do a 'make
> clean'
> in
> /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin10.8.0/boehm-gc
> after editing the Makefile there to have...
>
> CFLAGS = -g -O2 -Wl,-pie
>
> and then manually rebuild the gctest case with the same flags, it runs fine
> on darwin10
> but segfaults on darwin11. Interestingly, I can get it to run without
> crashing on darwin11
> if I run it within gdb.
>
> 2) On 10.7.2 using Xcode 4.2 and a previous gcc trunk build, if I do a 'make
> clean' in
> /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/boehm-gc
> after editing the Makefile there to have...
>
> CFLAGS = -g -O2 -mmacosx-version-min=10.6 -Wl,-pie
>
> and then manually rebuild the gctest case with the same flags, the resulting
> binary still crashes
> on darwin11 but runs fine on darwin10. FYI, I also copied libgcjgc.1.dylib
> from the appropriate
> build and set DYLD_LIBRARY_PATH as required in each case.
> I am assuming these observations suggest that we are seeing a new bug in
> the darwin11 unwinder.
> I'll open a radar for this tonight with a standalone test case based on
> gctest that the darwin
> linker developer can walk through the darwin11 unwinder.
> Jack
Iain,
FYI, I checked my radar reports and I had already opened Problem ID:
9603795, "Lion linker breaks boehm-gc",
in July. The original report only compared the stock linkages on darwin10 and
darwin11. I've updated the
report with a stand-alone test case built using Xcode 4.2 under darwin11 with
-mmacosx-version-min=10.6 -Wl,-pie
that crashes on darwin11 but not darwin10. This with with the observation that
-mmacosx-version-min=10.6 -Wl,-pie
builds a copy under Xcode 4.2 on darwin10 that likewise fails on darwin11 but
not darwin10 eliminates the linker
as the cause of the issue.
Jack