← Back to team overview

kicad-developers team mailing list archive

Re: OSX Red Blob Bug

 

Yes, sounds reasonable… I was wrong about 10.8, libc++ seems to be there since 10.7.

I found a report of one guy having problems with a binary linked against libstdc++ because some system libs pulled in libc++.
He was able to find out the exact class/type which caused the problem.
He reported it to Apple, it was considered a bug because it should be compatible, and it got fixed quite some while later.

Doing the same will be quite painful I guess, because we have so many (foreign) things using C++… wxWidgets, boost, etc.
So, I guess the easiest way to fix this for now is to ensure everything is built with the same min version (or standard C++ lib I guess).

Moreover… I guess that at some point in time Apple probably will drop libstdc++ support anyway… so the effort of providing in worst case two packages (one for <10.7 and another for >10.7) will be much less than trying to fix that now.

That’s something that has most impact on Adam and the upcoming automated builds...


Regards,
Bernhard

On 16.11.2014, at 10:43, Garth Corral <gcorral@xxxxxxxxx> wrote:

> Interesting.  When I had replied in the past that I was unable to reproduce this, I had been building with a local patch that set macosx-version-min to 10.7 for everything.  When I read this I tried building again without that patch and sure enough, red blob.  When I rebuilt with version-min set to 10.7 it went away again.
> 
> Garth
> 
> 
>> On Nov 16, 2014, at 12:41 AM, Bernhard Stegmaier <stegmaier@xxxxxxxxxxxxx> wrote:
>> 
>> Hi OSX guys,
>> 
>> do you still see the "red blob bug” in latest revisions (since yesterday)?
>> I still had it in all the builds I made, the last revision I built was 5263, and it was in there.
>> 
>> When I switched to external boost for the avhttp tests (this build has the red blob problem) I noticed that my boost (from MacPorts) was compiled against libc++, whereas wxWidgets and KiCad itself was built against libstdc++. 
>> This is how it is forced in KiCad CMake (via "—mmacosx-min-version" which implicitly sets used C++ standard library) and in the wxWidgets configuration I use.
>> 
>> Although common sense seems to be “if it compiles/links fine, it will work” I know from problems at work that mixing standard C++ libraries in one binary can lead to very weird problems. Mixing libs is often not obvious, because different versions can be pulled in by any indirect library dependency in the whole dependency chain.
>> 
>> So, I pulled to head yesterday and made some small changes to build everything (KiCad and wxWidgets) with minimum OSX version 10.9 which selects libc++… just to see what happens.
>> Built fine, I did my usual tests and I was quite surprised that the red blob problem was gone!
>> 
>> So, can anyone confirm 
>> (1) if problem is still there with latest revision?
>> (2) it goes away if you rebuild KiCad & wxWidgets and change every “-mmacosx-min-version=10.5” in KiCad CMake files to something more recent (probably 10.9 or 10.10, AFAIK libc++ was default starting with 10.8) and remove any "-stdlib=libstdc++” (it used when configuring wxWidgets if you use the supplied script)?
>> 
>> If it is confirmed that this is due to mixing libc++/libstdc++ I will change build process in a way that you can specify which OSX version is targeted…
>> 
>> 
>> Regards,
>> Bernhard
>> _______________________________________________
>> 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
> 



References