When I looked at 
http://releases.llvm.org/7.0.0/tools/clang/docs/ReleaseNotes.html
I found notes about 2 ABI breakages compared to clang 6 and before:

QUOTE
        • Clang’s handling of the GCC packed class attribute in C++ has been 
fixed to apply only to non-static data members and not to base classes. This 
fixes an ABI difference between Clang and GCC, but creates an ABI difference 
between Clang 7 and earlier versions. The old behavior can be restored by 
setting -fclang-abi-compat to 6 or lower.

        • Clang implements the proposed resolution of LWG issue 2358, along 
with the corresponding change to the Itanium C++ ABI, which make classes 
containing only unnamed non-zero-length bit-fields be considered non-empty. 
This is an ABI break compared to prior Clang releases, but makes Clang generate 
code that is ABI-compatible with other compilers. The old behavior can be 
restored by setting -fclang-abi-compat to 6 or lower.
END QUOTE



Also it reports:

QUOTE
libc++ Changes

Users that wish to link together translation units built with different 
versions of libc++’s headers into the same final linked image should define the 
_LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building those translation units. 
In a future release, 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.
END QUOTE



===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to