# 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-8.1.0-nolibc/s390-linux/bin/s390-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/s390-linux/bin/s390-linux-ld --version # < git log --format=%s --max-count=1 8d17c0c83c07bad137e2df3a45e9cd4e80d85418 # < make -s -j 120 ARCH=s390 O=/kisskb/build/powerpc-next_s390-defconfig_s390x-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/s390-linux/bin/s390-linux- defconfig # make -s -j 120 ARCH=s390 O=/kisskb/build/powerpc-next_s390-defconfig_s390x-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/s390-linux/bin/s390-linux- error: section .boot.data differs between vmlinux and arch/s390/boot/compressed/vmlinux make[2]: *** [/kisskb/src/arch/s390/boot/Makefile:65: arch/s390/boot/section_cmp.boot.data] Error 1 make[2]: *** Waiting for unfinished jobs.... error: section .boot.preserved.data differs between vmlinux and arch/s390/boot/compressed/vmlinux make[2]: *** [/kisskb/src/arch/s390/boot/Makefile:65: arch/s390/boot/section_cmp.boot.preserved.data] Error 1 make[1]: *** [arch/s390/Makefile:153: bzImage] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:185: __sub-make] Error 2 Command 'make -s -j 120 ARCH=s390 O=/kisskb/build/powerpc-next_s390-defconfig_s390x-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/s390-linux/bin/s390-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/powerpc-next_s390-defconfig_s390x-gcc8 # Build took: 0:02:45.031651