Date: Sun, 14 Mar 2021 21:00:49 +0100 From: =?UTF-8?B?VMSzbA==?= Coosemans <tijl@FreeBSD.org> To: Dimitry Andric <dim@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>, gerald@FreeBSD.org, kib@FreeBSD.org Subject: Re: git: 9097e3cbcac4 - main - Partially revert libcxxrt changes to avoid _Unwind_Exception change Message-ID: <20210314210039.2da1b9ba@FreeBSD.org> In-Reply-To: <BC83628A-A8EF-4964-BD0E-9F9738BFFF8C@FreeBSD.org> References: <202103131354.12DDsnKR065154@gitrepo.freebsd.org> <20210313183812.77b74819@FreeBSD.org> <BC83628A-A8EF-4964-BD0E-9F9738BFFF8C@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 14 Mar 2021 01:15:11 +0100 Dimitry Andric <dim@FreeBSD.org> wrote: > On 13 Mar 2021, at 18:38, T=C4=B3l Coosemans <tijl@FreeBSD.org> wrote: >> On Sat, 13 Mar 2021 13:54:49 GMT Dimitry Andric <dim@FreeBSD.org> wrote:= =20 >>> The branch main has been updated by dim: >>>=20 >>> URL: https://cgit.FreeBSD.org/src/commit/?id=3D9097e3cbcac455eb0dedd097= d8d5548c72568d0a >>>=20 >>> commit 9097e3cbcac455eb0dedd097d8d5548c72568d0a >>> Author: Dimitry Andric <dim@FreeBSD.org> >>> AuthorDate: 2021-03-13 13:54:24 +0000 >>> Commit: Dimitry Andric <dim@FreeBSD.org> >>> CommitDate: 2021-03-13 13:54:24 +0000 >>>=20 >>> Partially revert libcxxrt changes to avoid _Unwind_Exception change = =20 > ... >>> --- a/contrib/libcxxrt/unwind-itanium.h >>> +++ b/contrib/libcxxrt/unwind-itanium.h >>> @@ -79,12 +79,9 @@ struct _Unwind_Exception >>> { >>> uint64_t exception_class; >>> _Unwind_Exception_Cleanup_Fn exception_cleanup; >>> - uintptr_t private_1; >>> - uintptr_t private_2; >>> -#if __SIZEOF_POINTER__ =3D=3D 4 >>> - uint32_t reserved[3]; >>> -#endif >>> - } __attribute__((__aligned__)); >>> + unsigned long private_1; >>> + unsigned long private_2; >>> + } ; =20 >>=20 >> Shouldn't these definitions be the same as the ones in GCC? =20 >=20 > If you want to keep the ABI compatible with what it was, no. Otherwise, > you could consider it. But for what gain? Hmm, the ABI must have been broken by the switch to libcxxrt years ago. In that case there's ABI breakage no matter which version you choose. Maybe kib can help decide which is the lesser evil. In any case I do think the definitions in GCC should match the ones in base. Sometimes libraries compiled with GCC are combined with libraries compiled with Clang in one process. So, code compiled with GCC unwind.h should work with base system libgcc_s and code compiled with libcxxrt unwind.h should work with GCC libgcc_s. Maybe the GCC ports can be patched to match the base system but I'm not sure upstream would accept such a patch, especially since upstream libcxxrt has already become compatible.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20210314210039.2da1b9ba>