[3/3] htl: Make pthread_mutex_t pointer-aligned
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
dj/TryBot-32bit |
success
|
Build for i686
|
Commit Message
This is for future-proofing. On i386, it is 4-byte aligned anyway, but
on x86_64, we want it 8-byte aligned, not 4-byte aligned.
Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
---
.../hurd/htl/bits/types/struct___pthread_mutex.h | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
Comments
Applied, thanks!
Sergey Bugaev via Libc-alpha, le mar. 14 févr. 2023 20:37:22 +0300, a ecrit:
> This is for future-proofing. On i386, it is 4-byte aligned anyway, but
> on x86_64, we want it 8-byte aligned, not 4-byte aligned.
>
> Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
> ---
> .../hurd/htl/bits/types/struct___pthread_mutex.h | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h b/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
> index d7b239f4..11caa870 100644
> --- a/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
> +++ b/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
> @@ -30,20 +30,23 @@ struct __pthread_mutex
> int __shpid;
> int __type;
> int __flags;
> - unsigned int __reserved1;
> - unsigned int __reserved2;
> + union
> + {
> + unsigned int __reserved[2];
> + void *__pointer_aligned;
> + };
> };
>
> /* Static mutex initializers. */
> #define __PTHREAD_MUTEX_INITIALIZER \
> - { 0, 0, 0, 0, __PTHREAD_MUTEX_TIMED, 0, 0, 0 }
> + { 0, 0, 0, 0, __PTHREAD_MUTEX_TIMED, 0, { { 0, 0 } } }
>
> /* The +1 is to mantain binary compatibility with the old
> * libpthread implementation. */
> #define __PTHREAD_ERRORCHECK_MUTEX_INITIALIZER \
> - { 0, 0, 0, 0, __PTHREAD_MUTEX_ERRORCHECK + 1, 0, 0, 0 }
> + { 0, 0, 0, 0, __PTHREAD_MUTEX_ERRORCHECK + 1, 0, { { 0, 0 } } }
>
> #define __PTHREAD_RECURSIVE_MUTEX_INITIALIZER \
> - { 0, 0, 0, 0, __PTHREAD_MUTEX_RECURSIVE + 1, 0, 0, 0 }
> + { 0, 0, 0, 0, __PTHREAD_MUTEX_RECURSIVE + 1, 0, { { 0, 0 } } }
>
> #endif /* bits/types/struct___pthread_mutex.h */
> --
> 2.39.1
>
@@ -30,20 +30,23 @@ struct __pthread_mutex
int __shpid;
int __type;
int __flags;
- unsigned int __reserved1;
- unsigned int __reserved2;
+ union
+ {
+ unsigned int __reserved[2];
+ void *__pointer_aligned;
+ };
};
/* Static mutex initializers. */
#define __PTHREAD_MUTEX_INITIALIZER \
- { 0, 0, 0, 0, __PTHREAD_MUTEX_TIMED, 0, 0, 0 }
+ { 0, 0, 0, 0, __PTHREAD_MUTEX_TIMED, 0, { { 0, 0 } } }
/* The +1 is to mantain binary compatibility with the old
* libpthread implementation. */
#define __PTHREAD_ERRORCHECK_MUTEX_INITIALIZER \
- { 0, 0, 0, 0, __PTHREAD_MUTEX_ERRORCHECK + 1, 0, 0, 0 }
+ { 0, 0, 0, 0, __PTHREAD_MUTEX_ERRORCHECK + 1, 0, { { 0, 0 } } }
#define __PTHREAD_RECURSIVE_MUTEX_INITIALIZER \
- { 0, 0, 0, 0, __PTHREAD_MUTEX_RECURSIVE + 1, 0, 0, 0 }
+ { 0, 0, 0, 0, __PTHREAD_MUTEX_RECURSIVE + 1, 0, { { 0, 0 } } }
#endif /* bits/types/struct___pthread_mutex.h */