public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "burnus at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/109128] [Offload][OpenMP][OpenACC] Static linking with unused offload function will lead to mismatch number of offload fn/symbols Date: Thu, 30 Mar 2023 19:12:55 +0000 [thread overview] Message-ID: <bug-109128-4-9vKVv86ZTu@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-109128-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109128 --- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> --- Minor observations (unrelated to this bug but should be fixed. separately or together): - '@' file in lto-wrapper.cc's compile_offload_image's fork_execute call is always the same. (Matters if there is more than one offloading target configured) - The sections ".gnu.offload_funcs" and ".gnu.offload_vars" are 'wx' but they could be 'x' (i.e. read only as the function addresses do not need to be written to). → TREE_READONLY (funcs_decl) = 1; (same for 'vars_decl'). * * * Tried the following, but it did not help – 'ld' does not import any symbol from the 'libone.a' library – neither before nor after the patch; not did -no-as-needed help and -Wl,--print-gc-sections does not show any discarded sections. diff --git a/gcc/omp-offload.cc b/gcc/omp-offload.cc index 3bd144e9ccf..e1b22729994 100644 --- a/gcc/omp-offload.cc +++ b/gcc/omp-offload.cc @@ -437,0 +438,13 @@ omp_finish_file (void) + TREE_READONLY (funcs_decl) = 1; + TREE_READONLY (vars_decl) = 1; +#ifndef ACCEL_COMPILER + if (SUPPORTS_SHF_GNU_RETAIN) + { + DECL_ATTRIBUTES (funcs_decl) = tree_cons (get_identifier ("retain"), + NULL_TREE, NULL_TREE); + DECL_ATTRIBUTES (vars_decl) = tree_cons (get_identifier ("retain"), + NULL_TREE, NULL_TREE); + } + else + sorry ("support for %<SHF_GNU_RETAIN%> required for offloading"); +#endif diff --git a/libgcc/offloadstuff.c b/libgcc/offloadstuff.c index 4e1c4d41dd5..59e191c5e19 100644 --- a/libgcc/offloadstuff.c +++ b/libgcc/offloadstuff.c @@ -51 +51 @@ const void *const __offload_func_table[0] - __attribute__ ((__used__, visibility ("hidden"), + __attribute__ ((__used__, visibility ("hidden"), retain, @@ -54 +54 @@ const void *const __offload_var_table[0] - __attribute__ ((__used__, visibility ("hidden"), + __attribute__ ((__used__, visibility ("hidden"), retain, @@ -60 +60 @@ const void *const __offload_funcs_end[0] - __attribute__ ((__used__, visibility ("hidden"), + __attribute__ ((__used__, visibility ("hidden"), retrain, @@ -63 +63 @@ const void *const __offload_vars_end[0] - __attribute__ ((__used__, visibility ("hidden"), + __attribute__ ((__used__, visibility ("hidden"), retrain, * * * What's interesting is the file -foffload-objects=a.ofldlist - produced by lto-plugin: * If there is a common block in 'one.f90' (and via module use also in 'two.f90'), the a.ofldlist file contains both 'two.o' and the ./libone.a@0xc0 library. * But if there is no common block in 'one.f90' (and hence also not in 'two.f90'), the a.ofldlist file contains only 'two.o'.
next prev parent reply other threads:[~2023-03-30 19:12 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-03-14 12:15 [Bug middle-end/109128] New: " burnus at gcc dot gnu.org 2023-03-14 12:36 ` [Bug middle-end/109128] " tschwinge at gcc dot gnu.org 2023-03-14 13:07 ` burnus at gcc dot gnu.org 2023-03-30 14:42 ` burnus at gcc dot gnu.org 2023-03-30 19:12 ` burnus at gcc dot gnu.org [this message] 2023-03-30 20:00 ` burnus at gcc dot gnu.org 2023-03-31 8:39 ` tschwinge at gcc dot gnu.org 2023-05-02 17:20 ` burnus at gcc dot gnu.org 2023-05-11 8:09 ` cvs-commit at gcc dot gnu.org 2023-05-11 14:56 ` burnus at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-109128-4-9vKVv86ZTu@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).