aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2025-03-18 10:10:30 +0100
committerThomas Schwinge <tschwinge@baylibre.com>2025-04-08 12:17:02 +0200
commit54ab0f6785c006ddff056dab9c0240cddae82020 (patch)
tree4af1a5982024f769a6d6b15769b19c7362121b63 /libgcc
parent815abd68353751d53ed9299e218f8ca1cc108d5f (diff)
downloadgcc-54ab0f6785c006ddff056dab9c0240cddae82020.zip
gcc-54ab0f6785c006ddff056dab9c0240cddae82020.tar.gz
gcc-54ab0f6785c006ddff056dab9c0240cddae82020.tar.bz2
GCN, nvptx: Define '_Unwind_RaiseException', '_Unwind_Resume_or_Rethrow'
This resolves GCN: ld: error: undefined symbol: _Unwind_RaiseException >>> referenced by eh_throw.cc:93 ([...]/source-gcc/libstdc++-v3/libsupc++/eh_throw.cc:93) >>> eh_throw.o:(__cxa_throw) in archive /srv/data/tschwinge/amd-instinct2/gcc/build/submit-light-target_gcn/build-gcc/amdgcn-amdhsa/gfx908/libstdc++-v3/src/.libs/libstdc++.a [...] collect2: error: ld returned 1 exit status ..., and/or: ld: error: undefined symbol: _Unwind_Resume_or_Rethrow >>> referenced by eh_throw.cc:129 ([...]/source-gcc/libstdc++-v3/libsupc++/eh_throw.cc:129) >>> eh_throw.o:(__cxa_rethrow) in archive /srv/data/tschwinge/amd-instinct2/gcc/build/submit-light-target_gcn/build-gcc/amdgcn-amdhsa/gfx908/libstdc++-v3/src/.libs/libstdc++.a [...] collect2: error: ld returned 1 exit status ..., and nvptx: unresolved symbol _Unwind_RaiseException collect2: error: ld returned 1 exit status ..., or: unresolved symbol _Unwind_Resume_or_Rethrow collect2: error: ld returned 1 exit status For both GCN, nvptx, this each progresses ~25 'check-gcc-c++', and ~10 'check-target-libstdc++-v3' test cases: [-FAIL:-]{+PASS:+} [...] (test for excess errors) ..., with (if applicable, for most of them): [-UNRESOLVED:-]{+PASS:+} [...] [-compilation failed to produce executable-]{+execution test+} ..., or some 'FAIL: [...] execution test' where these test cases now FAIL when attempting to use these interfaces, or, if applicable, FAIL due to run-time 'GCC/nvptx: sorry, unimplemented: dynamic stack allocation not supported'. libgcc/ * config/gcn/unwind-gcn.c (_Unwind_RaiseException) (_Unwind_Resume_or_Rethrow): New. * config/nvptx/unwind-nvptx.c (_Unwind_RaiseException) (_Unwind_Resume_or_Rethrow): Likewise.
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/config/gcn/unwind-gcn.c14
-rw-r--r--libgcc/config/nvptx/unwind-nvptx.c14
2 files changed, 28 insertions, 0 deletions
diff --git a/libgcc/config/gcn/unwind-gcn.c b/libgcc/config/gcn/unwind-gcn.c
index e014cc0..eae741c 100644
--- a/libgcc/config/gcn/unwind-gcn.c
+++ b/libgcc/config/gcn/unwind-gcn.c
@@ -24,6 +24,13 @@
#include "unwind.h"
+_Unwind_Reason_Code
+_Unwind_RaiseException(struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
void
_Unwind_DeleteException (struct _Unwind_Exception *exc)
{
@@ -32,6 +39,13 @@ _Unwind_DeleteException (struct _Unwind_Exception *exc)
}
_Unwind_Reason_Code
+_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
+_Unwind_Reason_Code
_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument)
{
return 0;
diff --git a/libgcc/config/nvptx/unwind-nvptx.c b/libgcc/config/nvptx/unwind-nvptx.c
index e014cc0..eae741c 100644
--- a/libgcc/config/nvptx/unwind-nvptx.c
+++ b/libgcc/config/nvptx/unwind-nvptx.c
@@ -24,6 +24,13 @@
#include "unwind.h"
+_Unwind_Reason_Code
+_Unwind_RaiseException(struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
void
_Unwind_DeleteException (struct _Unwind_Exception *exc)
{
@@ -32,6 +39,13 @@ _Unwind_DeleteException (struct _Unwind_Exception *exc)
}
_Unwind_Reason_Code
+_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
+_Unwind_Reason_Code
_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument)
{
return 0;