aarch64: Revert the change of the __reserved member of mcontext_t
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Mon, 22 Jan 2018 11:13:31 +0000 (11:13 +0000)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Wed, 24 Jan 2018 11:53:30 +0000 (11:53 +0000)
The uc_mcontext.__reserved member of ucontext_t is a user visible API,
that should not be changed, because this is the only way to access cpu
states of various extensions of linux asm/sigcontext.h, it does not
violate namespace rules either, so revert this part of the commit

commit 4fa9b3bfe6759c82beb4b043a54a3598ca467289
Commit:     Joseph Myers <joseph@codesourcery.com>

    Fix mcontext_t sigcontext namespace (bug 21457).

(In principle the user can type cast &uc_mcontext to struct sigcontext*
to use the linux sigcontext fields, but that's not the existing practice
since mcontext_t used to be a typedef of struct sigcontext.)

[BZ #22742]
* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (__glibc_reserved1):
Rename to __reserved and add comment.
* sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (__glibc_reserved1):
Rename to __reserved.

ChangeLog
sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym

index 53a88a1..0f5f959 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2018-01-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       [BZ #22742]
+       * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (__glibc_reserved1):
+       Rename to __reserved and add comment.
+       * sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (__glibc_reserved1):
+       Rename to __reserved.
+
 2018-01-24  Joseph Myers  <joseph@codesourcery.com>
 
        * scripts/build-many-glibcs.py (Context.add_all_configs): Add
index fe72fdd..f1b3ab5 100644 (file)
@@ -56,7 +56,11 @@ typedef struct
     unsigned long long int __ctx(sp);
     unsigned long long int __ctx(pc);
     unsigned long long int __ctx(pstate);
-    unsigned char __glibc_reserved1[4096] __attribute__ ((__aligned__ (16)));
+    /* This field contains extension records for additional processor
+       state such as the FP/SIMD state.  It has to match the definition
+       of the corresponding field in the sigcontext struct, see the
+       arch/arm64/include/uapi/asm/sigcontext.h linux header for details.  */
+    unsigned char __reserved[4096] __attribute__ ((__aligned__ (16)));
   } mcontext_t;
 
 /* Userlevel context.  */
index 479bdda..ab3930c 100644 (file)
@@ -38,7 +38,7 @@ oX0                           mcontext (regs)
 oSP                            mcontext (sp)
 oPC                            mcontext (pc)
 oPSTATE                                mcontext (pstate)
-oEXTENSION                      mcontext (__glibc_reserved1)
+oEXTENSION                      mcontext (__reserved)
 
 #define fpsimd_context(member)  offsetof (struct fpsimd_context, member)