fix riscv64 signal.h namespace violations and ucontext API mismatches
authorRich Felker <dalias@aerifal.cx>
Sun, 29 Sep 2019 22:20:40 +0000 (18:20 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 29 Sep 2019 22:53:32 +0000 (18:53 -0400)
commitab3eb89a8b83353cdaab12ed017a67a7730f90e9
treeb91deb687c7004417207e4b0a6077522211d2a95
parent33bc7f05fc856d8819083afe4668907a9d262e4c
fix riscv64 signal.h namespace violations and ucontext API mismatches

the top-level mcontext_t member names were namespace-violating in
standards profiles before, and nested-level member names (some of them
single-letter) were egregiously bad namespace impositions even in
non-strict profiles. moreover, they mismatched those used in the
public API first defined in glibc, breaking any code making use of
them.

unlike most archs, the public API used in glibc for riscv mcontext_t
members was designed to be namespace-safe, so we can and should expose
the members regardless of feature test macros. only the typedefs for
greg_t, gregset_t, and fpregset_t need to be protected behind FTMs.

the struct tags for mcontext_t and ucontext_t are also changed. for
mcontext_t this is necessary to make the common definition across
profiles namespace-safe. for ucontext_t, it's just a matter of
matching the tag from the glibc-defined API.

these changes are split off and expanded from a patch by Khem Raj.
arch/riscv64/bits/signal.h
arch/riscv64/pthread_arch.h