Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
From: Pali Rohár
Date: Thu Dec 08 2022 - 14:16:36 EST
On Wednesday 07 December 2022 13:39:18 Christophe Leroy wrote:
> Le 26/11/2022 à 17:30, Pali Rohár a écrit :
> > On Wednesday 02 November 2022 14:05:35 Christophe Leroy wrote:
> >> Le 01/11/2022 à 23:12, Pali Rohár a écrit :
> >>> On Sunday 09 October 2022 13:06:52 Pali Rohár wrote:
> >>>> On Monday 29 August 2022 10:54:51 Pali Rohár wrote:
> >>>>> On Sunday 28 August 2022 17:43:53 Christophe Leroy wrote:
> >>>>>> Le 28/08/2022 à 19:41, Pali Rohár a écrit :
> >>>>>>> On Sunday 28 August 2022 17:39:25 Christophe Leroy wrote:
> >>>>>>>> Le 28/08/2022 à 19:33, Christophe Leroy a écrit :
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Le 28/08/2022 à 11:56, Pali Rohár a écrit :
> >>>>>>>>>> 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.
> >>>>
> >>>> Christophe, should I do something in this area?
> >>>
> >>> Christophe, any input from your side?
> >>
> >> Hi, sorry I was on holiday until today. I'll try to have a look in the
> >> coming days.
> >
> > Ok, Did you have a time to look at it?
>
> I just sent a patch for it.
>
> Christophe
Thanks!