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)
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "[email protected]"