https://gcc.gnu.org/g:7037fdf6bd0a4eea4a436b432265d6b7cc481737
commit r15-7457-g7037fdf6bd0a4eea4a436b432265d6b7cc481737 Author: Tobias Burnus <tbur...@baylibre.com> Date: Mon Feb 10 18:05:51 2025 +0100 [gcn] install.texi: Update for new ISA targets and their requirements GCN now supports several additional ISA targets such that no longer all targets have a multilib by default; add a note about this, the generic targets and the required LLVM (and ROCm) versions. gcc/ChangeLog: * doc/install.texi (GCN): Update section about multilibs and required LLVM version. Diff: --- gcc/doc/install.texi | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 3b9f56b05292..d6cf318b3afe 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -3991,14 +3991,36 @@ This is a synonym for @samp{x86_64-*-solaris2*}. @heading amdgcn-*-amdhsa AMD GCN GPU target. -Instead of GNU Binutils, you will need to install LLVM 15, or later, and copy +Instead of GNU Binutils, you need to install LLVM and copy @file{bin/llvm-mc} to @file{amdgcn-amdhsa/bin/as}, @file{bin/lld} to @file{amdgcn-amdhsa/bin/ld}, @file{bin/llvm-nm} to @file{amdgcn-amdhsa/bin/nm}, and @file{bin/llvm-ar} to both @file{bin/amdgcn-amdhsa-ar} and -@file{bin/amdgcn-amdhsa-ranlib}. Note that LLVM 13.0.1 or LLVM 14 can be used -by specifying a @code{--with-multilib-list=} that does not list @code{gfx1100} -and @code{gfx1103}. +@file{bin/amdgcn-amdhsa-ranlib}. + +The required version of LLVM depends on the devices that you want to support. +As the list of ISAs is long, GCC by default only builds a subset of the +supported ISAs as multilib; use @code{--with-multilib-list=} to tailor the built +multilibs. Note that mixing ISAs in the same binary is not supported and gives +a linker error. + +By default, multilib support is built for @code{gfx900}, @code{gfx906}, +@code{gfx908}, @code{gfx90a}, @code{gfx90c}, @code{gfx1030}, @code{gfx1036}, +@code{gfx1100} and @code{gfx1103}. The default multilib configuration +requires LLVM 15 or newer. LLVM 13.0.1 or LLVM 14 can be used by specifying +a @code{--with-multilib-list=} that does not list any GFX 11 device nor +@code{gfx1036}. At least LLVM 16 is required for @code{gfx1150} and +@code{gfx1151}, LLVM 19 for the generic @code{gfx9-generic}, +@code{gfx10-3-generic}, and @code{gfx11-generic} targets and for +@code{gfx1152}, while LLVM 20 is required for @code{gfx1153}. + +The supported ISA architectures are listed in the GCC manual. The generic +ISA targets @code{gfx9-generic}, @code{gfx10-3-generic}, and +@code{gfx11-generic} reduce the number of required multilibs but note +that @code{gfx9-generic} does not include @code{gfx908} or @code{gfx90a}, +that linking specific ISA code with generic code is currently not supported, +and that only a future ROCm release (newer than 6.3.2) will be able to execute +generic code. Use Newlib (4.3.0 or newer; 4.4.0 contains some improvements and 4.5.0 fixes the device console output for GFX10 and GFX11 devices).