@@ -1087,26 +1087,25 @@ const EnumEntry<unsigned> ElfObjectFileType[] = {
10871087};
10881088
10891089const EnumEntry<unsigned > ElfOSABI[] = {
1090- {" SystemV" , " UNIX - System V" , ELF::ELFOSABI_NONE},
1091- {" HPUX" , " UNIX - HP-UX" , ELF::ELFOSABI_HPUX},
1092- {" NetBSD" , " UNIX - NetBSD" , ELF::ELFOSABI_NETBSD},
1093- {" GNU/Linux" , " UNIX - GNU" , ELF::ELFOSABI_LINUX},
1094- {" GNU/Hurd" , " GNU/Hurd" , ELF::ELFOSABI_HURD},
1095- {" Solaris" , " UNIX - Solaris" , ELF::ELFOSABI_SOLARIS},
1096- {" AIX" , " UNIX - AIX" , ELF::ELFOSABI_AIX},
1097- {" IRIX" , " UNIX - IRIX" , ELF::ELFOSABI_IRIX},
1098- {" FreeBSD" , " UNIX - FreeBSD" , ELF::ELFOSABI_FREEBSD},
1099- {" TRU64" , " UNIX - TRU64" , ELF::ELFOSABI_TRU64},
1100- {" Modesto" , " Novell - Modesto" , ELF::ELFOSABI_MODESTO},
1101- {" OpenBSD" , " UNIX - OpenBSD" , ELF::ELFOSABI_OPENBSD},
1102- {" OpenVMS" , " VMS - OpenVMS" , ELF::ELFOSABI_OPENVMS},
1103- {" NSK" , " HP - Non-Stop Kernel" , ELF::ELFOSABI_NSK},
1104- {" AROS" , " AROS" , ELF::ELFOSABI_AROS},
1105- {" FenixOS" , " FenixOS" , ELF::ELFOSABI_FENIXOS},
1106- {" CloudABI" , " CloudABI" , ELF::ELFOSABI_CLOUDABI},
1107- {" CUDA" , " NVIDIA - CUDA" , ELF::ELFOSABI_CUDA},
1108- {" Standalone" , " Standalone App" , ELF::ELFOSABI_STANDALONE}
1109- };
1090+ {" SystemV" , " UNIX - System V" , ELF::ELFOSABI_NONE},
1091+ {" HPUX" , " UNIX - HP-UX" , ELF::ELFOSABI_HPUX},
1092+ {" NetBSD" , " UNIX - NetBSD" , ELF::ELFOSABI_NETBSD},
1093+ {" GNU/Linux" , " UNIX - GNU" , ELF::ELFOSABI_LINUX},
1094+ {" GNU/Hurd" , " GNU/Hurd" , ELF::ELFOSABI_HURD},
1095+ {" Solaris" , " UNIX - Solaris" , ELF::ELFOSABI_SOLARIS},
1096+ {" AIX" , " UNIX - AIX" , ELF::ELFOSABI_AIX},
1097+ {" IRIX" , " UNIX - IRIX" , ELF::ELFOSABI_IRIX},
1098+ {" FreeBSD" , " UNIX - FreeBSD" , ELF::ELFOSABI_FREEBSD},
1099+ {" TRU64" , " UNIX - TRU64" , ELF::ELFOSABI_TRU64},
1100+ {" Modesto" , " Novell - Modesto" , ELF::ELFOSABI_MODESTO},
1101+ {" OpenBSD" , " UNIX - OpenBSD" , ELF::ELFOSABI_OPENBSD},
1102+ {" OpenVMS" , " VMS - OpenVMS" , ELF::ELFOSABI_OPENVMS},
1103+ {" NSK" , " HP - Non-Stop Kernel" , ELF::ELFOSABI_NSK},
1104+ {" AROS" , " AROS" , ELF::ELFOSABI_AROS},
1105+ {" FenixOS" , " FenixOS" , ELF::ELFOSABI_FENIXOS},
1106+ {" CloudABI" , " CloudABI" , ELF::ELFOSABI_CLOUDABI},
1107+ {" CUDA" , " NVIDIA - CUDA" , ELF::ELFOSABI_CUDA},
1108+ {" Standalone" , " Standalone App" , ELF::ELFOSABI_STANDALONE}};
11101109
11111110const EnumEntry<unsigned > AMDGPUElfOSABI[] = {
11121111 {" AMDGPU_HSA" , " AMDGPU - HSA" , ELF::ELFOSABI_AMDGPU_HSA},
@@ -1671,16 +1670,17 @@ const EnumEntry<unsigned> ElfHeaderAMDGPUFlagsABIVersion4[] = {
16711670};
16721671
16731672const EnumEntry<unsigned > ElfHeaderNVPTXFlags[] = {
1674- ENUM_ENT (EF_CUDA_SM20, " sm_20" ), ENUM_ENT (EF_CUDA_SM21, " sm_21" ),
1675- ENUM_ENT (EF_CUDA_SM30, " sm_30" ), ENUM_ENT (EF_CUDA_SM32, " sm_32" ),
1676- ENUM_ENT (EF_CUDA_SM35, " sm_35" ), ENUM_ENT (EF_CUDA_SM37, " sm_37" ),
1677- ENUM_ENT (EF_CUDA_SM50, " sm_50" ), ENUM_ENT (EF_CUDA_SM52, " sm_52" ),
1678- ENUM_ENT (EF_CUDA_SM53, " sm_53" ), ENUM_ENT (EF_CUDA_SM60, " sm_60" ),
1679- ENUM_ENT (EF_CUDA_SM61, " sm_61" ), ENUM_ENT (EF_CUDA_SM62, " sm_62" ),
1680- ENUM_ENT (EF_CUDA_SM70, " sm_70" ), ENUM_ENT (EF_CUDA_SM72, " sm_72" ),
1681- ENUM_ENT (EF_CUDA_SM75, " sm_75" ), ENUM_ENT (EF_CUDA_SM80, " sm_80" ),
1682- ENUM_ENT (EF_CUDA_SM86, " sm_86" ), ENUM_ENT (EF_CUDA_SM87, " sm_87" ),
1683- ENUM_ENT (EF_CUDA_SM89, " sm_89" ), ENUM_ENT (EF_CUDA_SM90, " sm_90" ),
1673+ ENUM_ENT (EF_CUDA_SM20, " sm_20" ), ENUM_ENT (EF_CUDA_SM21, " sm_21" ),
1674+ ENUM_ENT (EF_CUDA_SM30, " sm_30" ), ENUM_ENT (EF_CUDA_SM32, " sm_32" ),
1675+ ENUM_ENT (EF_CUDA_SM35, " sm_35" ), ENUM_ENT (EF_CUDA_SM37, " sm_37" ),
1676+ ENUM_ENT (EF_CUDA_SM50, " sm_50" ), ENUM_ENT (EF_CUDA_SM52, " sm_52" ),
1677+ ENUM_ENT (EF_CUDA_SM53, " sm_53" ), ENUM_ENT (EF_CUDA_SM60, " sm_60" ),
1678+ ENUM_ENT (EF_CUDA_SM61, " sm_61" ), ENUM_ENT (EF_CUDA_SM62, " sm_62" ),
1679+ ENUM_ENT (EF_CUDA_SM70, " sm_70" ), ENUM_ENT (EF_CUDA_SM72, " sm_72" ),
1680+ ENUM_ENT (EF_CUDA_SM75, " sm_75" ), ENUM_ENT (EF_CUDA_SM80, " sm_80" ),
1681+ ENUM_ENT (EF_CUDA_SM86, " sm_86" ), ENUM_ENT (EF_CUDA_SM87, " sm_87" ),
1682+ ENUM_ENT (EF_CUDA_SM89, " sm_89" ), ENUM_ENT (EF_CUDA_SM90, " sm_90" ),
1683+ ENUM_ENT (EF_CUDA_SM100, " sm_100" ), ENUM_ENT (EF_CUDA_SM120, " sm_120" ),
16841684};
16851685
16861686const EnumEntry<unsigned > ElfHeaderRISCVFlags[] = {
@@ -3655,10 +3655,16 @@ template <class ELFT> void GNUELFDumper<ELFT>::printFileHeaders() {
36553655 else if (e.e_machine == EM_XTENSA)
36563656 ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderXtensaFlags),
36573657 unsigned (ELF::EF_XTENSA_MACH));
3658- else if (e.e_machine == EM_CUDA)
3658+ else if (e.e_machine == EM_CUDA) {
36593659 ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderNVPTXFlags),
36603660 unsigned (ELF::EF_CUDA_SM));
3661- else if (e.e_machine == EM_AMDGPU) {
3661+ if (e.e_ident [ELF::EI_ABIVERSION] == ELF::ELFABIVERSION_CUDA_V1 &&
3662+ (e.e_flags & ELF::EF_CUDA_ACCELERATORS_V1))
3663+ ElfFlags += " a" ;
3664+ else if (e.e_ident [ELF::EI_ABIVERSION] == ELF::ELFABIVERSION_CUDA_V2 &&
3665+ (e.e_flags & ELF::EF_CUDA_ACCELERATORS))
3666+ ElfFlags += " a" ;
3667+ } else if (e.e_machine == EM_AMDGPU) {
36623668 switch (e.e_ident [ELF::EI_ABIVERSION]) {
36633669 default :
36643670 break ;
0 commit comments