diff options
author | Will Newton <will.newton@linaro.org> | 2013-08-07 13:55:30 +0100 |
---|---|---|
committer | Will Newton <will.newton@linaro.org> | 2013-10-03 11:35:50 +0100 |
commit | b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8 (patch) | |
tree | 5d08889f9d642580e01d529303ed56409982a221 /gshadow | |
parent | 29c793b3c2947badd9d05e45736e406fb12021e8 (diff) | |
download | glibc-b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8.tar glibc-b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8.tar.gz glibc-b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8.tar.bz2 glibc-b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8.zip |
ARM: Add pointer encryption support.
Add support for pointer encryption in glibc internal structures in C
and assembler code. Pointer encryption is a glibc security feature
described here:
https://sourceware.org/glibc/wiki/PointerEncryption
The ARM implementation uses global variables instead of thread pointer
relative accesses to get the value of the pointer encryption guard
because accessing the thread pointer can be very expensive on older
ARM cores.
ports/ChangeLog.arm:
2013-10-03 Will Newton <will.newton@linaro.org>
* sysdeps/arm/__longjmp.S (__longjmp): Demangle fp, sp
and lr when restoring register values.
* sysdeps/arm/include/bits/setjmp.h (JMP_BUF_REGLIST): Remove
sp and lr from list and replace fp with a4.
* sysdeps/arm/jmpbuf-unwind.h (_jmpbuf_sp): New function.
(_JMPBUF_UNWINDS_ADJ): Call _jmpbuf_sp.
* sysdeps/arm/setjmp.S (__sigsetjmp): Mangle fp, sp and lr
before storing register values.
* sysdeps/arm/sysdep.h (LDST_GLOBAL): New macro.
* sysdeps/unix/sysv/linux/arm/sysdep.h (PTR_MANGLE): New macro.
(PTR_DEMANGLE): Likewise. (PTR_MANGLE2): Likewise.
(PTR_DEMANGLE2): Likewise.
Diffstat (limited to 'gshadow')
0 files changed, 0 insertions, 0 deletions