# git rev-parse -q --verify 316346243be6df12799c0b64b788e06bad97c30b^{commit} 316346243be6df12799c0b64b788e06bad97c30b already have revision, skipping fetch # git checkout -q -f -B kisskb 316346243be6df12799c0b64b788e06bad97c30b # git clean -qxdf # < git log -1 # commit 316346243be6df12799c0b64b788e06bad97c30b # Merge: a69ae291e1cc df26327ea097 # Author: Linus Torvalds # Date: Mon Sep 13 10:43:04 2021 -0700 # # Merge branch 'gcc-min-version-5.1' (make gcc-5.1 the minimum version) # # Merge patch series from Nick Desaulniers to update the minimum gcc # version to 5.1. # # This is some of the left-overs from the merge window that I didn't want # to deal with yesterday, so it comes in after -rc1 but was sent before. # # Gcc-4.9 support has been an annoyance for some time, and with -Werror I # had the choice of applying a fairly big patch from Kees Cook to remove a # fair number of initializer warnings (still leaving some), or this patch # series from Nick that just removes the source of the problem. # # The initializer cleanups might still be worth it regardless, but # honestly, I preferred just tackling the problem with gcc-4.9 head-on. # We've been more aggressiuve about no longer having to care about # compilers that were released a long time ago, and I think it's been a # good thing. # # I added a couple of patches on top to sort out a few left-overs now that # we no longer support gcc-4.x. # # As noted by Arnd, as a result of this minimum compiler version upgrade # we can probably change our use of '--std=gnu89' to '--std=gnu11', and # finally start using local loop declarations etc. But this series does # _not_ yet do that. # # Link: https://lore.kernel.org/all/20210909182525.372ee687@canb.auug.org.au/ # Link: https://lore.kernel.org/lkml/CAK7LNASs6dvU6D3jL2GG3jW58fXfaj6VNOe55NJnTB8UPuk2pA@mail.gmail.com/ # Link: https://github.com/ClangBuiltLinux/linux/issues/1438 # # * emailed patches from Nick Desaulniers : # Drop some straggling mentions of gcc-4.9 as being stale # compiler_attributes.h: drop __has_attribute() support for gcc4 # vmlinux.lds.h: remove old check for GCC 4.9 # compiler-gcc.h: drop checks for older GCC versions # Makefile: drop GCC < 5 -fno-var-tracking-assignments workaround # arm64: remove GCC version check for ARCH_SUPPORTS_INT128 # powerpc: remove GCC version check for UPD_CONSTR # riscv: remove Kconfig check for GCC version for ARCH_RV64I # Kconfig.debug: drop GCC 5+ version check for DWARF5 # mm/ksm: remove old GCC 4.9+ check # compiler.h: drop fallback overflow checkers # Documentation: raise minimum supported version of GCC to 5.1 # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 316346243be6df12799c0b64b788e06bad97c30b # < make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_le_defconfig # < make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from :0:0: /kisskb/src/include/linux/compiler_attributes.h:62:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__assume_aligned__) ^ /kisskb/src/include/linux/compiler_attributes.h:62:20: error: missing binary operator before token "(" #if __has_attribute(__assume_aligned__) ^ /kisskb/src/include/linux/compiler_attributes.h:88:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__copy__) ^ /kisskb/src/include/linux/compiler_attributes.h:88:20: error: missing binary operator before token "(" #if __has_attribute(__copy__) ^ /kisskb/src/include/linux/compiler_attributes.h:113:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__designated_init__) ^ /kisskb/src/include/linux/compiler_attributes.h:113:20: error: missing binary operator before token "(" #if __has_attribute(__designated_init__) ^ /kisskb/src/include/linux/compiler_attributes.h:124:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__error__) ^ /kisskb/src/include/linux/compiler_attributes.h:124:20: error: missing binary operator before token "(" #if __has_attribute(__error__) ^ /kisskb/src/include/linux/compiler_attributes.h:135:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__externally_visible__) ^ /kisskb/src/include/linux/compiler_attributes.h:135:20: error: missing binary operator before token "(" #if __has_attribute(__externally_visible__) ^ In file included from :0:0: /kisskb/src/include/linux/compiler_attributes.h:171:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__no_caller_saved_registers__) ^ /kisskb/src/include/linux/compiler_attributes.h:171:20: error: missing binary operator before token "(" #if __has_attribute(__no_caller_saved_registers__) ^ /kisskb/src/include/linux/compiler_attributes.h:182:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__noclone__) ^ /kisskb/src/include/linux/compiler_attributes.h:182:20: error: missing binary operator before token "(" #if __has_attribute(__noclone__) ^ /kisskb/src/include/linux/compiler_attributes.h:199:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__fallthrough__) ^ /kisskb/src/include/linux/compiler_attributes.h:199:20: error: missing binary operator before token "(" #if __has_attribute(__fallthrough__) ^ /kisskb/src/include/linux/compiler_attributes.h:226:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__nonstring__) ^ /kisskb/src/include/linux/compiler_attributes.h:226:20: error: missing binary operator before token "(" #if __has_attribute(__nonstring__) ^ /kisskb/src/include/linux/compiler_attributes.h:238:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__no_profile_instrument_function__) ^ /kisskb/src/include/linux/compiler_attributes.h:238:20: error: missing binary operator before token "(" #if __has_attribute(__no_profile_instrument_function__) ^ /kisskb/src/include/linux/compiler_attributes.h:296:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__warning__) ^ /kisskb/src/include/linux/compiler_attributes.h:296:20: error: missing binary operator before token "(" #if __has_attribute(__warning__) ^ make[2]: *** [/kisskb/src/arch/powerpc/boot/Makefile:225: arch/powerpc/boot/crt0.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from :0:0: /kisskb/src/include/linux/compiler_attributes.h:62:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__assume_aligned__) ^ /kisskb/src/include/linux/compiler_attributes.h:62:20: error: missing binary operator before token "(" #if __has_attribute(__assume_aligned__) ^ /kisskb/src/include/linux/compiler_attributes.h:88:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__copy__) ^ /kisskb/src/include/linux/compiler_attributes.h:88:20: error: missing binary operator before token "(" #if __has_attribute(__copy__) ^ /kisskb/src/include/linux/compiler_attributes.h:113:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__designated_init__) ^ /kisskb/src/include/linux/compiler_attributes.h:113:20: error: missing binary operator before token "(" #if __has_attribute(__designated_init__) ^ /kisskb/src/include/linux/compiler_attributes.h:124:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__error__) ^ /kisskb/src/include/linux/compiler_attributes.h:124:20: error: missing binary operator before token "(" #if __has_attribute(__error__) ^ /kisskb/src/include/linux/compiler_attributes.h:135:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__externally_visible__) ^ /kisskb/src/include/linux/compiler_attributes.h:135:20: error: missing binary operator before token "(" #if __has_attribute(__externally_visible__) ^ In file included from :0:0: /kisskb/src/include/linux/compiler_attributes.h:171:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__no_caller_saved_registers__) ^ /kisskb/src/include/linux/compiler_attributes.h:171:20: error: missing binary operator before token "(" #if __has_attribute(__no_caller_saved_registers__) ^ /kisskb/src/include/linux/compiler_attributes.h:182:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__noclone__) ^ /kisskb/src/include/linux/compiler_attributes.h:182:20: error: missing binary operator before token "(" #if __has_attribute(__noclone__) ^ /kisskb/src/include/linux/compiler_attributes.h:199:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__fallthrough__) ^ /kisskb/src/include/linux/compiler_attributes.h:199:20: error: missing binary operator before token "(" #if __has_attribute(__fallthrough__) ^ /kisskb/src/include/linux/compiler_attributes.h:226:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__nonstring__) ^ /kisskb/src/include/linux/compiler_attributes.h:226:20: error: missing binary operator before token "(" #if __has_attribute(__nonstring__) ^ /kisskb/src/include/linux/compiler_attributes.h:238:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__no_profile_instrument_function__) ^ /kisskb/src/include/linux/compiler_attributes.h:238:20: error: missing binary operator before token "(" #if __has_attribute(__no_profile_instrument_function__) ^ /kisskb/src/include/linux/compiler_attributes.h:296:5: warning: "__has_attribute" is not defined [-Wundef] #if __has_attribute(__warning__) ^ /kisskb/src/include/linux/compiler_attributes.h:296:20: error: missing binary operator before token "(" #if __has_attribute(__warning__) ^ make[2]: *** [/kisskb/src/arch/powerpc/boot/Makefile:225: arch/powerpc/boot/div64.o] Error 1 make[1]: *** [/kisskb/src/arch/powerpc/Makefile:283: zImage] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:219: __sub-make] Error 2 Command 'make -s -j 48 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_pseries_le_defconfig_powerpc-gcc5 # Build took: 0:03:05.373814