Hans,
      You can find some complete walks in lldb for the failing
boehm-gc test cases on darwin15 attached to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66848 as well as
stand-alone binaries for reproducing their failure on
x86_64-apple-darwin15 (should you have access to a Mac running El
Capitan).  The developers at Apple identified...

http://llvm.org/viewvc/llvm-project?view=revision&revision=226751

as the change in llvm which sensitized Apple's libunwind.dylib to the
apparently latent boehm-gc bug. My limited understanding of the bug is
that the latent bug is a 16-bit alignment issue being exposed on
darwin since the failing test cases seem to go through...

libdyld.dylib`stack_not_16_byte_aligned_error

during the walks in lldb. I assumed that the use of ALIGNMENT 2 was
forcing the 16-bit alignment and suppressing the bug in current gcc's
boehm-gc.
                 Jack



On Fri, Jan 1, 2016 at 1:28 PM, Hans Boehm <bo...@acm.org> wrote:
> [Adding Ivan, the current bdwgc maintainer.]
>
> I don't fully understand the issue here.  Do we understand where the problem
> is coming from?  Are the compiler/linker generating misaligned pointers
> someplace?  That would strike me as a misfeature elsewhere.
>
> Setting ALIGNMENT to 2, as in the patch, is a pretty big hammer.  It causes
> the gc to look for pointers at every 2 byte offset, quadrupling the number
> of potential pointers that are tested, and significantly increasing the risk
> of finding "false" pointers.  I would expect more problems caused by large
> block allocations.
>
> Hans
>
> On Mon, Dec 28, 2015 at 1:44 PM, Mike Stump <mikest...@comcast.net> wrote:
>>
>> On Dec 22, 2015, at 9:08 AM, Jack Howarth <howarth.at....@gmail.com>
>> wrote:
>> > This bug doesn't exist in the more recent boehm-gc 7.2 or
>> > later releases. Until the exact change from 6.6 to 7.2 that suppresses
>> > this bug is identified or FSF gcc's boehm-gc is rebased on the 7.2
>> > version or later, the simple fix to suppress this issue on darwin is
>> > to enforce 16-bit alignment in boehm-gc/include/private/gcconfig.h for
>> > that target.
>>
>> It would be nice to just pull in 7.2 (or just the latest release)…  seems
>> like that should be easier to maintain to me.
>>
>> > Okay for gcc trunk and back ports to gcc-5-branch and gcc-4_9-branch?
>>
>> I’d like to punt the approval to a libboehm person, though, not sure we
>> have any.  Just checked we don’t have an official maintainer listed.  :-(
>> Do we have anybody that wants to review the patch or should I?  Though I
>> would prefer a new import of a newer library to fix the issue, I’m tempted
>> to just approve the patch.  Kinda don’t want to as any deviation makes
>> importing a new library annoying.  What do others think?
>
>

Reply via email to