https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114419

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ams at gcc dot gnu.org,
                   |                            |burnus at gcc dot gnu.org
            Summary|amdgcn offload compiler     |[GCC < 14] amdgcn offload
                   |fails to build with amdgcn  |compiler fails to build
                   |tools based on LLVM 18      |with amdgcn tools based on
                   |                            |LLVM 18

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
This has been fixed in GCC 14 - and the documentation has been updated
accordingly. See the AMD GCN entry in the GCC 14 and the link to the install
document there:
https://gcc.gnu.org/gcc-14/changes.html

* * *

I think there are two problems with LLVM 18 - both fixed with GCC 14/mainline.

Namely:

(A) Support for 'Fuji' devices was stopped,
    i.e. those use AMDHSA Code Object Version 3

→ Solution: Configure with
  --with-arch=gfx900
  --with-multilib-list=gfx900,gfx906,gfx908,gfx90a
i.e. leave out 'fiji' and switch to gfx900 for the default

Cf. r14-4734-g56ed1055b2f40ac162ae8d382280ac07a33f789f


(B) The default version used if no version has been specified changed to Code
Object 5 in LLVM's linker – but with '-g' also mkoffload produces an object
file - but with version 4.

=> With debugging enabled, there will be an error with LLVM 18,
solved by the commit:
  r14-8449-g4b5650acb3107239867830dc1214b31bdbe3cacd - namely:

  Since LLVM commit 082f87c9d418 (Pull Req. #79038; will become LLVM 18)
    "[AMDGPU] Change default AMDHSA Code Object version to 5"
  the default - when no --amdhsa-code-object-version= is used - was bumped.

Reply via email to