# git rev-parse -q --verify 8d17c0c83c07bad137e2df3a45e9cd4e80d85418^{commit} 8d17c0c83c07bad137e2df3a45e9cd4e80d85418 already have revision, skipping fetch # git checkout -q -f -B kisskb 8d17c0c83c07bad137e2df3a45e9cd4e80d85418 # git clean -qxdf # < git log -1 # commit 8d17c0c83c07bad137e2df3a45e9cd4e80d85418 # Author: Ard Biesheuvel # Date: Wed Oct 28 09:04:33 2020 +0100 # # powerpc: Avoid broken GCC __attribute__((optimize)) # # Commit 7053f80d9696 ("powerpc/64: Prevent stack protection in early # boot") introduced a couple of uses of __attribute__((optimize)) with # function scope, to disable the stack protector in some early boot # code. # # Unfortunately, and this is documented in the GCC man pages [0], # overriding function attributes for optimization is broken, and is only # supported for debug scenarios, not for production: the problem appears # to be that setting GCC -f flags using this method will cause it to # forget about some or all other optimization settings that have been # applied. # # So the only safe way to disable the stack protector is to disable it # for the entire source file. # # [0] https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html # # Fixes: 7053f80d9696 ("powerpc/64: Prevent stack protection in early boot") # Signed-off-by: Ard Biesheuvel # [mpe: Drop one remaining use of __nostackprotector, reported by snowpatch] # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20201028080433.26799-1-ardb@kernel.org # < /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 8d17c0c83c07bad137e2df3a45e9cd4e80d85418 # < make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- mpc85xx_defconfig # < make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/include/linux/kernel.h:11:0, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/module.h:12, from /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:15: /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c: In function 'allocate_bd': /kisskb/src/include/linux/err.h:22:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) ^ /kisskb/src/include/linux/compiler.h:78:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:139:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(fep->ring_mem_addr)) ^ cc1: fatal error: opening output file arch/powerpc/boot/dts/fsl/.mpc8540ads.dtb.dts.tmp: No such file or directory compilation terminated. make[2]: *** [scripts/Makefile.lib:326: arch/powerpc/boot/dts/fsl/mpc8540ads.dtb] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [arch/powerpc/Makefile:295: zImage] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:185: __sub-make] Error 2 Command 'make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_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/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 # Build took: 0:02:43.993507