This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] [BZ #19363] Use INTERNAL_SYSCALL_TIMES for Linux times
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 16 Dec 2015 13:18:03 -0800
- Subject: Re: [PATCH] [BZ #19363] Use INTERNAL_SYSCALL_TIMES for Linux times
- Authentication-results: sourceware.org; auth=none
- References: <20151215032733 dot GA14426 at gmail dot com> <mvm37v49itj dot fsf at hawking dot suse dot de> <20151215150001 dot GT11489 at vapier dot lan> <mvmtwnj7ni7 dot fsf at hawking dot suse dot de> <CAMe9rOqi=mbzbSzPB26HHm=K0iddv6K8Cs8ACbDd_p=Q-ShWew at mail dot gmail dot com> <mvm7fkf7hr0 dot fsf at hawking dot suse dot de> <CAMe9rOrZc-CM4Rh4YBGUQeZzFC9kB0MJ8c-QZ_UST9s5=VXjYg at mail dot gmail dot com> <8760zza83t dot fsf at igel dot home> <CAMe9rOphOzT=M9ni=Cxar=vaob3rgFoiGO2KS+jbetAXLQ5F3g at mail dot gmail dot com> <871tan9trb dot fsf at igel dot home> <CAMe9rOq00tDiFqZh0g3tpfd9c1oKo7=k-Be3uF_ATTn0e9mQpQ at mail dot gmail dot com> <mvm37v27put dot fsf at hawking dot suse dot de> <CAMe9rOpRFDQsymEAiZ=MGXL49aZDBMfuMG=KrYZRGdS4DdZGrQ at mail dot gmail dot com> <mvmbn9q5xen dot fsf at hawking dot suse dot de> <CAMe9rOqFGUdyp_PZTxgmKEt8v8MYL36v6-zKcmO926XneM1JZw at mail dot gmail dot com> <mvm7fke5vgj dot fsf at hawking dot suse dot de> <CAMe9rOqQvXcP5CjrZOQwusMNqJaHKt+N4ZxfeoVSPFecOaCAdw at mail dot gmail dot com> <56719548 dot 8090307 at linaro dot org>
On Wed, Dec 16, 2015 at 8:46 AM, Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
>
>
> On 16-12-2015 12:42, H.J. Lu wrote:
>> On Wed, Dec 16, 2015 at 6:17 AM, Andreas Schwab <schwab@suse.de> wrote:
>>> "H.J. Lu" <hjl.tools@gmail.com> writes:
>>>
>>>> Then they have to use proper type to hold the return from "syscall".
>>>
>>> The proper type is long long which works for both x86_64 and x32.
>>>
>>
>> I opened a syscall (), not "syscall" instruction, bug:
>>
>> https://sourceware.org/bugzilla/show_bug.cgi?id=19371
>>
>
> The question is why instead of reimplement each x32 syscall call that
> requires long long return with specific arch implementations (this
> very patch idea) we change the x32 syscall return to long long
> instead?
>
> So instead of redefine each INTERNAL_SYSCALL_XXX for x32 we make it
> work on the current times implementation instead.
Please think hard on this. X32 is ILP32 and syscall puts return
value in 64-bit register RAX. All, but 3, system calls have 32-bit
return value with zero upper 32-bits in RAX. Now RAX has
0x80000000. How do you extend it to 64-bit if syscall returns 64-bit?
--
H.J.