about summary refs log tree commit diff
path: root/ports/ChangeLog.arm
diff options
context:
space:
mode:
authorWill Newton <will.newton@linaro.org>2013-12-10 16:26:38 +0000
committerWill Newton <will.newton@linaro.org>2014-01-14 14:02:34 +0000
commit2f10c4d6901e7a4c4ad294cc5bb8ece6547f4f62 (patch)
tree9694325d2c26b777f46a0e6b68eedc818b731896 /ports/ChangeLog.arm
parent497b1e69f9ad6d11341735d81b7c9181d168df90 (diff)
downloadglibc-2f10c4d6901e7a4c4ad294cc5bb8ece6547f4f62.tar.gz
glibc-2f10c4d6901e7a4c4ad294cc5bb8ece6547f4f62.tar.xz
glibc-2f10c4d6901e7a4c4ad294cc5bb8ece6547f4f62.zip
ARM: Don't apply pointer encryption to the frame pointer
The frame pointer register is rarely used for that purpose on ARM and
applications that look at the contents of the jmp_buf may be relying
on reading an unencrypted value. For example, Ruby uses the contents
of jmp_buf to find the root set for garbage collection so relies on
this pointer value being unencrypted. Without this patch the Ruby
testsuite fails with a segmentation fault.

ports/ChangeLog.arm:

2013-01-14  Will Newton  <will.newton@linaro.org>

	* sysdeps/arm/__longjmp.S: Don't apply pointer encryption
	to fp register.
	* sysdeps/arm/setjmp.S: Likewise.
	* sysdeps/arm/include/bits/setjmp.h (JMP_BUF_REGLIST): Add
	fp to register list, remove a4.
	* sysdeps/unix/sysv/linux/arm/sysdep.h (PTR_MANGLE_LOAD):
	New macro.
Diffstat (limited to 'ports/ChangeLog.arm')
-rw-r--r--ports/ChangeLog.arm10
1 files changed, 10 insertions, 0 deletions
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 353c3d6444..4371b3ccfb 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,13 @@
+2014-01-14  Will Newton  <will.newton@linaro.org>
+
+	* sysdeps/arm/__longjmp.S: Don't apply pointer encryption
+	to fp register.
+	* sysdeps/arm/setjmp.S: Likewise.
+	* sysdeps/arm/include/bits/setjmp.h (JMP_BUF_REGLIST): Add
+	fp to register list, remove a4.
+	* sysdeps/unix/sysv/linux/arm/sysdep.h (PTR_MANGLE_LOAD):
+	New macro.
+
 2014-01-10  Roland McGrath  <roland@hack.frob.com>
 
 	* sysdeps/arm/arm-mcount.S: