Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2018 12:02:46 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   Re: svn commit: r480180 - in head/devel: . xtoolchain-llvm70 [FYI: 2 ABI changes compared to older clangs]
Message-ID:  <4B81760C-251A-4DCA-B322-495E3A535A38@yahoo.com>

next in thread | raw e-mail | index | archive | help
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
	=E2=80=A2 Clang=E2=80=99s 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.

	=E2=80=A2 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++=E2=80=99s 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++=E2=80=99s headers together may lead to =
ODR violations and ABI issues.
END QUOTE



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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B81760C-251A-4DCA-B322-495E3A535A38>