[gcn] Set 'UI_NONE' for 'TARGET_EXCEPT_UNWIND_INFO' [PR94282] (was: [PATCH] amdgcn: Add stub personality function)

Message ID 87mu6ubset.fsf@euler.schwinge.homeip.net
State New
Headers show
Series
  • [gcn] Set 'UI_NONE' for 'TARGET_EXCEPT_UNWIND_INFO' [PR94282] (was: [PATCH] amdgcn: Add stub personality function)
Related show

Commit Message

Thomas Schwinge April 29, 2020, 8:35 a.m.
Hi!

On 2020-04-23T13:05:33+0200, I wrote:
> On 2020-04-23T09:15:29+0100, Andrew Stubbs <ams@codesourcery.com> wrote:

>> On 22/04/2020 22:10, Kwok Cheung Yeung wrote:

>>> [...] allows the following tests in the libgomp

>>> testsuite that were previously failing with a linker error to compile

>>> and run, provided that they do not throw any exceptions:

>>>

>>> libgomp.c-c++-common/function-not-offloaded.c

>>> libgomp.c++/for-15.C

>>> libgomp.c++/for-24.C

>>> libgomp.oacc-c-c++-common/routine-1.c

>>> libgomp.oacc-c++/pr71959.C

>>> libgomp.oacc-c++/routine-1-auto.C

>>> libgomp.oacc-c++/routine-1-template-auto.C

>>> libgomp.oacc-c++/routine-1-template-trailing-return-type.C

>>> libgomp.oacc-c++/routine-1-template.C

>>> libgomp.oacc-c++/routine-1-trailing-return-type.C

>

> That's <https://gcc.gnu.org/PR94282> "[amdgcn] ld: error: undefined

> symbol: __gxx_personality_v0"


> I suggest we [...] apply what I'd proposed a month ago in

> <https://gcc.gnu.org/PR94282> "[amdgcn] ld: error: undefined symbol:

> __gxx_personality_v0", and now yesterday (coincidentally) posted.


Now pushed to master branch in commit
7f1989249e25af6fc0f124452efa24b3796b767a "[gcn] Set 'UI_NONE' for
'TARGET_EXCEPT_UNWIND_INFO' [PR94282]", see attached.


Grüße
 Thomas


-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter

Patch

From 7f1989249e25af6fc0f124452efa24b3796b767a Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Tue, 21 Apr 2020 22:39:33 +0200
Subject: [PATCH] [gcn] Set 'UI_NONE' for 'TARGET_EXCEPT_UNWIND_INFO' [PR94282]

In libgomp offloading testing, this resolves all the 'ld: error: undefined
symbol: __gxx_personality_v0' FAILs.

	gcc/
	PR target/94282
	* common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
	function.
	(TARGET_EXCEPT_UNWIND_INFO): Define.
	libgomp/
	PR target/94282
	* testsuite/libgomp.c-c++-common/function-not-offloaded.c: Remove
	'dg-allow-blank-lines-in-output'.
---
 gcc/ChangeLog                                            | 7 +++++++
 gcc/common/config/gcn/gcn-common.c                       | 9 +++++++++
 libgomp/ChangeLog                                        | 4 ++++
 .../libgomp.c-c++-common/function-not-offloaded.c        | 1 -
 4 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3321e8839707..2ba39f67200f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@ 
+2020-04-29  Thomas Schwinge  <thomas@codesourcery.com>
+
+	PR target/94282
+	* common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
+	function.
+	(TARGET_EXCEPT_UNWIND_INFO): Define.
+
 2020-04-29  Jakub Jelinek  <jakub@redhat.com>
 
 	PR target/94248
diff --git a/gcc/common/config/gcn/gcn-common.c b/gcc/common/config/gcn/gcn-common.c
index 84a567b2bbbb..9642f9cc5a6c 100644
--- a/gcc/common/config/gcn/gcn-common.c
+++ b/gcc/common/config/gcn/gcn-common.c
@@ -34,4 +34,13 @@  static const struct default_options gcn_option_optimization_table[] =
 #undef  TARGET_OPTION_OPTIMIZATION_TABLE
 #define TARGET_OPTION_OPTIMIZATION_TABLE gcn_option_optimization_table
 
+static enum unwind_info_type
+gcn_except_unwind_info (struct gcc_options *opts ATTRIBUTE_UNUSED)
+{
+  return UI_NONE;
+}
+
+#undef  TARGET_EXCEPT_UNWIND_INFO
+#define TARGET_EXCEPT_UNWIND_INFO gcn_except_unwind_info
+
 struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER;
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index cfe6e0653c92..1a7046f2fc64 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,5 +1,9 @@ 
 2020-04-29  Thomas Schwinge  <thomas@codesourcery.com>
 
+	PR target/94282
+	* testsuite/libgomp.c-c++-common/function-not-offloaded.c: Remove
+	'dg-allow-blank-lines-in-output'.
+
 	* oacc-init.c (get_openacc_name): Handle 'gcn'.
 	* testsuite/lib/libgomp.exp
 	(offload_target_to_openacc_device_type) [amdgcn*]: Return
diff --git a/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c b/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c
index f01a64e72c07..9e59ef8864e7 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c
@@ -1,6 +1,5 @@ 
 /* { dg-do link } */
 /* { dg-excess-errors "unresolved symbol foo, lto1, mkoffload and lto-wrapper fatal errors" { target offload_device_nonshared_as } } */
-/* { dg-allow-blank-lines-in-output 1 } */
 /* { dg-additional-sources "function-not-offloaded-aux.c" } */
 
 #pragma omp declare target
-- 
2.26.2