mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-16 10:00:12 +00:00
b309f058cf
General purpose registers in mcontext_t structure are 8 bytes long for both MIPS32/MIPS64. get/set/make/swap context implementations for MIPS O32 incorrectly assume that general purpose registers in this structure are 4 bytes long. This patch is fixing that. Tested for MIPS O32 LE and BE. Compared objdump of modified functions for mips n32 and mips n64. [BZ #21548] * sysdeps/unix/sysv/linux/mips/getcontext.S: Define MCONTEXT_SZGREG as 8 and use it when copying general purpose registers. * sysdeps/unix/sysv/linux/mips/makecontext.S: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/Makefile: Include new test for mips o32. * sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c: Added new test for mips o32. * sysdeps/unix/sysv/linux/mips/setcontext.S: Define MCONTEXT_SZGREG as 8 and use it when copying general purpose registers. * sysdeps/unix/sysv/linux/mips/swapcontext.S: Likewise.
9 lines
164 B
Makefile
9 lines
164 B
Makefile
ifeq ($(subdir),conform)
|
|
# For bugs 17786 and 21278.
|
|
conformtest-xfail-conds += mips-o32-linux
|
|
endif
|
|
|
|
ifeq ($(subdir),stdlib)
|
|
tests += bug-getcontext-mips-gp
|
|
endif
|