Date: Sun, 6 Dec 2020 18:32:34 +0100 From: Szabolcs Nagy <nsz@...t70.net> To: Rich Felker <dalias@...c.org> Cc: Ariadne Conill <ariadne@...eferenced.org>, musl@...ts.openwall.com, Drew DeVault <sir@...wn.com> Subject: Re: [PATCH v2] riscv64: correct struct __ucontext name * Rich Felker <dalias@...c.org> [2020-12-06 12:19:30 -0500]: > On Sun, Dec 06, 2020 at 05:10:25PM +0000, Ariadne Conill wrote: > > Bummer. In that case, I suggest musl use the same struct tag consistently. It > > should probably be struct ucontext_t for consistency with glibc. > > I don't recall the original reason it was inconsitent with glibc here. glibc changed the declaration 3 years ago (breaking c++ abi) before that it was not posix conform so musl could not be consistent with it. see "Rename struct ucontext tag" in https://sourceware.org/bugzilla/show_bug.cgi?id=21457 > Note that signal.h has (which is probably wrong and should be > removed): > > #ifdef _GNU_SOURCE > #define __ucontext ucontext > #endif > > so that the tag gets renamed if _GNU_SOURCE is defined. Maybe at one > point glibc called it "struct ucontext", which was a namespace > violation since it's not in a reserved namespace, and we used > __ucontext to get the freedom to rename it and expose that only in a > _GNU_SOURCE context. > > Whatever the reason, though, the struct tags is C++ABI and should not > be changed. The rv64 inconsitency was unintentional and hopefully is > not yet widely used enough for anyone to care that it's being fixed > now (in theory could mess up linking C++ libs with ucontext_t in their > public interface surface). > > Note that none of this is visible to applications that aren't doing > anything horribly wrong. Neither "struct ucontext_t" nor "struct > __ucontext" (nor "struct ucontext", which it looks like we were > wrongly trying to support) is API. > > Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.