Thread (30 messages) 30 messages, 2 authors, 2023-02-20

Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage

From: Pali Rohár <pali@kernel.org>
Date: 2022-08-29 08:55:04
Also in: lkml

On Sunday 28 August 2022 17:43:53 Christophe Leroy wrote:
Le 28/08/2022 à 19:41, Pali Rohár a écrit :
quoted
On Sunday 28 August 2022 17:39:25 Christophe Leroy wrote:
quoted
Le 28/08/2022 à 19:33, Christophe Leroy a écrit :
quoted

Le 28/08/2022 à 11:56, Pali Rohár a écrit :
quoted
When CONFIG_TARGET_CPU is specified then pass its value to the compiler
-mcpu option. This fixes following build error when building kernel with
powerpc e500 SPE capable cross compilers:

      BOOTAS  arch/powerpc/boot/crt0.o
    powerpc-linux-gnuspe-gcc: error: unrecognized argument in option
‘-mcpu=powerpc’
    powerpc-linux-gnuspe-gcc: note: valid arguments to ‘-mcpu=’ are:
8540 8548 native
    make[1]: *** [arch/powerpc/boot/Makefile:231:
arch/powerpc/boot/crt0.o] Error 1
corenet64_smp_defconfig :

    BOOTAS  arch/powerpc/boot/crt0.o
powerpc64-linux-gcc: error: missing argument to '-mcpu='
make[1]: *** [arch/powerpc/boot/Makefile:237 : arch/powerpc/boot/crt0.o]
Erreur 1
make: *** [arch/powerpc/Makefile:253 : uImage] Erreur 2
Seems like in fact, E5500_CPU and E6500_CPU are not taken into account
in CONFIG_TARGET_CPU, and get special treatment directly in
arch/powerpc/Makefile.

This goes unnoticed because of CFLAGS-$(CONFIG_TARGET_CPU_BOOL) +=
$(call cc-option,-mcpu=$(CONFIG_TARGET_CPU))

I think we need to fix that prior to your patch.
It looks like that CONFIG_TARGET_CPU is broken.

   $ make ARCH=powerpc corenet64_smp_defconfig CROSS_COMPILE=powerpc64-linux-gnu-
   ...
   # configuration written to .config

   $ grep CONFIG_TARGET_CPU .config
   CONFIG_TARGET_CPU_BOOL=y

CONFIG_TARGET_CPU_BOOL is set but CONFIG_TARGET_CPU not!
Yes, because there is no default value for E5500_CPU and E6500_CPU. We 
need to add one for each.
I see... Will you prepare this fixup for your previous patch?

And I think that following construct

  $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU))

should be changed just to

  -mcpu=$(CONFIG_TARGET_CPU)

Because if user specified that want build for specific target CPU, it
should not be silently ignored.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help