Opened 6 years ago

Last modified 2 years ago

#57576 new enhancement

llvm 8+ usuability — at Initial Version

Reported by: RJVB (René Bertin) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: libcxx

Description

I just saw this

Starting with LLVM 8.0.0, users that wish to link together translation units built with different versions of libc++’s headers into the same final linked image MUST define the _LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building those translation units. Not defining _LIBCPP_HIDE_FROM_ABI_PER_TU to 1 and linking translation units built with different versions of libc++’s headers together may lead to ODR violations and ABI issues. On the flipside, code size improvements should be expected for everyone not defining the macro.

(https://libcxx.llvm.org/docs/ReleaseNotes.html#what-s-new-in-libc-8-0-0)

I interpret this as "define _LIBCPP_HIDE_FROM_ABI_PER_TU if you want to use the libc++ headers to build code that will link against system libraries".

A really strange decision if that interpretation is correct but if it is correct wouldn't it be a least-worst idea revert the logic in c++/v1/__config to avoid having to add -D_LIBCPP_HIDE_FROM_ABI_PER_TU to just about every C++ compiler invocation?

Change History (0)

Note: See TracTickets for help on using tickets.