Date: Sun, 6 Dec 2020 12:06:49 -0500 From: Rich Felker <dalias@...c.org> To: Ariadne Conill <ariadne@...eferenced.org> Cc: Szabolcs Nagy <nsz@...t70.net>, musl@...ts.openwall.com, Drew DeVault <sir@...wn.com> Subject: Re: [PATCH v2] riscv64: correct struct __ucontext name On Sun, Dec 06, 2020 at 04:55:39PM +0000, Ariadne Conill wrote: > > Hello, > > On Sunday, December 6, 2020 5:49:25 AM MST Drew DeVault wrote: > > On Sun Dec 6, 2020 at 3:51 AM EST, Szabolcs Nagy wrote: > > > * Drew DeVault <sir@...wn.com> [2020-12-05 18:10:06 +0000]: > > > > This makes it consistent with other architectures and fixes some issues > > > > with downstream software. > > > > > > which software? > > > > > > glibc uses struct ucontext_t too and user code should use ucontext_t > > > without struct. > > Some glibc architecture ports use the struct __ucontext and even struct > ucontext names, or at least did in the past. > > > libucontext, which does use ucontext_t. > > > > In fact, the issue was more related to the type conflict with > > ucontext.h, which declared struct __ucontext in the scope of its > > function declarations due to the naming mismatch. > > glibc uses the POSIX 2004 standardized ucontext_t type in its public > definitions. I believe musl should do the same. This produces a compile-time error is ucontext.h is included without the right feature test macros, since signal.h will not have defined ucontext_t in that case. That's why the public declarations must use the struct tag. > As far as libucontext goes, this is increasingly moot because 0.13 will > introduce freestanding mode which avoids the musl definitions entirely, instead > using simplified (though ABI compatible) definitions, allowing it to not only be > used on musl but on other libc and other OS entirely (for example, it is known > to now build on AmigaOS and Darwin). > > libucontext using its own definitions is an important step toward eventually > taking ucontext.h out of musl entirely, and providing it in libucontext > instead, too, which I think musl should do since the ucontext API was dropped > from POSIX. It's still an open question whether musl will eventually add these, but the contents of ucontext.h are independent of the implementation; they're just function declarations. The *type* declarations are in signal.h and are *not* dropped from POSIX, so they can't be removed. > But right now, I think the best way forward is to leave the architecture > headers alone and just fix the ucontext.h definitions instead. I can send a > patch doing that if you want to focus on other things. As described above this does not work. 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.