@@ -1087,26 +1087,25 @@ const EnumEntry<unsigned> ElfObjectFileType[] = {
1087
1087
};
1088
1088
1089
1089
const 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}};
1110
1109
1111
1110
const EnumEntry<unsigned > AMDGPUElfOSABI[] = {
1112
1111
{" AMDGPU_HSA" , " AMDGPU - HSA" , ELF::ELFOSABI_AMDGPU_HSA},
@@ -1671,16 +1670,17 @@ const EnumEntry<unsigned> ElfHeaderAMDGPUFlagsABIVersion4[] = {
1671
1670
};
1672
1671
1673
1672
const 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" ),
1684
1684
};
1685
1685
1686
1686
const EnumEntry<unsigned > ElfHeaderRISCVFlags[] = {
@@ -3655,10 +3655,16 @@ template <class ELFT> void GNUELFDumper<ELFT>::printFileHeaders() {
3655
3655
else if (e.e_machine == EM_XTENSA)
3656
3656
ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderXtensaFlags),
3657
3657
unsigned (ELF::EF_XTENSA_MACH));
3658
- else if (e.e_machine == EM_CUDA)
3658
+ else if (e.e_machine == EM_CUDA) {
3659
3659
ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderNVPTXFlags),
3660
3660
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) {
3662
3668
switch (e.e_ident [ELF::EI_ABIVERSION]) {
3663
3669
default :
3664
3670
break ;
0 commit comments