|
Message-ID: <307db9de-e1e6-714e-8ccb-7a9b98b4a348@gmail.com> Date: Sat, 28 Sep 2019 16:39:11 -0700 From: Khem Raj <raj.khem@...il.com> To: musl@...ts.openwall.com, Rich Felker <dalias@...c.org> Subject: Re: [PATCH] Change container for riscv floating-point state to __riscv_mc_fp_state On 9/28/19 4:24 PM, Rich Felker wrote: > On Sat, Sep 28, 2019 at 04:03:48PM -0700, Khem Raj wrote: >> Match the struct elements with glibc >> glibc also uses __riscv_mc prefix, some packages like gdb uses that >> >> Signed-off-by: Khem Raj <raj.khem@...il.com> >> --- >> arch/riscv64/bits/signal.h | 18 +++++++++--------- >> arch/riscv64/bits/user.h | 2 +- >> 2 files changed, 10 insertions(+), 10 deletions(-) >> >> diff --git a/arch/riscv64/bits/signal.h b/arch/riscv64/bits/signal.h >> index 76d7ad80..aba7ab00 100644 >> --- a/arch/riscv64/bits/signal.h >> +++ b/arch/riscv64/bits/signal.h >> @@ -13,25 +13,25 @@ typedef unsigned long greg_t; >> typedef unsigned long gregset_t[32]; >> >> struct __riscv_mc_f_ext_state { >> - unsigned int f[32]; >> - unsigned int fcsr; >> + unsigned int __f[32]; >> + unsigned int __fcsr; >> }; >> >> struct __riscv_mc_d_ext_state { >> - unsigned long long f[32]; >> - unsigned int fcsr; >> + unsigned long long __f[32]; >> + unsigned int __fcsr; >> }; >> >> struct __riscv_mc_q_ext_state { >> - unsigned long long f[64] __attribute__((aligned(16))); >> - unsigned int fcsr; >> + unsigned long long __f[64] __attribute__((aligned(16))); >> + unsigned int __fcsr; >> unsigned int reserved[3]; >> }; >> >> union __riscv_mc_fp_state { >> - struct __riscv_mc_f_ext_state f; >> - struct __riscv_mc_d_ext_state d; >> - struct __riscv_mc_q_ext_state q; >> + struct __riscv_mc_f_ext_state __f; >> + struct __riscv_mc_d_ext_state __d; >> + struct __riscv_mc_q_ext_state __q; >> }; > > This looks like an improvement for another major reason too -- the > names f, d, q, are really bad namespace pollution to have in the > default profile. > > There are actually more namespace problems in this file too, some of > them actually conformance issues. > >> diff --git a/arch/riscv64/bits/user.h b/arch/riscv64/bits/user.h >> index d2e383b2..9918a2fe 100644 >> --- a/arch/riscv64/bits/user.h >> +++ b/arch/riscv64/bits/user.h >> @@ -5,4 +5,4 @@ struct user_fpregs_struct { >> >> #define ELF_NGREG 32 >> typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG]; >> -typedef struct user_fpregs_struct elf_fpregset_t; >> +typedef union __riscv_mc_fp_state elf_fpregset_t; >> -- >> 2.23.0 > > This part unfortunately depends on signal.h, which sys/user.h does not > include. Since sys/user.h is a junk header it might be acceptable to > just make the rv64 bits include signal.h, or to make it always include > signal.h. I think including bitss/signal.h in sys/user.h on rv64 is a good compromise. Do you want a v2 with this change ? or I can send the include part as a separate patch on top > > 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.