This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 27/29] [AARCH64] Fix up ucontext for ILP32
- From: Will Newton <will dot newton at linaro dot org>
- To: Andrew Pinski <apinski at cavium dot com>
- Cc: libc-alpha <libc-alpha at sourceware dot org>
- Date: Tue, 18 Nov 2014 14:54:46 +0000
- Subject: Re: [PATCH 27/29] [AARCH64] Fix up ucontext for ILP32
- Authentication-results: sourceware.org; auth=none
- References: <1414396793-9005-1-git-send-email-apinski at cavium dot com> <1414396793-9005-28-git-send-email-apinski at cavium dot com>
On 27 October 2014 07:59, Andrew Pinski <apinski@cavium.com> wrote:
> In ILP32 we want to use the same layout of the structure ucontext as LP64 so
> we need to add a padding for uc_link and change the type of uc_flags to
> be the kernel unsigned long type.
>
> * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (struct ucontext):
> Change the type of uc_flags to __SYSCALL_ULONG_TYPE.
> Add padding for uc_link if ILP32.
> ---
> sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h | 10 ++++++++--
> 1 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
> index 476f5de..5d224fb 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
> +++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
> @@ -46,8 +46,14 @@ typedef struct sigcontext mcontext_t;
> /* Userlevel context. */
> typedef struct ucontext
> {
> - unsigned long uc_flags;
> - struct ucontext *uc_link;
> + __SYSCALL_ULONG_TYPE uc_flags;
Is there a reason to use this instead of __syscall_ulong_t?
> +#if defined(__ILP32__) && defined(__AARCH64EB__)
> + int __pad_uc_link;
> +#endif
> + struct ucontext *uc_link;
> +#if defined(__ILP32__) && !defined(__AARCH64EB__)
> + int __pad_uc_link;
> +#endif
> stack_t uc_stack;
> __sigset_t uc_sigmask;
> mcontext_t uc_mcontext;
> --
> 1.7.2.5
>
--
Will Newton
Toolchain Working Group, Linaro