@@ -1083,26 +1083,26 @@ const EnumEntry<unsigned> ElfObjectFileType[] = {
10831083};
10841084
10851085const EnumEntry<unsigned > ElfOSABI[] = {
1086- {" SystemV" , " UNIX - System V" , ELF::ELFOSABI_NONE},
1087- {" HPUX" , " UNIX - HP-UX" , ELF::ELFOSABI_HPUX},
1088- {" NetBSD" , " UNIX - NetBSD" , ELF::ELFOSABI_NETBSD},
1089- {" GNU/Linux" , " UNIX - GNU" , ELF::ELFOSABI_LINUX},
1090- {" GNU/Hurd" , " GNU/Hurd" , ELF::ELFOSABI_HURD},
1091- {" Solaris" , " UNIX - Solaris" , ELF::ELFOSABI_SOLARIS},
1092- {" AIX" , " UNIX - AIX" , ELF::ELFOSABI_AIX},
1093- {" IRIX" , " UNIX - IRIX" , ELF::ELFOSABI_IRIX},
1094- {" FreeBSD" , " UNIX - FreeBSD" , ELF::ELFOSABI_FREEBSD},
1095- {" TRU64" , " UNIX - TRU64" , ELF::ELFOSABI_TRU64},
1096- {" Modesto" , " Novell - Modesto" , ELF::ELFOSABI_MODESTO},
1097- {" OpenBSD" , " UNIX - OpenBSD" , ELF::ELFOSABI_OPENBSD},
1098- {" OpenVMS" , " VMS - OpenVMS" , ELF::ELFOSABI_OPENVMS},
1099- {" NSK" , " HP - Non-Stop Kernel" , ELF::ELFOSABI_NSK},
1100- {" AROS" , " AROS" , ELF::ELFOSABI_AROS},
1101- {" FenixOS" , " FenixOS" , ELF::ELFOSABI_FENIXOS},
1102- {" CloudABI" , " CloudABI" , ELF::ELFOSABI_CLOUDABI},
1103- {" CUDA" , " NVIDIA - CUDA" , ELF::ELFOSABI_CUDA},
1104- { " Standalone " , " Standalone App " , ELF::ELFOSABI_STANDALONE}
1105- };
1086+ {" SystemV" , " UNIX - System V" , ELF::ELFOSABI_NONE},
1087+ {" HPUX" , " UNIX - HP-UX" , ELF::ELFOSABI_HPUX},
1088+ {" NetBSD" , " UNIX - NetBSD" , ELF::ELFOSABI_NETBSD},
1089+ {" GNU/Linux" , " UNIX - GNU" , ELF::ELFOSABI_LINUX},
1090+ {" GNU/Hurd" , " GNU/Hurd" , ELF::ELFOSABI_HURD},
1091+ {" Solaris" , " UNIX - Solaris" , ELF::ELFOSABI_SOLARIS},
1092+ {" AIX" , " UNIX - AIX" , ELF::ELFOSABI_AIX},
1093+ {" IRIX" , " UNIX - IRIX" , ELF::ELFOSABI_IRIX},
1094+ {" FreeBSD" , " UNIX - FreeBSD" , ELF::ELFOSABI_FREEBSD},
1095+ {" TRU64" , " UNIX - TRU64" , ELF::ELFOSABI_TRU64},
1096+ {" Modesto" , " Novell - Modesto" , ELF::ELFOSABI_MODESTO},
1097+ {" OpenBSD" , " UNIX - OpenBSD" , ELF::ELFOSABI_OPENBSD},
1098+ {" OpenVMS" , " VMS - OpenVMS" , ELF::ELFOSABI_OPENVMS},
1099+ {" NSK" , " HP - Non-Stop Kernel" , ELF::ELFOSABI_NSK},
1100+ {" AROS" , " AROS" , ELF::ELFOSABI_AROS},
1101+ {" FenixOS" , " FenixOS" , ELF::ELFOSABI_FENIXOS},
1102+ {" CloudABI" , " CloudABI" , ELF::ELFOSABI_CLOUDABI},
1103+ {" CUDA" , " NVIDIA - CUDA" , ELF::ELFOSABI_CUDA},
1104+ { " CUDA " , " NVIDIA - CUDA " , ELF::ELFOSABI_CUDA_V2},
1105+ { " Standalone " , " Standalone App " , ELF::ELFOSABI_STANDALONE} };
11061106
11071107const EnumEntry<unsigned > AMDGPUElfOSABI[] = {
11081108 {" AMDGPU_HSA" , " AMDGPU - HSA" , ELF::ELFOSABI_AMDGPU_HSA},
@@ -1667,16 +1667,17 @@ const EnumEntry<unsigned> ElfHeaderAMDGPUFlagsABIVersion4[] = {
16671667};
16681668
16691669const EnumEntry<unsigned > ElfHeaderNVPTXFlags[] = {
1670- ENUM_ENT (EF_CUDA_SM20, " sm_20" ), ENUM_ENT (EF_CUDA_SM21, " sm_21" ),
1671- ENUM_ENT (EF_CUDA_SM30, " sm_30" ), ENUM_ENT (EF_CUDA_SM32, " sm_32" ),
1672- ENUM_ENT (EF_CUDA_SM35, " sm_35" ), ENUM_ENT (EF_CUDA_SM37, " sm_37" ),
1673- ENUM_ENT (EF_CUDA_SM50, " sm_50" ), ENUM_ENT (EF_CUDA_SM52, " sm_52" ),
1674- ENUM_ENT (EF_CUDA_SM53, " sm_53" ), ENUM_ENT (EF_CUDA_SM60, " sm_60" ),
1675- ENUM_ENT (EF_CUDA_SM61, " sm_61" ), ENUM_ENT (EF_CUDA_SM62, " sm_62" ),
1676- ENUM_ENT (EF_CUDA_SM70, " sm_70" ), ENUM_ENT (EF_CUDA_SM72, " sm_72" ),
1677- ENUM_ENT (EF_CUDA_SM75, " sm_75" ), ENUM_ENT (EF_CUDA_SM80, " sm_80" ),
1678- ENUM_ENT (EF_CUDA_SM86, " sm_86" ), ENUM_ENT (EF_CUDA_SM87, " sm_87" ),
1679- ENUM_ENT (EF_CUDA_SM89, " sm_89" ), ENUM_ENT (EF_CUDA_SM90, " sm_90" ),
1670+ ENUM_ENT (EF_CUDA_SM20, " sm_20" ), ENUM_ENT (EF_CUDA_SM21, " sm_21" ),
1671+ ENUM_ENT (EF_CUDA_SM30, " sm_30" ), ENUM_ENT (EF_CUDA_SM32, " sm_32" ),
1672+ ENUM_ENT (EF_CUDA_SM35, " sm_35" ), ENUM_ENT (EF_CUDA_SM37, " sm_37" ),
1673+ ENUM_ENT (EF_CUDA_SM50, " sm_50" ), ENUM_ENT (EF_CUDA_SM52, " sm_52" ),
1674+ ENUM_ENT (EF_CUDA_SM53, " sm_53" ), ENUM_ENT (EF_CUDA_SM60, " sm_60" ),
1675+ ENUM_ENT (EF_CUDA_SM61, " sm_61" ), ENUM_ENT (EF_CUDA_SM62, " sm_62" ),
1676+ ENUM_ENT (EF_CUDA_SM70, " sm_70" ), ENUM_ENT (EF_CUDA_SM72, " sm_72" ),
1677+ ENUM_ENT (EF_CUDA_SM75, " sm_75" ), ENUM_ENT (EF_CUDA_SM80, " sm_80" ),
1678+ ENUM_ENT (EF_CUDA_SM86, " sm_86" ), ENUM_ENT (EF_CUDA_SM87, " sm_87" ),
1679+ ENUM_ENT (EF_CUDA_SM89, " sm_89" ), ENUM_ENT (EF_CUDA_SM90, " sm_90" ),
1680+ ENUM_ENT (EF_CUDA_SM100, " sm_100" ), ENUM_ENT (EF_CUDA_SM120, " sm_120" ),
16801681};
16811682
16821683const EnumEntry<unsigned > ElfHeaderRISCVFlags[] = {
@@ -3651,10 +3652,16 @@ template <class ELFT> void GNUELFDumper<ELFT>::printFileHeaders() {
36513652 else if (e.e_machine == EM_XTENSA)
36523653 ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderXtensaFlags),
36533654 unsigned (ELF::EF_XTENSA_MACH));
3654- else if (e.e_machine == EM_CUDA)
3655+ else if (e.e_machine == EM_CUDA) {
36553656 ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderNVPTXFlags),
36563657 unsigned (ELF::EF_CUDA_SM));
3657- else if (e.e_machine == EM_AMDGPU) {
3658+ if (e.e_ident [ELF::EI_ABIVERSION] == ELF::ELFABIVERSION_CUDA_V1 &&
3659+ (e.e_flags & ELF::EF_CUDA_ACCELERATORS_V1))
3660+ ElfFlags += " a" ;
3661+ else if (e.e_ident [ELF::EI_ABIVERSION] == ELF::ELFABIVERSION_CUDA_V2 &&
3662+ (e.e_flags & ELF::EF_CUDA_ACCELERATORS))
3663+ ElfFlags += " a" ;
3664+ } else if (e.e_machine == EM_AMDGPU) {
36583665 switch (e.e_ident [ELF::EI_ABIVERSION]) {
36593666 default :
36603667 break ;
0 commit comments