1. 17 Feb, 2023 1 commit
    • Christophe Leroy's avatar
      powerpc: Pass correct CPU reference to assembler · bfb03af7
      Christophe Leroy authored
      Jan-Benedict reported issue with building ppc64e_defconfig
      with mainline GCC work:
      
        powerpc64-linux-gcc -Wp,-MMD,arch/powerpc/kernel/vdso/.gettimeofday-64.o.d -nostdinc -I./arch/powerpc/include -I./arch/powerpc/include/generated  -I./include -I./arch/powerpc/include/uapi -I./arch/powerpc/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -D__KERNEL__ -I ./arch/powerpc -DHAVE_AS_ATHIGH=1 -fmacro-prefix-map=./= -D__ASSEMBLY__ -fno-PIE -m64 -Wl,-a64 -mabi=elfv1 -Wa,-me500 -Wa,-me500mc -mabi=elfv1 -mbig-endian    -Wl,-soname=linux-vdso64.so.1 -D__VDSO64__ -s -c -o arch/powerpc/kernel/vdso/gettimeofday-64.o arch/powerpc/kernel/vdso/gettimeofday.S
      	arch/powerpc/kernel/vdso/gettimeofday.S: Assembler messages:
      	arch/powerpc/kernel/vdso/gettimeofday.S:72: Error: unrecognized opcode: `stdu'
      	arch/powerpc/kernel/vdso/gettimeofday.S:72: Error: unrecognized opcode: `stdu'
      	arch/powerpc/kernel/vdso/gettimeofday.S:72: Error: unrecognized opcode: `std'
      	arch/powerpc/kernel/vdso/gettimeofday.S:72: Error: unrecognized opcode: `std'
      	arch/powerpc/kernel/vdso/gettimeofday.S:72: Error: unrecognized opcode: `ld'
      	arch/powerpc/kernel/vdso/gettimeofday.S:72: Error: unrecognized opcode: `ld'
      	...
      	make[1]: *** [arch/powerpc/kernel/vdso/Makefile:76: arch/powerpc/kernel/vdso/gettimeofday-64.o] Error 1
      	make: *** [arch/powerpc/Makefile:387: vdso_prepare] Error 2
      
      This is due to assembler being called with -me500mc which is
      a 32 bits target.
      
      The problem comes from the fact that CONFIG_PPC_E500MC is selected for
      both the e500mc (32 bits) and the e5500 (64 bits), and therefore the
      following makefile rule is wrong:
      
        cpu-as-$(CONFIG_PPC_E500MC)    += $(call as-option,-Wa$(comma)-me500mc)
      
      Today we have CONFIG_TARGET_CPU which provides the identification of the
      expected CPU, it is used for GCC. Once GCC knows the target CPU, it adds
      the correct CPU option to assembler, no need to add it explicitly.
      
      With that change (And also commit 45f7091a ("powerpc/64: Set default
      CPU in Kconfig")), it now is:
      
        powerpc64-linux-gcc -Wp,-MMD,arch/powerpc/kernel/vdso/.gettimeofday-64.o.d -nostdinc -I./arch/powerpc/include -I./arch/powerpc/include/generated  -I./include -I./arch/powerpc/include/uapi -I./arch/powerpc/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -D__KERNEL__ -I ./arch/powerpc -DHAVE_AS_ATHIGH=1 -fmacro-prefix-map=./= -D__ASSEMBLY__ -fno-PIE -m64 -Wl,-a64 -mabi=elfv1 -mcpu=e500mc64 -mabi=elfv1 -mbig-endian    -Wl,-soname=linux-vdso64.so.1 -D__VDSO64__ -s -c -o arch/powerpc/kernel/vdso/gettimeofday-64.o arch/powerpc/kernel/vdso/gettimeofday.S
      Reported-by: default avatarJan-Benedict Glaw <jbglaw@lug-owl.de>
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Acked-by: default avatarPali Rohár <pali@kernel.org>
      [mpe: Retain -Wa,-mpower4 -Wa,-many for Book3S 64 builds for now]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/758ad54128fa9dd2fdedc4c511592111cbded900.1671475543.git.christophe.leroy@csgroup.eu
      bfb03af7
  2. 16 Feb, 2023 4 commits
  3. 15 Feb, 2023 6 commits
  4. 13 Feb, 2023 23 commits
  5. 12 Feb, 2023 6 commits