Consequences of using MacPorts GCC as a fallback compiler on PowerPC

Mojca Miklavec mojca at macports.org
Fri Mar 23 18:02:36 UTC 2018


On 23 March 2018 at 15:59, Kenneth F. Cunningham wrote:
> On 2018-03-23, at 1:44 AM, Mojca Miklavec wrote:
>>
>> Additional question for Ken: if we do (b) and keep using gcc6(?), do
>> we then even need any special (buildbot) setup for C++11 builds like
>> we plan to do for libc++-based builders?
>
> Once the 10.6 to 10.8 buildbots are configured for libc++ and default to build with clang-5.0 as they will need to be set up to do, the cxx11 1.1 PortGroup will basically be redundant and on it's last legs. It will fall into disuse I believe.

I still like the convention of marking ports as "requires C++11" much
more than "please blacklist gcc 3.0 and gcc 4.2".

> There will be no more failed builds due to c++11, and so nobody will know if a port would have needed to be in the c++11 port group any more. (Also our worries about C11 specs, c++14 specs, and all similar specs will disappear too).

Yes, I'm aware that most ports will then forget to add that flag
because nobody will notice when it will be missing. I would still
prefer to keep it though, in one way or another.

> All the compiler blacklisting and whitelisting will also reduce to a fraction of what is currently done.
>
> (Once the compiler of a given OS is old enough to cause troubles, it will be replaced with clang-5.0 as a default.)

With that I agree.

> For PPC, you are correct --- if a build fails, we'll blacklist *gcc-4* to force a build with gcc6, and it'll either build, or it won't. There will be no special c++11 handling.

But you'll nevertheless end up with incompatibility between stdlibs
(the one shipped by the system and the one shipped with gcc) unless
you always make sure to add the magic -D_GLIBCXX_USE_CXX11_ABI=0 flag
(or compile the library in a proper way).

I thought that initial plan was maybe switching to stdlibc++ version 3
at some point (if we ever happen to care about that), similar to what
is planned for libc++ transition. Or at least that this was your
personal setup.

But now that I know that the stdlibc++ library can be built in a
special mode I wonder if this makes any difference? That is: would any
user benefit from having C++11-enabled stdlibc++ and build
*everything* with gcc6 compared to this proposal of building stdlibc++
in "_GLIBCXX_USE_CXX11_ABI=0" mode?

Just curious: what should be the default supported mode for 10.5/i386 then?

(My next question would be what is the main difference between
building "everything" against libc++ and building everything against
"_GLIBCXX_USE_CXX11_ABI=0"-mode libstdc++ on 10.6-10.8 - other than
more compatible setup across wide spectrum of OSes. But I will stop
before asking that question.)

Mojca


More information about the macports-dev mailing list