Message ID | 20220828095659.4061-1-pali@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 10 jobs. |
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 10 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | fail | kernel (corenet64_smp_defconfig, korg-5.5.0, /linux/arch/powerpc/configs/ppc64e-qemu.config) failed at step build. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 6 jobs. |
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 Christophe > > Similar change was already introduced for the main powerpc Makefile in > commit 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the > compiler"). > > Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU") > Cc: stable@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the compiler") > Signed-off-by: Pali Rohár <pali@kernel.org> > --- > arch/powerpc/boot/Makefile | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile > index a9cd2ea4a861..1957a3de7a1c 100644 > --- a/arch/powerpc/boot/Makefile > +++ b/arch/powerpc/boot/Makefile > @@ -38,13 +38,19 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > $(LINUXINCLUDE) > > ifdef CONFIG_PPC64_BOOT_WRAPPER > -ifdef CONFIG_CPU_LITTLE_ENDIAN > -BOOTCFLAGS += -m64 -mcpu=powerpc64le > +BOOTCFLAGS += -m64 > else > -BOOTCFLAGS += -m64 -mcpu=powerpc64 > +BOOTCFLAGS += -m32 > endif > + > +ifdef CONFIG_TARGET_CPU_BOOL > +BOOTCFLAGS += -mcpu=$(CONFIG_TARGET_CPU) > +else ifdef CONFIG_PPC64_BOOT_WRAPPER > +ifdef CONFIG_CPU_LITTLE_ENDIAN > +BOOTCFLAGS += -mcpu=powerpc64le > else > -BOOTCFLAGS += -m32 -mcpu=powerpc > +BOOTCFLAGS += -mcpu=powerpc64 > +endif > endif > > BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
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. > Christophe > > >> >> Similar change was already introduced for the main powerpc Makefile in >> commit 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the >> compiler"). >> >> Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate >> CPU") >> Cc: stable@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always >> pass -mcpu=powerpc to the compiler") >> Signed-off-by: Pali Rohár <pali@kernel.org> >> --- >> arch/powerpc/boot/Makefile | 14 ++++++++++---- >> 1 file changed, 10 insertions(+), 4 deletions(-) >> >> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile >> index a9cd2ea4a861..1957a3de7a1c 100644 >> --- a/arch/powerpc/boot/Makefile >> +++ b/arch/powerpc/boot/Makefile >> @@ -38,13 +38,19 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes >> -Wno-trigraphs \ >> $(LINUXINCLUDE) >> ifdef CONFIG_PPC64_BOOT_WRAPPER >> -ifdef CONFIG_CPU_LITTLE_ENDIAN >> -BOOTCFLAGS += -m64 -mcpu=powerpc64le >> +BOOTCFLAGS += -m64 >> else >> -BOOTCFLAGS += -m64 -mcpu=powerpc64 >> +BOOTCFLAGS += -m32 >> endif >> + >> +ifdef CONFIG_TARGET_CPU_BOOL >> +BOOTCFLAGS += -mcpu=$(CONFIG_TARGET_CPU) >> +else ifdef CONFIG_PPC64_BOOT_WRAPPER >> +ifdef CONFIG_CPU_LITTLE_ENDIAN >> +BOOTCFLAGS += -mcpu=powerpc64le >> else >> -BOOTCFLAGS += -m32 -mcpu=powerpc >> +BOOTCFLAGS += -mcpu=powerpc64 >> +endif >> endif >> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
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! > > Christophe > > > > > >> > >> Similar change was already introduced for the main powerpc Makefile in > >> commit 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the > >> compiler"). > >> > >> Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate > >> CPU") > >> Cc: stable@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always > >> pass -mcpu=powerpc to the compiler") > >> Signed-off-by: Pali Rohár <pali@kernel.org> > >> --- > >> arch/powerpc/boot/Makefile | 14 ++++++++++---- > >> 1 file changed, 10 insertions(+), 4 deletions(-) > >> > >> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile > >> index a9cd2ea4a861..1957a3de7a1c 100644 > >> --- a/arch/powerpc/boot/Makefile > >> +++ b/arch/powerpc/boot/Makefile > >> @@ -38,13 +38,19 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes > >> -Wno-trigraphs \ > >> $(LINUXINCLUDE) > >> ifdef CONFIG_PPC64_BOOT_WRAPPER > >> -ifdef CONFIG_CPU_LITTLE_ENDIAN > >> -BOOTCFLAGS += -m64 -mcpu=powerpc64le > >> +BOOTCFLAGS += -m64 > >> else > >> -BOOTCFLAGS += -m64 -mcpu=powerpc64 > >> +BOOTCFLAGS += -m32 > >> endif > >> + > >> +ifdef CONFIG_TARGET_CPU_BOOL > >> +BOOTCFLAGS += -mcpu=$(CONFIG_TARGET_CPU) > >> +else ifdef CONFIG_PPC64_BOOT_WRAPPER > >> +ifdef CONFIG_CPU_LITTLE_ENDIAN > >> +BOOTCFLAGS += -mcpu=powerpc64le > >> else > >> -BOOTCFLAGS += -m32 -mcpu=powerpc > >> +BOOTCFLAGS += -mcpu=powerpc64 > >> +endif > >> endif > >> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
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. > >>> Christophe >>> >>> >>>> >>>> Similar change was already introduced for the main powerpc Makefile in >>>> commit 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the >>>> compiler"). >>>> >>>> Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate >>>> CPU") >>>> Cc: stable@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always >>>> pass -mcpu=powerpc to the compiler") >>>> Signed-off-by: Pali Rohár <pali@kernel.org> >>>> --- >>>> arch/powerpc/boot/Makefile | 14 ++++++++++---- >>>> 1 file changed, 10 insertions(+), 4 deletions(-) >>>> >>>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile >>>> index a9cd2ea4a861..1957a3de7a1c 100644 >>>> --- a/arch/powerpc/boot/Makefile >>>> +++ b/arch/powerpc/boot/Makefile >>>> @@ -38,13 +38,19 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes >>>> -Wno-trigraphs \ >>>> $(LINUXINCLUDE) >>>> ifdef CONFIG_PPC64_BOOT_WRAPPER >>>> -ifdef CONFIG_CPU_LITTLE_ENDIAN >>>> -BOOTCFLAGS += -m64 -mcpu=powerpc64le >>>> +BOOTCFLAGS += -m64 >>>> else >>>> -BOOTCFLAGS += -m64 -mcpu=powerpc64 >>>> +BOOTCFLAGS += -m32 >>>> endif >>>> + >>>> +ifdef CONFIG_TARGET_CPU_BOOL >>>> +BOOTCFLAGS += -mcpu=$(CONFIG_TARGET_CPU) >>>> +else ifdef CONFIG_PPC64_BOOT_WRAPPER >>>> +ifdef CONFIG_CPU_LITTLE_ENDIAN >>>> +BOOTCFLAGS += -mcpu=powerpc64le >>>> else >>>> -BOOTCFLAGS += -m32 -mcpu=powerpc >>>> +BOOTCFLAGS += -mcpu=powerpc64 >>>> +endif >>>> endif >>>> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
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.
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?
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?
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.
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?
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
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. With "[PATCH v1] powerpc/64: Set default CPU in Kconfig" patch from https://lore.kernel.org/linuxppc-dev/3fd60c2d8a28668a42b766b18362a526ef47e757.1670420281.git.christophe.leroy@csgroup.eu/ this change does not throw above compile error anymore. > > > >>> Christophe > >>> > >>> > >>>> > >>>> Similar change was already introduced for the main powerpc Makefile in > >>>> commit 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the > >>>> compiler"). > >>>> > >>>> Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate > >>>> CPU") > >>>> Cc: stable@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always > >>>> pass -mcpu=powerpc to the compiler") > >>>> Signed-off-by: Pali Rohár <pali@kernel.org> > >>>> --- > >>>> arch/powerpc/boot/Makefile | 14 ++++++++++---- > >>>> 1 file changed, 10 insertions(+), 4 deletions(-) > >>>> > >>>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile > >>>> index a9cd2ea4a861..1957a3de7a1c 100644 > >>>> --- a/arch/powerpc/boot/Makefile > >>>> +++ b/arch/powerpc/boot/Makefile > >>>> @@ -38,13 +38,19 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes > >>>> -Wno-trigraphs \ > >>>> $(LINUXINCLUDE) > >>>> ifdef CONFIG_PPC64_BOOT_WRAPPER > >>>> -ifdef CONFIG_CPU_LITTLE_ENDIAN > >>>> -BOOTCFLAGS += -m64 -mcpu=powerpc64le > >>>> +BOOTCFLAGS += -m64 > >>>> else > >>>> -BOOTCFLAGS += -m64 -mcpu=powerpc64 > >>>> +BOOTCFLAGS += -m32 > >>>> endif > >>>> + > >>>> +ifdef CONFIG_TARGET_CPU_BOOL > >>>> +BOOTCFLAGS += -mcpu=$(CONFIG_TARGET_CPU) > >>>> +else ifdef CONFIG_PPC64_BOOT_WRAPPER > >>>> +ifdef CONFIG_CPU_LITTLE_ENDIAN > >>>> +BOOTCFLAGS += -mcpu=powerpc64le > >>>> else > >>>> -BOOTCFLAGS += -m32 -mcpu=powerpc > >>>> +BOOTCFLAGS += -mcpu=powerpc64 > >>>> +endif > >>>> endif > >>>> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
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!
Le 08/12/2022 à 20:16, Pali Rohár a écrit : > 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. > > With "[PATCH v1] powerpc/64: Set default CPU in Kconfig" patch from > https://lore.kernel.org/linuxppc-dev/3fd60c2d8a28668a42b766b18362a526ef47e757.1670420281.git.christophe.leroy@csgroup.eu/ > this change does not throw above compile error anymore. That patch should land in powerpc/next soon. When it has landed, could you resent this patch so that snowpatch checks the build again ? Because at the time being it is flagged as "failed", see https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220828095659.4061-1-pali@kernel.org/ Christophe
On Thursday 08 December 2022 19:57:39 Christophe Leroy wrote: > Le 08/12/2022 à 20:16, Pali Rohár a écrit : > > 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. > > > > With "[PATCH v1] powerpc/64: Set default CPU in Kconfig" patch from > > https://lore.kernel.org/linuxppc-dev/3fd60c2d8a28668a42b766b18362a526ef47e757.1670420281.git.christophe.leroy@csgroup.eu/ > > this change does not throw above compile error anymore. > > > That patch should land in powerpc/next soon. When it has landed, could > you resent this patch so that snowpatch checks the build again ? Yes. But I'm still waiting because patch is not in powerpc/next yet. > Because at the time being it is flagged as "failed", see > https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220828095659.4061-1-pali@kernel.org/ > > Christophe
On Saturday 24 December 2022 18:44:52 Pali Rohár wrote: > On Thursday 08 December 2022 19:57:39 Christophe Leroy wrote: > > Le 08/12/2022 à 20:16, Pali Rohár a écrit : > > > 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. > > > > > > With "[PATCH v1] powerpc/64: Set default CPU in Kconfig" patch from > > > https://lore.kernel.org/linuxppc-dev/3fd60c2d8a28668a42b766b18362a526ef47e757.1670420281.git.christophe.leroy@csgroup.eu/ > > > this change does not throw above compile error anymore. > > > > > > That patch should land in powerpc/next soon. When it has landed, could > > you resent this patch so that snowpatch checks the build again ? > > Yes. But I'm still waiting because patch is not in powerpc/next yet. Seems that it still has not landed. Any suggestions to move forward? > > Because at the time being it is flagged as "failed", see > > https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220828095659.4061-1-pali@kernel.org/ > > > > Christophe
Le 22/01/2023 à 12:19, Pali Rohár a écrit : > On Saturday 24 December 2022 18:44:52 Pali Rohár wrote: >> On Thursday 08 December 2022 19:57:39 Christophe Leroy wrote: >>> Le 08/12/2022 à 20:16, Pali Rohár a écrit : >>>> 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. >>>> >>>> With "[PATCH v1] powerpc/64: Set default CPU in Kconfig" patch from >>>> https://lore.kernel.org/linuxppc-dev/3fd60c2d8a28668a42b766b18362a526ef47e757.1670420281.git.christophe.leroy@csgroup.eu/ >>>> this change does not throw above compile error anymore. >>> >>> >>> That patch should land in powerpc/next soon. When it has landed, could >>> you resent this patch so that snowpatch checks the build again ? >> >> Yes. But I'm still waiting because patch is not in powerpc/next yet. > > Seems that it still has not landed. Any suggestions to move forward? Hi I just reposted to see if it passed the CI tests this time. Christophe > >>> Because at the time being it is flagged as "failed", see >>> https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220828095659.4061-1-pali@kernel.org/ >>> >>> Christophe
Le 25/01/2023 à 08:40, Christophe Leroy a écrit : > > > Le 22/01/2023 à 12:19, Pali Rohár a écrit : >> On Saturday 24 December 2022 18:44:52 Pali Rohár wrote: >>> On Thursday 08 December 2022 19:57:39 Christophe Leroy wrote: >>>> Le 08/12/2022 à 20:16, Pali Rohár a écrit : >>>>> >>>>> With "[PATCH v1] powerpc/64: Set default CPU in Kconfig" patch from >>>>> https://lore.kernel.org/linuxppc-dev/3fd60c2d8a28668a42b766b18362a526ef47e757.1670420281.git.christophe.leroy@csgroup.eu/ >>>>> this change does not throw above compile error anymore. >>>> >>>> >>>> That patch should land in powerpc/next soon. When it has landed, could >>>> you resent this patch so that snowpatch checks the build again ? >>> >>> Yes. But I'm still waiting because patch is not in powerpc/next yet. >> >> Seems that it still has not landed. Any suggestions to move forward? > > Hi > > I just reposted to see if it passed the CI tests this time. It is now in the tree. Christophe
On Monday 20 February 2023 08:28:18 Christophe Leroy wrote: > Le 25/01/2023 à 08:40, Christophe Leroy a écrit : > > > > > > Le 22/01/2023 à 12:19, Pali Rohár a écrit : > > > On Saturday 24 December 2022 18:44:52 Pali Rohár wrote: > > > > On Thursday 08 December 2022 19:57:39 Christophe Leroy wrote: > > > > > Le 08/12/2022 à 20:16, Pali Rohár a écrit : > > > > > > > > > > > > With "[PATCH v1] powerpc/64: Set default CPU in Kconfig" patch from > > > > > > https://lore.kernel.org/linuxppc-dev/3fd60c2d8a28668a42b766b18362a526ef47e757.1670420281.git.christophe.leroy@csgroup.eu/ > > > > > > this change does not throw above compile error anymore. > > > > > > > > > > > > > > > That patch should land in powerpc/next soon. When it has landed, could > > > > > you resent this patch so that snowpatch checks the build again ? > > > > > > > > Yes. But I'm still waiting because patch is not in powerpc/next yet. > > > > > > Seems that it still has not landed. Any suggestions to move forward? > > > > Hi > > > > I just reposted to see if it passed the CI tests this time. > > It is now in the tree. > > Christophe I see, thanks!
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index a9cd2ea4a861..1957a3de7a1c 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -38,13 +38,19 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ $(LINUXINCLUDE) ifdef CONFIG_PPC64_BOOT_WRAPPER -ifdef CONFIG_CPU_LITTLE_ENDIAN -BOOTCFLAGS += -m64 -mcpu=powerpc64le +BOOTCFLAGS += -m64 else -BOOTCFLAGS += -m64 -mcpu=powerpc64 +BOOTCFLAGS += -m32 endif + +ifdef CONFIG_TARGET_CPU_BOOL +BOOTCFLAGS += -mcpu=$(CONFIG_TARGET_CPU) +else ifdef CONFIG_PPC64_BOOT_WRAPPER +ifdef CONFIG_CPU_LITTLE_ENDIAN +BOOTCFLAGS += -mcpu=powerpc64le else -BOOTCFLAGS += -m32 -mcpu=powerpc +BOOTCFLAGS += -mcpu=powerpc64 +endif endif BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
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 Similar change was already introduced for the main powerpc Makefile in commit 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the compiler"). Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU") Cc: stable@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the compiler") Signed-off-by: Pali Rohár <pali@kernel.org> --- arch/powerpc/boot/Makefile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)