← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Fix MacOS coroutine segfault

 

I will do my best, but I really cannot promise any time slot for looking
into the issue. Perhaps it is the time to revisit Tom's libcontext [1]?
The number of #ifdefs in tge current coroutine code makes eyes pop out,
and I am afraid with the new issue we would be forced to add "#ifdef
__APPLE__" to this horrible mess.

This way we should be immune to future boost::context changes. The
drawback is, we are on our own if there is a new architecture to
support. On the other hand, how often a new architecture becomes popular
enough to care about it?

To sum up: I would switch to libcontext and stop worrying.

Regards,
Orson

1. https://github.com/twlostow/libcontext

On 02/23/2017 02:07 PM, Wayne Stambaugh wrote:
> This is a known issue.  I believe the last valid version of boost that
> doesn't cause a crash is 1.61.  Anything after that causes this issue on
> all platforms not just osx.  @Orson or @Tom, any chance you could take a
> look at this to see what boost changed in the context library?
> 
> Cheers,
> 
> Wayne
> 
> On 2/23/2017 6:49 AM, Simon Wells wrote:
>> just fyi
>>
>> https://bugs.launchpad.net/kicad/+bug/1658249
>>
>> On 24 February 2017 at 00:38, Chris Pavlina <pavlina.chris@xxxxxxxxx> wrote:
>>> Backtrace attached. Boost is 1.63.0.
>>>
>>> On Thu, Feb 23, 2017 at 11:36:02AM +0100, Maciej Sumiński wrote:
>>>> Hi Chris,
>>>>
>>>> Would you give more details about the problem? Boost version, backtrace?
>>>>
>>>> Regards,
>>>> Orson
>>>>
>>>> On 02/23/2017 02:23 AM, Chris Pavlina wrote:
>>>>> Hi,
>>>>>
>>>>> pcbnew is segfaulting on launch on my MacOS Sierra build, due to a null
>>>>> dereference in the coroutine code:
>>>>>
>>>>> coroutine.h
>>>>> 408    static CONTEXT_T callerStub( CONTEXT_T caller, INVOCATION_ARGS* aArgsPtr )
>>>>> 409    {
>>>>> 410        const auto& args = *aArgsPtr;
>>>>> 411        auto* cor = args.destination;
>>>>>
>>>>> aArgsPtr is null and I don't understand WHY. However, I was able to make
>>>>> things appear to work by short-circuiting this function if the argument
>>>>> is null.
>>>>>
>>>>> Patch attached. It Works For Me™, but I'd like someone who knows the
>>>>> coroutine code to look and make sure I haven't made a mess of things.
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 


Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups

References