# git rev-parse -q --verify beaec533fc2701a28a4d667f67c9f59c6e4e0d13^{commit} beaec533fc2701a28a4d667f67c9f59c6e4e0d13 already have revision, skipping fetch # git checkout -q -f -B kisskb beaec533fc2701a28a4d667f67c9f59c6e4e0d13 # git clean -qxdf # git log -1 commit beaec533fc2701a28a4d667f67c9f59c6e4e0d13 Author: Alexander Potapenko Date: Wed Jul 19 20:27:30 2017 +0200 llist: clang: introduce member_address_is_nonnull() Currently llist_for_each_entry() and llist_for_each_entry_safe() iterate until &pos->member != NULL. But when building the kernel with Clang, the compiler assumes &pos->member cannot be NULL if the member's offset is greater than 0 (which would be equivalent to the object being non-contiguous in memory). Therefore the loop condition is always true, and the loops become infinite. To work around this, introduce the member_address_is_nonnull() macro, which casts object pointer to uintptr_t, thus letting the member pointer to be NULL. Signed-off-by: Alexander Potapenko Tested-by: Sodagudi Prasad Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/gcc-4.6.3-nolibc/i386-linux/bin/i386-linux-gcc --version # < git log --format=%s --max-count=1 beaec533fc2701a28a4d667f67c9f59c6e4e0d13 # < make -j 10 ARCH=i386 O=/home/kisskb/slave/build/linus_i386-randconfig_i386 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/i386-linux/bin/i386-linux- randconfig KCONFIG_SEED=0x53C2A2FE # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # yes \n | make -j 10 ARCH=i386 O=/home/kisskb/slave/build/linus_i386-randconfig_i386 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/i386-linux/bin/i386-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -j 10 ARCH=i386 O=/home/kisskb/slave/build/linus_i386-randconfig_i386 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/i386-linux/bin/i386-linux- make[1]: Entering directory '/home/kisskb/slave/build/linus_i386-randconfig_i386' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h HOSTCC scripts/basic/bin2c CHK include/config/kernel.release Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler UPD include/config/kernel.release /home/kisskb/slave/src/Makefile:1085: recipe for target 'prepare-compiler-check' failed make[1]: *** [prepare-compiler-check] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** wait: No child processes. Stop. Makefile:145: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -j 10 ARCH=i386 O=/home/kisskb/slave/build/linus_i386-randconfig_i386 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/i386-linux/bin/i386-linux- ' returned non-zero exit status 2 # rm -rf /home/kisskb/slave/build/linus_i386-randconfig_i386 # Build took: 0:00:09.044973