HAVE_JUMP_LABEL is defined in <linux/jump_label.h> this way: #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) # define HAVE_JUMP_LABEL #endif where CONFIG_JUMP_LABEL is enabled. CC_HAVE_ASM_GOTO is detected on build time by trying to compile this (see scripts/gcc-goto.sh): ----------------------------------------------------------------------------- int main(void) { #if defined(__arm__) || defined(__aarch64__) /* * Not related to asm goto, but used by jump label * and broken on some ARM GCC versions (see GCC Bug 48637). */ static struct { int dummy; int state; } tp; asm (".long %c0" :: "i" (&tp.state)); #endif entry: asm goto ("" :::: entry); return 0; } ----------------------------------------------------------------------------- For some reason this succeeds when building the module but fails when building the kernel packages in IBS. There is one related commit between 4.16 and 4.17-rc1: e501ce957a78 ("x86: Force asm-goto") but I don't see how it could break the detection in IBS.