diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2023-12-23 11:01:08 +0100 |
---|---|---|
committer | Thomas Schwinge <tschwinge@baylibre.com> | 2025-03-14 13:21:18 +0100 |
commit | fad9d58e057e5f976cacdca90e2519ed5f0990ad (patch) | |
tree | 7c147c78686e46310da3e3f422e9fa62cbec37a5 /libgcc | |
parent | c650b557cb01f97bebb894aa68e5e74c2147c395 (diff) | |
download | gcc-fad9d58e057e5f976cacdca90e2519ed5f0990ad.zip gcc-fad9d58e057e5f976cacdca90e2519ed5f0990ad.tar.gz gcc-fad9d58e057e5f976cacdca90e2519ed5f0990ad.tar.bz2 |
Revert "GCN, nvptx: Basic '__cxa_guard_{acquire,abort,release}' for C++ static local variables support"
GCN, nvptx now has libstdc++-v3/libsupc++ proper.
This reverts commit c0bf7ea189ecf252152fe15134f70f576bcd20b2.
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/c++-minimal/README | 2 | ||||
-rw-r--r-- | libgcc/c++-minimal/guard.c | 97 | ||||
-rw-r--r-- | libgcc/config/gcn/t-amdgcn | 3 | ||||
-rw-r--r-- | libgcc/config/nvptx/t-nvptx | 3 |
4 files changed, 0 insertions, 105 deletions
diff --git a/libgcc/c++-minimal/README b/libgcc/c++-minimal/README deleted file mode 100644 index 832f126..0000000 --- a/libgcc/c++-minimal/README +++ /dev/null @@ -1,2 +0,0 @@ -Minimal hacked-up version of some C++ support for offload devices, until we -have libstdc++-v3/libsupc++ proper. diff --git a/libgcc/c++-minimal/guard.c b/libgcc/c++-minimal/guard.c deleted file mode 100644 index 98ac288..0000000 --- a/libgcc/c++-minimal/guard.c +++ /dev/null @@ -1,97 +0,0 @@ -/* 'libstdc++-v3/libsupc++/guard.cc' for offload devices, until we have - libstdc++-v3/libsupc++ proper. - - Copyright (C) 2002-2025 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -<http://www.gnu.org/licenses/>. */ - -#if defined __AMDGCN__ -#elif defined __nvptx__ -#else -# error not ported -#endif - -#include "../../libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h" - -/* Copy'n'paste/edit from 'libstdc++-v3/libsupc++/cxxabi.h'. */ - -int -__cxa_guard_acquire(__guard*); - -void -__cxa_guard_release(__guard*); - -void -__cxa_guard_abort(__guard*); - -/* Copy'n'paste/edit from 'libstdc++-v3/libsupc++/guard.cc'. */ - -#undef _GLIBCXX_GUARD_TEST_AND_ACQUIRE -#undef _GLIBCXX_GUARD_SET_AND_RELEASE -#define _GLIBCXX_GUARD_SET_AND_RELEASE(G) _GLIBCXX_GUARD_SET (G) - -static inline int -init_in_progress_flag(__guard* g) -{ return ((char *)g)[1]; } - -static inline void -set_init_in_progress_flag(__guard* g, int v) -{ ((char *)g)[1] = v; } - -static inline void -throw_recursive_init_exception(void) -{ - // Use __builtin_trap so we don't require abort(). - __builtin_trap(); -} - -// acquire() is a helper function used to acquire guard if thread support is -// not compiled in or is compiled in but not enabled at run-time. -static int -acquire(__guard *g) -{ - // Quit if the object is already initialized. - if (_GLIBCXX_GUARD_TEST(g)) - return 0; - - if (init_in_progress_flag(g)) - throw_recursive_init_exception(); - - set_init_in_progress_flag(g, 1); - return 1; -} - -int __cxa_guard_acquire (__guard *g) -{ - return acquire (g); -} - -void __cxa_guard_abort (__guard *g) -{ - set_init_in_progress_flag(g, 0); -} - -void __cxa_guard_release (__guard *g) -{ - set_init_in_progress_flag(g, 0); - _GLIBCXX_GUARD_SET_AND_RELEASE (g); -} diff --git a/libgcc/config/gcn/t-amdgcn b/libgcc/config/gcn/t-amdgcn index b00adc7..d1d9a4f 100644 --- a/libgcc/config/gcn/t-amdgcn +++ b/libgcc/config/gcn/t-amdgcn @@ -8,9 +8,6 @@ LIB2ADD += $(srcdir)/config/gcn/atomic.c \ $(srcdir)/config/gcn/lib2-bswapti2.c \ $(srcdir)/config/gcn/unwind-gcn.c -# Until we have libstdc++-v3/libsupc++ proper. -LIB2ADD += $(srcdir)/c++-minimal/guard.c - LIB2ADDEH= LIB2FUNCS_EXCLUDE=__main diff --git a/libgcc/config/nvptx/t-nvptx b/libgcc/config/nvptx/t-nvptx index 1ff574c..f295898 100644 --- a/libgcc/config/nvptx/t-nvptx +++ b/libgcc/config/nvptx/t-nvptx @@ -3,9 +3,6 @@ LIB2ADD=$(srcdir)/config/nvptx/reduction.c \ $(srcdir)/config/nvptx/atomic.c \ $(srcdir)/config/nvptx/unwind-nvptx.c -# Until we have libstdc++-v3/libsupc++ proper. -LIB2ADD += $(srcdir)/c++-minimal/guard.c - LIB2ADDEH= LIB2FUNCS_EXCLUDE= |