From 3b58032de14f7a08b1c60ee9fc4857c5fbfc8e57 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 11 Oct 2022 23:34:19 +0200 Subject: [PATCH] nvptx: Don't use global constructor for SSP setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Given that nvptx newlib currently restricts itself to ELIX level 1, this is not already a problem. However, in the following we'd like to lift that restriction, and then run into: [...]/newlib/libc/ssp/stack_protector.c: In function ‘__stack_chk_init’: [...]/newlib/libc/ssp/stack_protector.c:31:1: sorry, unimplemented: global constructors not supported on this target 31 | } | ^ GCC patch "nvptx: Support global constructors/destructors via 'collect2'" has been posted, but not yet accepted. Until that is resolved, use the same manual SSP setup as for GCN. --- newlib/libc/ssp/stack_protector.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/newlib/libc/ssp/stack_protector.c b/newlib/libc/ssp/stack_protector.c index cd51543f0..5e9d75f0f 100644 --- a/newlib/libc/ssp/stack_protector.c +++ b/newlib/libc/ssp/stack_protector.c @@ -5,8 +5,8 @@ #include #include -#if defined(__AMDGCN__) -/* GCN does not support constructors, yet. */ +#if defined(__AMDGCN__) || defined(__nvptx__) +/* Global constructors not supported on this target, yet. */ uintptr_t __stack_chk_guard = 0x00000aff; /* 0, 0, '\n', 255 */ #else