diff --git a/driverapi/src/librecuda.cpp b/driverapi/src/librecuda.cpp index 9532a4e..13d4e27 100644 --- a/driverapi/src/librecuda.cpp +++ b/driverapi/src/librecuda.cpp @@ -869,6 +869,9 @@ struct RelocInfo { #define EIATTR_S2RCTAID_INSTR_OFFSETS 0x1d04 #define EIATTR_S2RCTAID_INSTR_OFFSETS_ATTR_BASE_WORD_LEN 1 +#define EIATTR_ANNOTATIONS 0x5504 +#define EIATTR_ANNOTATIONS_ATTR_BASE_WORD_LEN 1 + #define EIATTR_EXTERNS 0x0f04 #define EIATTR_EXTERNS_ATTR_WORD_LEN 2 @@ -1038,7 +1041,7 @@ libreCudaStatus_t libreCuModuleLoadData(LibreCUmodule *pModule, const void *imag } relocs.push_back(RelocInfo{ - .apply_image_offset=target_image_off + offset, + .apply_image_offset=static_cast(target_image_off + offset), .rel_sym_offset=sym_section_offs + st_value, .typ=type }); @@ -1202,6 +1205,11 @@ libreCudaStatus_t libreCuModuleLoadData(LibreCUmodule *pModule, const void *imag off += other; break; } + case EIATTR_ANNOTATIONS: { + off += EIATTR_S2RCTAID_INSTR_OFFSETS_ATTR_BASE_WORD_LEN * sizeof(NvU32); + off += other; + break; + } case EIATTR_SW_WAR: { off += EIATTR_SW_WAR_ATTR_WORD_LEN * sizeof(NvU32); break;