public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/113331] New: AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols
@ 2024-01-11 9:46 jules at gcc dot gnu.org
2024-01-11 10:42 ` [Bug target/113331] " rguenth at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: jules at gcc dot gnu.org @ 2024-01-11 9:46 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113331
Bug ID: 113331
Summary: AMDGCN: Compilation failure due to duplicate
.LEHB<n>/.LEHE<n> symbols
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: jules at gcc dot gnu.org
Target Milestone: ---
Created attachment 57037
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57037&action=edit
Test case
The attached file fails to compile with AMD GCN offloading on current mainline.
It also fails on GCC 13.2.0 as packaged in Debian, so this doesn't appear to be
a regression.
$ g++ -fopenmp -foffload=amdgcn-amdhsa -save-temps dup-syms.cc -o dup-syms
./dup-syms.xamdgcn-amdhsa.mkoffload.2.s:256:1: error: symbol '.LEHB0' is
already defined
.LEHB0:
^
./dup-syms.xamdgcn-amdhsa.mkoffload.2.s:258:1: error: symbol '.LEHE0' is
already defined
.LEHE0:
^
./dup-syms.xamdgcn-amdhsa.mkoffload.2.s:288:1: error: symbol '.LEHB1' is
already defined
.LEHB1:
^
./dup-syms.xamdgcn-amdhsa.mkoffload.2.s:290:1: error: symbol '.LEHE1' is
already defined
.LEHE1:
^
The test case doesn't trigger with NVPTX offloading, but I don't think that
definitely implies that this is something GCN-specific (vs. generically
offload-related).
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/113331] AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols
2024-01-11 9:46 [Bug target/113331] New: AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols jules at gcc dot gnu.org
@ 2024-01-11 10:42 ` rguenth at gcc dot gnu.org
2024-02-17 2:17 ` burnus at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2024-01-11 10:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113331
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
These are exception handling region labels, possibly nvptx has no way to do EH.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/113331] AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols
2024-01-11 9:46 [Bug target/113331] New: AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols jules at gcc dot gnu.org
2024-01-11 10:42 ` [Bug target/113331] " rguenth at gcc dot gnu.org
@ 2024-02-17 2:17 ` burnus at gcc dot gnu.org
2024-02-20 9:37 ` tschwinge at gcc dot gnu.org
2024-03-06 13:12 ` tschwinge at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: burnus at gcc dot gnu.org @ 2024-02-17 2:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113331
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu.org
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
All of the following is in except.cc.
The problem is that the count in the label is relative to 'call_site_base'.
In convert_to_eh_region_ranges, those get bumped - but the function reset it at
the end. They do get accumulated via, e.g., dw2_output_call_site_table but, in
GCN, the output_function_exception_table is exit early because of:
3229 if (!crtl->uses_eh_lsda
3230 || targetm_common.except_unwind_info (&global_options) ==
UI_NONE)
3231 return;
Thus, the next time convert_to_eh_region_ranges is called, it starts with the
very same numbers.
The reason that this gets produced is because there is an ERT_MUST_NOT_THROW
("MUST_NOT_THROW regions prevent all exceptions from propagating. This region
type is used in C++ to surround destructors being run inside a CLEANUP
region.")
As there are both "-1" (implies no action) and "-2" (MUST_NOT_THROW), GCN
produces this output. For whatever reason, nvptx has no "-1" actions in the
function, thus, after the change to "-2", there is no flip and - hence, no
output is produced - avoiding the issue.
→ I bet that both gcn and nvptx are affected (unless luck or compiled with
-fno-exceptions).
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/113331] AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols
2024-01-11 9:46 [Bug target/113331] New: AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols jules at gcc dot gnu.org
2024-01-11 10:42 ` [Bug target/113331] " rguenth at gcc dot gnu.org
2024-02-17 2:17 ` burnus at gcc dot gnu.org
@ 2024-02-20 9:37 ` tschwinge at gcc dot gnu.org
2024-03-06 13:12 ` tschwinge at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2024-02-20 9:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113331
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2024-02-20
Status|UNCONFIRMED |ASSIGNED
CC| |tschwinge at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #3 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
Planning to look into this as part of my ongoing GPU C++ support task.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/113331] AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols
2024-01-11 9:46 [Bug target/113331] New: AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols jules at gcc dot gnu.org
` (2 preceding siblings ...)
2024-02-20 9:37 ` tschwinge at gcc dot gnu.org
@ 2024-03-06 13:12 ` tschwinge at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2024-03-06 13:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113331
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2024-02-20 00:00:00 |2024-3-6
CC| |ams at gcc dot gnu.org,
| |jakub at gcc dot gnu.org
Status|ASSIGNED |NEW
--- Comment #4 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
(I've not yet started working on this, but) I've noticed that we run into the
same issue for 'libgomp.c++/firstprivate-2.C' that Jakub recently added in
commit r14-9257-g4f82d5a95a244d0aa4f8b2541b47a21bce8a191b "OpenMP/C++: Fix
(first)private clause with member variables [PR110347]":
spawn -ignore SIGHUP g++
../source-gcc/libgomp/testsuite/libgomp.c++/firstprivate-2.C [...] -fopenmp -O2
-lm -o ./firstprivate-2.exe
/tmp/ccLrOMGJ.mkoffload.2.s:215:1: error: symbol '.LEHB0' is already
defined
.LEHB0:
^
/tmp/ccLrOMGJ.mkoffload.2.s:241:1: error: symbol '.LEHE0' is already
defined
.LEHE0:
^
/tmp/ccLrOMGJ.mkoffload.2.s:341:1: error: symbol '.LEHB0' is already
defined
.LEHB0:
^
/tmp/ccLrOMGJ.mkoffload.2.s:367:1: error: symbol '.LEHE0' is already
defined
.LEHE0:
^
/tmp/ccLrOMGJ.mkoffload.2.s:467:1: error: symbol '.LEHB0' is already
defined
.LEHB0:
^
/tmp/ccLrOMGJ.mkoffload.2.s:493:1: error: symbol '.LEHE0' is already
defined
.LEHE0:
^
gcn mkoffload: fatal error: x86_64-pc-linux-gnu-accel-amdgcn-amdhsa-gcc
returned 1 exit status
[...]
FAIL: libgomp.c++/firstprivate-2.C (test for excess errors)
Again, that's for GCN offloading compilation only, but not nvptx.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-03-06 13:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-11 9:46 [Bug target/113331] New: AMDGCN: Compilation failure due to duplicate .LEHB<n>/.LEHE<n> symbols jules at gcc dot gnu.org
2024-01-11 10:42 ` [Bug target/113331] " rguenth at gcc dot gnu.org
2024-02-17 2:17 ` burnus at gcc dot gnu.org
2024-02-20 9:37 ` tschwinge at gcc dot gnu.org
2024-03-06 13:12 ` tschwinge at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).