|
Message-ID: <64955faf-c213-34bf-c7e2-691064da51f9@loongson.cn> Date: Sun, 25 Jun 2023 11:43:26 +0800 From: Hongliang Wang <wanghongliang@...ngson.cn> To: musl@...ts.openwall.com Subject: Re: add loongarch64 port v7. Friendly ping. 在 2023/6/1 下午8:44, wanghongliang 写道: > Hi,Rich > > Is there anything else that needs to be modified in > 0001-add-loongarch64-port-v7.patch? > > Looking forward to your reply. > > > 在 2023/5/10 上午11:36, 王洪亮 写道: >> Hi, Rich >> >> Is there anything else that needs to be modified in >> 0001-add-loongarch64-port-v7.patch? >> >> >> 在 2023/4/18 下午7:32, 王洪亮 写道: >>> >>> 在 2023/4/18 下午5:38, Szabolcs Nagy 写道: >>>> * 王洪亮 <wanghongliang@...ngson.cn> [2023-04-18 09:28:49 +0800]: >>>>> +++ b/arch/loongarch64/bits/signal.h >>>>> @@ -6,14 +6,27 @@ >>>>> #define SIGSTKSZ 16384 >>>>> #endif >>>>> >>>>> +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) >>>>> typedef unsigned long greg_t, gregset_t[32]; >>>>> >>>>> -typedef struct sigcontext { >>>>> +struct sigcontext { >>>>> unsigned long sc_pc; >>>>> - gregset_t sc_regs; >>>>> - unsigned int sc_flags; >>>>> - unsigned long sc_extcontext[]; >>>>> + unsigned long sc_regs[32]; >>>>> + unsigned int sc_flags; >>>>> + unsigned long sc_extcontext[] __attribute__((__aligned__(16))); >>>>> +}; >>>> this looks good. (i don't know if this is really >>>> needed in signal.h, but other targets have it too) >>>> >>>>> + >>>>> +typedef struct { >>>>> + unsigned long __pc; >>>>> + unsigned long __gregs[32]; >>>>> + unsigned int __flags; >>>>> + unsigned long __extcontext[] __attribute__((__aligned__(16))); >>>>> } mcontext_t; >>>> i would use the same struct tag as glibc so >>>> >>>> typedef struct mcontext_t { ... >>>> >>>> (we don't need c++ abi compat with glibc, but >>>> it's nicer to be consistent) >>>> >>>>> +#else >>>>> +typedef struct { >>>>> + unsigned long __space[34]; >>>>> +} mcontext_t; >>>> i would add the aligned attribute here. >>>> >>>> (it's more important to match the kernel layout than to >>>> avoid c extensions in standard mode: loongarch c compilers >>>> will all support the aligned attribute in system headers) >>> I understand there is no need for me to submit modifications, >>> you help me modify it directly,right? >>>>> +#endif >>>>> >>>>> struct sigaltstack { >>>>> void *ss_sp; >>>>> @@ -23,11 +36,10 @@ struct sigaltstack { >>>>> >>>>> typedef struct __ucontext >>>>> { >>>>> - unsigned long uc_flags; >>>>> + unsigned long __uc_flags; >>>>> struct __ucontext *uc_link; >>>>> stack_t uc_stack; >>>>> sigset_t uc_sigmask; >>>>> - long __uc_pad; >>>>> mcontext_t uc_mcontext; >>>>> } ucontext_t; >>>> looks good. >>>> >>>> (the only issue is if some code uses uc_flags in an >>>> arch independent way. i don't know if there is any >>>> use for it on linux. but we can fix that later on >>>> both glibc and musl side if it comes up.)
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.