a plea to change the default std lib clang adds if none is specified on the build line

Mojca Miklavec mojca at macports.org
Sun Mar 11 23:39:19 UTC 2018


On 12 March 2018 at 00:08, Kenneth F. Cunningham wrote:
> 1 minute summary, no gobbledygook:
>
> When clang sees a build line, if there is no -stdlib=Something specified, it adds -stdlib=libstdc++ on systems up to 10.8, and -stdlib=libc++ on 10.9 and above.
>
> If the older OS is set up to use -stdlib=libc++, then all these ports break, and need painful manual shenanigans.
>
>
> All this is rendered extinct if clang just defaults to add -stdlib=libc++ on all systems, if there is no -stdlib specified on the build line.
>
>
> The fix that is needed in clang to accomplish this miraculous feat is literally one single character change.
>
> <https://github.com/kencu/SnowLeopardPorts/blob/master/lang/llvm-5.0/files/9999-patch-clang-5.0-Toolchains-default-always-libcxx.diff>
>
>
> Think of the tickets that might never need to be dealt with.
>
> I would ask that we consider doing this once we default to libc++ on all clang-based systems.

I suggest that you put this patch under

    if this is 10.8 or lower
        if libc++ is set in configuration
            then use this patch

and submit a PR.

This is pretty similar to https://trac.macports.org/ticket/53634
except that I don't have a patch for that.

Mojca


More information about the macports-dev mailing list