diff options
author | Alan Modra <amodra@gmail.com> | 2013-08-17 18:37:18 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2013-10-04 10:39:11 +0930 |
commit | f7c399cff5bd04ee9dc117fb6b0f39597dc047c6 (patch) | |
tree | 5ac04e1c5d7386bdb8ce3ce1f183de6635390ac6 /ChangeLog | |
parent | 0b2c2ace3601d5d59cf89130b16840e7f132f7a6 (diff) | |
download | glibc-f7c399cff5bd04ee9dc117fb6b0f39597dc047c6.tar.gz glibc-f7c399cff5bd04ee9dc117fb6b0f39597dc047c6.tar.xz glibc-f7c399cff5bd04ee9dc117fb6b0f39597dc047c6.zip |
PowerPC SIGSTKSZ
http://sourceware.org/ml/libc-alpha/2013-08/msg00093.html This copies the sparc version of sigstack.h, which gives powerpc #define MINSIGSTKSZ 4096 #define SIGSTKSZ 16384 Before the VSX changes, struct rt_sigframe size was 1920 plus 128 for __SIGNAL_FRAMESIZE giving ppc64 exactly the default MINSIGSTKSZ of 2048. After VSX, ucontext increased by 256 bytes. Oops, we're over MINSIGSTKSZ, so powerpc has been using the wrong value for quite a while. Add another ucontext for TM and rt_sigframe is now at 3872, giving actual MINSIGSTKSZ of 4000. The glibc testcase that I was looking at was tst-cancel21, which allocates 2*SIGSTKSZ (not because the test is trying to be conservative, but because the test actually has nested signal stack frames). We blew the allocation by 48 bytes when using current mainline gcc to compile glibc (le ppc64). The required stack depth in _dl_lookup_symbol_x from the top of the next signal frame was 10944 bytes. I guess you'd want to add 288 to that, implying an actual SIGSTKSZ of 11232. * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h: New file.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 07aaa256d3..03c35b1b98 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2013-10-04 Alan Modra <amodra@gmail.com> + * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h: New file. + +2013-10-04 Alan Modra <amodra@gmail.com> + * sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S: Use conditional form of branch and link when obtaining pc. * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise. |