diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-10-05 14:07:28 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-10-06 12:52:46 -0300 |
commit | e82aab227bdf3faa0f28a69dbf50b5562659d1cf (patch) | |
tree | be705a9dbf78497d4a108f165bddc54b8eef9bc6 /sysdeps/x86_64/x32/fpu | |
parent | 90d58fe8442fb2f79cab88c07af91c9eae59419a (diff) | |
download | glibc-e82aab227bdf3faa0f28a69dbf50b5562659d1cf.tar.gz glibc-e82aab227bdf3faa0f28a69dbf50b5562659d1cf.tar.xz glibc-e82aab227bdf3faa0f28a69dbf50b5562659d1cf.zip |
csu: Disable stack protector for static-reloc for static-pie
For instance on x86_64 with gcc 12.1.1 andwith fstack-protector enabled the empty function still generates a stack protector code sequence: 0000000000000000 <_dl_relocate_static_pie>: 0: 48 83 ec 18 sub $0x18,%rsp 4: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax b: 00 00 d: 48 89 44 24 08 mov %rax,0x8(%rsp) 12: 31 c0 xor %eax,%eax 14: 48 8b 44 24 08 mov 0x8(%rsp),%rax 19: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax 20: 00 00 22: 75 05 jne 29 <_dl_relocate_static_pie+0x29> 24: 48 83 c4 18 add $0x18,%rsp 28: c3 ret 29: e8 00 00 00 00 call 2e <_dl_relocate_static_pie+0x2e> And since the function is called prior thread pointer setup, it triggers a invalid memory access (this is shown with the failure of elf/tst-tls1-static-non-pie). Although it might characterizes as compiler issue or missed optimization, to be safe also disables stack protector on static-reloc object. Checked on x86_64-linux-gnu and sparc64-linux-gnu. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'sysdeps/x86_64/x32/fpu')
0 files changed, 0 insertions, 0 deletions