https://gcc.gnu.org/g:d54aaab350d4224c458b50af473b5ea6bb9e14a4

commit r17-342-gd54aaab350d4224c458b50af473b5ea6bb9e14a4
Author: H.J. Lu <[email protected]>
Date:   Wed May 6 04:56:32 2026 +0800

    libssp: Change __stack_chk_guard to uintptr_t
    
    Since the only test of __stack_chk_guard in GCC is declared as an integer:
    
     #ifdef __LP64__
     const unsigned long int __stack_chk_guard = 0x2d853605a4d9a09cUL;
     #else
     const unsigned long int __stack_chk_guard = 0xdd2cc927UL;
     #endif
    
    and it is natural to assign an integer to __stack_chk_guard,
    
    commit c05b5e5d8cb660ed43159d66fd669c20746d6bea
    Author: H.J. Lu <[email protected]>
    Date:   Fri Sep 12 18:52:39 2025 -0700
    
        c/c++: Declare stack protection guard as a global symbol
    
    declared __stack_chk_guard as uintptr_t if it is an internal global
    symbol.  Change __stack_chk_guard in libssp to match the internal
    symbol type.
    
            PR c/121911
            * ssp.c: Include <stdint.h>.  Change __stack_chk_guard to
            uintptr_t.
    
    Signed-off-by: H.J. Lu <[email protected]>

Diff:
---
 libssp/ssp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libssp/ssp.c b/libssp/ssp.c
index 3f497dcc1370..47abdf4e13d6 100644
--- a/libssp/ssp.c
+++ b/libssp/ssp.c
@@ -66,8 +66,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If 
not, see
 #ifdef HAVE_SYSLOG_H
 # include <syslog.h>
 #endif
+#include <stdint.h>
 
-void *__stack_chk_guard = 0;
+uintptr_t __stack_chk_guard = 0;
 
 static void __attribute__ ((constructor))
 __guard_setup (void)

Reply via email to