We currently have alias support enabled by malias, which relies on the ptx .alias directive. There is a number of limitations, listed in the commit adding malias: ... Only function aliases are supported. Weak aliases are not supported. That is, if I disable the check in nvptx_asm_output_def_from_decls that disallows this, a weak alias is emitted and parsed by the driver. But the test gcc.dg/globalalias.c starts failing, with the behaviour matching the comment about "weird behavior of AIX's .set pseudo-op": a weak alias may resolve to different functions in different files. Aliases to weak symbols are not supported (see gcc.dg/localalias.c). This is currently not prohibited by the compiler, but with the driver link we run into: "error: Function test with .weak scope cannot be aliased". Aliases to aliases are not supported (see libgomp.c-c++-common/pr96390.c). This is currently not prohibited by the compiler, but with the driver link we run into: "Internal error: alias to unknown symbol" . Unreferenced aliases are not emitted (these can occur f.i. when inlining a call to an alias). This avoids driver link error "Internal error: reference to deleted section". ... We'd like an implementation that doesn't have (all of) these limitations.
(In reply to Tom de Vries from comment #0) > Aliases to aliases are not supported (see libgomp.c-c++-common/pr96390.c). > This is currently not prohibited by the compiler, but with the driver link we > run into: "Internal error: alias to unknown symbol" . And that is the reason that libgomp.c-c++-common/pr96390.c and friends doesn't pass when I do: ... /* { dg-additional-options "-foffload=-mptx=6.3 -foffload=-malias" { target offload_target_nvptx } } */ ...
As mentioned before by amonakov, a possibility is to add alias support to the nvptx-tools linker, and use that.
(In reply to Tom de Vries from comment #2) > As mentioned before by amonakov, a possibility is to add alias support to > the nvptx-tools linker, and use that. <https://github.com/MentorEmbedded/nvptx-tools/issues/32> "[LD] Handle alias in nvptx-ld as nvptx's .alias does not handle it fully". Alexander, you don't happen to have started working on this already?