[libcxx-dev] Option to disable inline namespacing completely?

Eric Fiselier via libcxx-dev libcxx-dev at lists.llvm.org
Tue Nov 13 22:16:34 PST 2018


No, there isn't.

I meant to add one, but I got blocked by having to fix the mangled names
used under MSVC in iostream.cpp

/Eric

On Mon, Nov 12, 2018 at 12:49 AM Kristina Brooks via libcxx-dev <
libcxx-dev at lists.llvm.org> wrote:

> Hi,
>
> I was wondering, would it be possible to add an option to disable inline
> namespacing completely (as a CMake
> configuration flag) in libc++ for the sake of being able to use shorthand
> mangling and without having to resort to
> handling it on IA64 mangler level. This has many use cases for example
> distributions of anything that includes libc++ as
> one and only libc++ and does not allow non-vendor software to be
> installed. On an embedded system, assuming debug info
> is generated, and given how common some of the debug data takes a very
> significant amount of space given the complex
> definition of something like `std::__2::basic_string<...>` versus the
> short form (`std::string` having a shorthand
> mangling is a godsend since it's 95% shorter, not an accurate figure but
> basically definitely above 90%).
>
> Realistically it would be cool to just have shorthand manglings for inline
> namespaced versions of it but that's
> something that has to be implemented in the mangler and is fairly distinct
> from mono-ABI cases where versioning is
> undesirable due to impossibility of collisions.
>
> I think I suggested something like that to Eric (disabling inline
> namespaces) though I'm not sure if there is any plans
> to implement that in which case I may open a Clang differential that adds
> the option for the mangler to strip versioned
> namespaces as this is simply an extremely useful option to have when
> shipping an entire OS with all software only being
> available as provided by the vendor.
>
> Thank you.
> - Kristina
>
> _______________________________________________
> libcxx-dev mailing list
> libcxx-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libcxx-dev/attachments/20181114/bd0e34a8/attachment-0001.html>


More information about the libcxx-dev mailing list