|
|
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.