mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-15 23:50:13 +00:00
hppa: Align __clone stack argument to 8 bytes (Bug 25066)
The hppa architecture requires strict alignment for loads and stores.
As a result, the minimum stack alignment that will work is 8 bytes.
This patch adjusts __clone() to align the stack argument passed to it.
It also adjusts slightly some formatting.
This fixes the nptl/tst-tls1 test.
(cherry picked from commit e4c23a029a
)
This commit is contained in:
parent
994e529a37
commit
43598ef6e2
1
NEWS
1
NEWS
@ -28,6 +28,7 @@ The following bugs are resolved with this release:
|
||||
unconditionally
|
||||
[24899] login: Add nonstring attributes to struct utmp, struct utmpx
|
||||
[24902] login: pututxline could fail to overwrite existing entries
|
||||
[25066] FAIL: nptl/tst-tls1 on hppa
|
||||
[25189] Don't use a custom wrapper macro around __has_include
|
||||
[25203] libio: Disable vtable validation for pre-2.1 interposed handles
|
||||
[25204] Ignore LD_PREFER_MAP_32BIT_EXEC for SUID programs
|
||||
|
@ -73,13 +73,18 @@ ENTRY(__clone)
|
||||
#endif
|
||||
|
||||
/* Sanity check arguments. */
|
||||
comib,=,n 0, %arg0, .LerrorSanity /* no NULL function pointers */
|
||||
comib,=,n 0, %arg1, .LerrorSanity /* no NULL stack pointers */
|
||||
comib,=,n 0,%arg0,.LerrorSanity /* no NULL function pointers */
|
||||
comib,=,n 0,%arg1,.LerrorSanity /* no NULL stack pointers */
|
||||
|
||||
/* Ensure stack argument is 8-byte aligned. */
|
||||
ldo 7(%r25),%r25
|
||||
depi 0,31,3,%r25
|
||||
|
||||
/* Save the function pointer, arg, and flags on the new stack. */
|
||||
stwm %r26, 64(%r25)
|
||||
stw %r23, -60(%r25)
|
||||
stw %r24, -56(%r25)
|
||||
|
||||
/* Clone arguments are (int flags, void * child_stack) */
|
||||
copy %r24, %r26 /* flags are first */
|
||||
/* User stack pointer is in the correct register already */
|
||||
|
Loading…
Reference in New Issue
Block a user