https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125466
Bug ID: 125466
Summary: Inconsistent stack protection implementation between
GCC and run-time
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: meta-bug
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: hjl.tools at gmail dot com
Depends on: 125190, 125205, 125233
Target Milestone: ---
GCC documents stack_protect_guard symbol as: `The type of this variable must be
@code{ptr_type_node}.` and libssp followed this. But TARGET_LIBC_PROVIDES_SSP
targets, including glibc and many other C run-times, didn't follow this
document
part. glibc (and many other libc and linux kernel even) used `uintptr_t`.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125190
[Bug 125190] Stale documentation of __stack_chk_guard
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125205
[Bug 125205] __attribute__ ((optimize ("stack-protector-all"))) doesn't work if
TARGET_LIBC_PROVIDES_SSP is undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125233
[Bug 125233] Useless LINK_SSP_SPEC if TARGET_LIBC_PROVIDES_SSP is defined