#include <linux/compiler.h> /* for __PASTE */
 #include <linux/compiler_attributes.h> /* for __maybe_unused */
+#include <linux/stringify.h>
 
 /*
  * Following macros help to define lists of BTF IDs placed
  * .word (1 << 3) | (1 << 1) | (1 << 2)
  *
  */
-#define __BTF_SET8_START(name, scope)                  \
+#define __BTF_SET8_START(name, scope, flags)           \
+__BTF_ID_LIST(name, local)                             \
 asm(                                                   \
 ".pushsection " BTF_IDS_SECTION ",\"a\";       \n"     \
 "." #scope " __BTF_ID__set8__" #name ";        \n"     \
 "__BTF_ID__set8__" #name ":;                   \n"     \
-".zero 8                                       \n"     \
+".zero 4                                       \n"     \
+".long " __stringify(flags)                   "\n"     \
 ".popsection;                                  \n");
 
 #define BTF_SET8_START(name)                           \
-__BTF_ID_LIST(name, local)                             \
-__BTF_SET8_START(name, local)
+__BTF_SET8_START(name, local, 0)
 
 #define BTF_SET8_END(name)                             \
 asm(                                                   \