On Nov 2, 2017, at 14:34, Ken Cunningham wrote: > On Nov 2, 2017, at 12:20 PM, Ryan Schmidt wrote: > >> The part where it allows a port to be compiled with MacPorts libstdc++. Why >> is this ok? Didn't we used to have the problem that C++ software compiled >> with gcc would crash because it used new gcc libstdc++ but a library it used >> was using OS X's old libstdc++? Why is that no longer a problem with this >> portgroup? >> > > The two libstdc++ versions (gcc4’s and gcc7’s) are similar except in a few > small areas, mostly involving string copying. > > The cxx11 1.1 PortGroup passes a flag to gcc7’s libstdc++ to tell it to use > the old style of string handling (ABI4), so objects are compatible with the > older libstdc++.
Yes, I understand that we're passing -D_GLIBCXX_USE_CXX11_ABI=0 to use the "old" string handling. But the "new" string handling was introduced in gcc 5.1. We were experiencing crashers from mixing Apple gcc 4.2.1 libstdc++ and MacPorts gcc 4.x libstdc++, well before "new" string handling existed. I don't understand why that's not still a problem here.
