Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.le...@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!
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.le...@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
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.le...@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-p...@kernel.org/ >>> >>> Christophe
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.le...@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-p...@kernel.org/ > > > > Christophe
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.le...@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-p...@kernel.org/ > > Christophe
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.le...@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-p...@kernel.org/ Christophe
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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!
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.le...@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: sta...@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always > pass -mcpu=powerpc to the compiler") > Signed-off-by: Pali Rohár > --- > 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)
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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?
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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?
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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?
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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.
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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: sta...@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the compiler") Signed-off-by: Pali Rohár --- 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)
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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: sta...@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always > >> pass -mcpu=powerpc to the compiler") > >> Signed-off-by: Pali Rohár > >> --- > >> 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)
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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: sta...@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always >> pass -mcpu=powerpc to the compiler") >> Signed-off-by: Pali Rohár >> --- >> 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)
Re: [PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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: sta...@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always pass > -mcpu=powerpc to the compiler") > Signed-off-by: Pali Rohár > --- > 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)
[PATCH v3] powerpc/boot: Don't always pass -mcpu=powerpc when building 32-bit uImage
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: sta...@vger.kernel.org # 446cda1b21d9 ("powerpc/32: Don't always pass -mcpu=powerpc to the compiler") Signed-off-by: Pali Rohár --- 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) -- 2.20.1