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 /ports/ChangeLog.arm | |
parent | 29c793b3c2947badd9d05e45736e406fb12021e8 (diff) | |
download | glibc-b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8.tar.gz glibc-b7f2d27dbd85f6a0966dc389ad4f8205085b7ae8.tar.xz 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 'ports/ChangeLog.arm')
-rw-r--r-- | ports/ChangeLog.arm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index a84c7d211c..0724dbd9a0 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,3 +1,18 @@ +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. + 2013-09-24 Will Newton <will.newton@linaro.org> * ports/sysdeps/arm/nptl/tls.h (TLS_INIT_TP_EXPENSIVE): Remove |