arch/powerpc/boot/Makefile | 6 ++++++ 1 file changed, 6 insertions(+)
Commit 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU")
broke compilation of uImage target for mpc85xx platforms by powerpc e500
SPE capable cross compilers. After that commit build process throws error:
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
Fix this issue by checking for CONFIG_PPC_E500MC / CONFIG_E500 options and
applying appropriate -mcpu options for building uImage boot code.
Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU")
Cc: stable@vger.kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
---
arch/powerpc/boot/Makefile | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index a9cd2ea4a861..d7cf5d87e4bc 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -44,8 +44,14 @@ else
BOOTCFLAGS += -m64 -mcpu=powerpc64
endif
else
+ifdef CONFIG_PPC_E500MC
+BOOTCFLAGS += -m32 $(call cc-option,-mcpu=e500mc,-mcpu=powerpc)
+else ifdef CONFIG_E500
+BOOTCFLAGS += -m32 $(call cc-option,-mcpu=8540 -msoft-float,-mcpu=powerpc)
+else
BOOTCFLAGS += -m32 -mcpu=powerpc
endif
+endif
BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
--
2.20.1
Le 20/08/2022 à 12:52, Pali Rohár a écrit :
> Commit 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU")
> broke compilation of uImage target for mpc85xx platforms by powerpc e500
> SPE capable cross compilers. After that commit build process throws error:
>
> 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
>
> Fix this issue by checking for CONFIG_PPC_E500MC / CONFIG_E500 options and
> applying appropriate -mcpu options for building uImage boot code.
This is very specific to e500, could you instead do something using
CONFIG_TARGET_CPU, just like commit 446cda1b21d9 ("powerpc/32: Don't
always pass -mcpu=powerpc to the compiler")
Thanks
Christophe
>
> Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU")
> Cc: stable@vger.kernel.org
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
> arch/powerpc/boot/Makefile | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index a9cd2ea4a861..d7cf5d87e4bc 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -44,8 +44,14 @@ else
> BOOTCFLAGS += -m64 -mcpu=powerpc64
> endif
> else
> +ifdef CONFIG_PPC_E500MC
> +BOOTCFLAGS += -m32 $(call cc-option,-mcpu=e500mc,-mcpu=powerpc)
> +else ifdef CONFIG_E500
> +BOOTCFLAGS += -m32 $(call cc-option,-mcpu=8540 -msoft-float,-mcpu=powerpc)
> +else
> BOOTCFLAGS += -m32 -mcpu=powerpc
> endif
> +endif
>
> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
>
On Tuesday 23 August 2022 16:57:34 Christophe Leroy wrote:
> Le 20/08/2022 à 12:52, Pali Rohár a écrit :
> > Commit 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU")
> > broke compilation of uImage target for mpc85xx platforms by powerpc e500
> > SPE capable cross compilers. After that commit build process throws error:
> >
> > 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
> >
> > Fix this issue by checking for CONFIG_PPC_E500MC / CONFIG_E500 options and
> > applying appropriate -mcpu options for building uImage boot code.
>
> This is very specific to e500, could you instead do something using
> CONFIG_TARGET_CPU, just like commit 446cda1b21d9 ("powerpc/32: Don't
> always pass -mcpu=powerpc to the compiler")
Ok, What about this change?
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index a9cd2ea4a861..2247374c4e70 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -34,6 +34,7 @@ endif
BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -O2 -msoft-float -mno-altivec -mno-vsx \
+ $(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \
-pipe -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \
$(LINUXINCLUDE)
@@ -44,8 +45,16 @@ else
BOOTCFLAGS += -m64 -mcpu=powerpc64
endif
else
+ifdef CONFIG_PPC32
+ifdef CONFIG_TARGET_CPU_BOOL
+BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
+else
+BOOTCFLAGS += -m32 -mcpu=powerpc
+endif
+else
BOOTCFLAGS += -m32 -mcpu=powerpc
endif
+endif
BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
> Thanks
> Christophe
>
>
> >
> > Fixes: 40a75584e526 ("powerpc/boot: Build wrapper for an appropriate CPU")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > ---
> > arch/powerpc/boot/Makefile | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> > index a9cd2ea4a861..d7cf5d87e4bc 100644
> > --- a/arch/powerpc/boot/Makefile
> > +++ b/arch/powerpc/boot/Makefile
> > @@ -44,8 +44,14 @@ else
> > BOOTCFLAGS += -m64 -mcpu=powerpc64
> > endif
> > else
> > +ifdef CONFIG_PPC_E500MC
> > +BOOTCFLAGS += -m32 $(call cc-option,-mcpu=e500mc,-mcpu=powerpc)
> > +else ifdef CONFIG_E500
> > +BOOTCFLAGS += -m32 $(call cc-option,-mcpu=8540 -msoft-float,-mcpu=powerpc)
> > +else
> > BOOTCFLAGS += -m32 -mcpu=powerpc
> > 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(-)
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
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.
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)
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!
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 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!
For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
following compiler 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
For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
change.
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
Signed-off-by: Pali Rohár <pali@kernel.org>
---
arch/powerpc/boot/Makefile | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index a9cd2ea4a861..f56a5f90a5d8 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -44,8 +44,16 @@ else
BOOTCFLAGS += -m64 -mcpu=powerpc64
endif
else
+ifdef CONFIG_PPC32
+ifdef CONFIG_TARGET_CPU_BOOL
+BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
+else
+BOOTCFLAGS += -m32 -mcpu=powerpc
+endif
+else
BOOTCFLAGS += -m32 -mcpu=powerpc
endif
+endif
BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
--
2.20.1
Le 27/08/2022 à 15:39, Pali Rohár a écrit :
> For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
> following compiler 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
>
> For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
> change.
>
> 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
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
> arch/powerpc/boot/Makefile | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index a9cd2ea4a861..f56a5f90a5d8 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -44,8 +44,16 @@ else
> BOOTCFLAGS += -m64 -mcpu=powerpc64
> endif
> else
> +ifdef CONFIG_PPC32
> +ifdef CONFIG_TARGET_CPU_BOOL
> +BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
> +else
> +BOOTCFLAGS += -m32 -mcpu=powerpc
You can't do that. You get here only if user has selected
TOOLCHAIN_DEFAULT_CPU, in which case you don't want to for -mcpu=powerpc.
-mcpu=powerpc is set when user selects CONFIG_POWERPC_CPU, in which case
CONFIG_TARGET_CPU_BOOL is set as well.
> +endif
> +else
> BOOTCFLAGS += -m32 -mcpu=powerpc
Same, for PPC64 I think you don't want that either, unless the
CONFIG_GENERIC_CPU has been selected in which case
CONFIG_TARGET_CPU_BOOL is not set.
When CONFIG_TARGET_CPU_BOOL is set for PPC64 you also want
-mcpu=$(CONFIG_TARGET_CPU)
> endif
> +endif
>
> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
>
On Saturday 27 August 2022 17:31:10 Christophe Leroy wrote:
> Le 27/08/2022 à 15:39, Pali Rohár a écrit :
> > For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
> > following compiler 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
> >
> > For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
> > change.
> >
> > 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
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > ---
> > arch/powerpc/boot/Makefile | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> > index a9cd2ea4a861..f56a5f90a5d8 100644
> > --- a/arch/powerpc/boot/Makefile
> > +++ b/arch/powerpc/boot/Makefile
> > @@ -44,8 +44,16 @@ else
> > BOOTCFLAGS += -m64 -mcpu=powerpc64
> > endif
> > else
> > +ifdef CONFIG_PPC32
> > +ifdef CONFIG_TARGET_CPU_BOOL
> > +BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
> > +else
> > +BOOTCFLAGS += -m32 -mcpu=powerpc
>
> You can't do that. You get here only if user has selected
> TOOLCHAIN_DEFAULT_CPU, in which case you don't want to for -mcpu=powerpc.
So do I understand it correctly that in this branch I should omit -mcpu=powerpc?
> -mcpu=powerpc is set when user selects CONFIG_POWERPC_CPU, in which case
> CONFIG_TARGET_CPU_BOOL is set as well.
>
> > +endif
> > +else
> > BOOTCFLAGS += -m32 -mcpu=powerpc
>
> Same, for PPC64 I think you don't want that either, unless the
> CONFIG_GENERIC_CPU has been selected in which case
> CONFIG_TARGET_CPU_BOOL is not set.
>
> When CONFIG_TARGET_CPU_BOOL is set for PPC64 you also want
> -mcpu=$(CONFIG_TARGET_CPU)
I understand that this branch is called for PPC64 build with 32-bit
uImage wrapper. So in this case should not be used TARGET_CPU as it
would be 64-bit and not 32-bit as requited for 32-bit uImage wrapper.
Anyway, in this change I'm touching only PPC32 build, so all PPC64 stay
as it was before.
> > endif
> > +endif
> >
> > BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
> >
Le 27/08/2022 à 19:36, Pali Rohár a écrit :
> On Saturday 27 August 2022 17:31:10 Christophe Leroy wrote:
>> Le 27/08/2022 à 15:39, Pali Rohár a écrit :
>>> For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
>>> following compiler 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
>>>
>>> For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
>>> change.
>>>
>>> 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
>>> Signed-off-by: Pali Rohár <pali@kernel.org>
>>> ---
>>> arch/powerpc/boot/Makefile | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>>
>>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
>>> index a9cd2ea4a861..f56a5f90a5d8 100644
>>> --- a/arch/powerpc/boot/Makefile
>>> +++ b/arch/powerpc/boot/Makefile
>>> @@ -44,8 +44,16 @@ else
>>> BOOTCFLAGS += -m64 -mcpu=powerpc64
>>> endif
>>> else
>>> +ifdef CONFIG_PPC32
>>> +ifdef CONFIG_TARGET_CPU_BOOL
>>> +BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
>>> +else
>>> +BOOTCFLAGS += -m32 -mcpu=powerpc
>>
>> You can't do that. You get here only if user has selected
>> TOOLCHAIN_DEFAULT_CPU, in which case you don't want to for -mcpu=powerpc.
>
> So do I understand it correctly that in this branch I should omit -mcpu=powerpc?
Correct.
>
>> -mcpu=powerpc is set when user selects CONFIG_POWERPC_CPU, in which case
>> CONFIG_TARGET_CPU_BOOL is set as well.
>>
>>> +endif
>>> +else
>>> BOOTCFLAGS += -m32 -mcpu=powerpc
>>
>> Same, for PPC64 I think you don't want that either, unless the
>> CONFIG_GENERIC_CPU has been selected in which case
>> CONFIG_TARGET_CPU_BOOL is not set.
>>
>> When CONFIG_TARGET_CPU_BOOL is set for PPC64 you also want
>> -mcpu=$(CONFIG_TARGET_CPU)
>
> I understand that this branch is called for PPC64 build with 32-bit
> uImage wrapper. So in this case should not be used TARGET_CPU as it
> would be 64-bit and not 32-bit as requited for 32-bit uImage wrapper.
Why ?
-mcpu=e6500 -m32 works as far as I can see.
>
> Anyway, in this change I'm touching only PPC32 build, so all PPC64 stay
> as it was before.
>
>>> endif
>>> +endif
>>>
>>> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
>>>
On Saturday 27 August 2022 18:32:42 Christophe Leroy wrote:
> Le 27/08/2022 à 19:36, Pali Rohár a écrit :
> > On Saturday 27 August 2022 17:31:10 Christophe Leroy wrote:
> >> Le 27/08/2022 à 15:39, Pali Rohár a écrit :
> >>> For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
> >>> following compiler 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
> >>>
> >>> For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
> >>> change.
> >>>
> >>> 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
> >>> Signed-off-by: Pali Rohár <pali@kernel.org>
> >>> ---
> >>> arch/powerpc/boot/Makefile | 8 ++++++++
> >>> 1 file changed, 8 insertions(+)
> >>>
> >>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> >>> index a9cd2ea4a861..f56a5f90a5d8 100644
> >>> --- a/arch/powerpc/boot/Makefile
> >>> +++ b/arch/powerpc/boot/Makefile
> >>> @@ -44,8 +44,16 @@ else
> >>> BOOTCFLAGS += -m64 -mcpu=powerpc64
> >>> endif
> >>> else
> >>> +ifdef CONFIG_PPC32
> >>> +ifdef CONFIG_TARGET_CPU_BOOL
> >>> +BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
> >>> +else
> >>> +BOOTCFLAGS += -m32 -mcpu=powerpc
> >>
> >> You can't do that. You get here only if user has selected
> >> TOOLCHAIN_DEFAULT_CPU, in which case you don't want to for -mcpu=powerpc.
> >
> > So do I understand it correctly that in this branch I should omit -mcpu=powerpc?
>
> Correct.
Ok, I will fix it in v3.
> >
> >> -mcpu=powerpc is set when user selects CONFIG_POWERPC_CPU, in which case
> >> CONFIG_TARGET_CPU_BOOL is set as well.
> >>
> >>> +endif
> >>> +else
> >>> BOOTCFLAGS += -m32 -mcpu=powerpc
> >>
> >> Same, for PPC64 I think you don't want that either, unless the
> >> CONFIG_GENERIC_CPU has been selected in which case
> >> CONFIG_TARGET_CPU_BOOL is not set.
> >>
> >> When CONFIG_TARGET_CPU_BOOL is set for PPC64 you also want
> >> -mcpu=$(CONFIG_TARGET_CPU)
> >
> > I understand that this branch is called for PPC64 build with 32-bit
> > uImage wrapper. So in this case should not be used TARGET_CPU as it
> > would be 64-bit and not 32-bit as requited for 32-bit uImage wrapper.
>
> Why ?
>
> -mcpu=e6500 -m32 works as far as I can see.
Hm... I did not know that. Ok, if you want I will put it into
-m32 -mcpu=$(CONFIG_TARGET_CPU) branch too.
> >
> > Anyway, in this change I'm touching only PPC32 build, so all PPC64 stay
> > as it was before.
> >
> >>> endif
> >>> +endif
> >>>
> >>> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
> >>>
On Saturday 27 August 2022 20:36:08 Pali Rohár wrote:
> On Saturday 27 August 2022 18:32:42 Christophe Leroy wrote:
> > Le 27/08/2022 à 19:36, Pali Rohár a écrit :
> > > On Saturday 27 August 2022 17:31:10 Christophe Leroy wrote:
> > >> Le 27/08/2022 à 15:39, Pali Rohár a écrit :
> > >>> For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
> > >>> following compiler 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
> > >>>
> > >>> For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
> > >>> change.
> > >>>
> > >>> 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
> > >>> Signed-off-by: Pali Rohár <pali@kernel.org>
> > >>> ---
> > >>> arch/powerpc/boot/Makefile | 8 ++++++++
> > >>> 1 file changed, 8 insertions(+)
> > >>>
> > >>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> > >>> index a9cd2ea4a861..f56a5f90a5d8 100644
> > >>> --- a/arch/powerpc/boot/Makefile
> > >>> +++ b/arch/powerpc/boot/Makefile
> > >>> @@ -44,8 +44,16 @@ else
> > >>> BOOTCFLAGS += -m64 -mcpu=powerpc64
> > >>> endif
> > >>> else
> > >>> +ifdef CONFIG_PPC32
> > >>> +ifdef CONFIG_TARGET_CPU_BOOL
> > >>> +BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
> > >>> +else
> > >>> +BOOTCFLAGS += -m32 -mcpu=powerpc
> > >>
> > >> You can't do that. You get here only if user has selected
> > >> TOOLCHAIN_DEFAULT_CPU, in which case you don't want to for -mcpu=powerpc.
> > >
> > > So do I understand it correctly that in this branch I should omit -mcpu=powerpc?
> >
> > Correct.
>
> Ok, I will fix it in v3.
>
> > >
> > >> -mcpu=powerpc is set when user selects CONFIG_POWERPC_CPU, in which case
> > >> CONFIG_TARGET_CPU_BOOL is set as well.
> > >>
> > >>> +endif
> > >>> +else
> > >>> BOOTCFLAGS += -m32 -mcpu=powerpc
> > >>
> > >> Same, for PPC64 I think you don't want that either, unless the
> > >> CONFIG_GENERIC_CPU has been selected in which case
> > >> CONFIG_TARGET_CPU_BOOL is not set.
> > >>
> > >> When CONFIG_TARGET_CPU_BOOL is set for PPC64 you also want
> > >> -mcpu=$(CONFIG_TARGET_CPU)
> > >
> > > I understand that this branch is called for PPC64 build with 32-bit
> > > uImage wrapper. So in this case should not be used TARGET_CPU as it
> > > would be 64-bit and not 32-bit as requited for 32-bit uImage wrapper.
> >
> > Why ?
> >
> > -mcpu=e6500 -m32 works as far as I can see.
>
> Hm... I did not know that. Ok, if you want I will put it into
> -m32 -mcpu=$(CONFIG_TARGET_CPU) branch too.
And when CONFIG_TARGET_CPU_BOOL is not set but CONFIG_PPC64_BOOT_WRAPPER
is, should be -mcpu=powerpc64le or -mcpu=powerpc64 still passed?
> > >
> > > Anyway, in this change I'm touching only PPC32 build, so all PPC64 stay
> > > as it was before.
> > >
> > >>> endif
> > >>> +endif
> > >>>
> > >>> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
> > >>>
Le 27/08/2022 à 21:00, Pali Rohár a écrit :
> On Saturday 27 August 2022 20:36:08 Pali Rohár wrote:
>> On Saturday 27 August 2022 18:32:42 Christophe Leroy wrote:
>>> Le 27/08/2022 à 19:36, Pali Rohár a écrit :
>>>> On Saturday 27 August 2022 17:31:10 Christophe Leroy wrote:
>>>>> Le 27/08/2022 à 15:39, Pali Rohár a écrit :
>>>>>> For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
>>>>>> following compiler 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
>>>>>>
>>>>>> For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
>>>>>> change.
>>>>>>
>>>>>> 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
>>>>>> Signed-off-by: Pali Rohár <pali@kernel.org>
>>>>>> ---
>>>>>> arch/powerpc/boot/Makefile | 8 ++++++++
>>>>>> 1 file changed, 8 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
>>>>>> index a9cd2ea4a861..f56a5f90a5d8 100644
>>>>>> --- a/arch/powerpc/boot/Makefile
>>>>>> +++ b/arch/powerpc/boot/Makefile
>>>>>> @@ -44,8 +44,16 @@ else
>>>>>> BOOTCFLAGS += -m64 -mcpu=powerpc64
>>>>>> endif
>>>>>> else
>>>>>> +ifdef CONFIG_PPC32
>>>>>> +ifdef CONFIG_TARGET_CPU_BOOL
>>>>>> +BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
>>>>>> +else
>>>>>> +BOOTCFLAGS += -m32 -mcpu=powerpc
>>>>>
>>>>> You can't do that. You get here only if user has selected
>>>>> TOOLCHAIN_DEFAULT_CPU, in which case you don't want to for -mcpu=powerpc.
>>>>
>>>> So do I understand it correctly that in this branch I should omit -mcpu=powerpc?
>>>
>>> Correct.
>>
>> Ok, I will fix it in v3.
>>
>>>>
>>>>> -mcpu=powerpc is set when user selects CONFIG_POWERPC_CPU, in which case
>>>>> CONFIG_TARGET_CPU_BOOL is set as well.
>>>>>
>>>>>> +endif
>>>>>> +else
>>>>>> BOOTCFLAGS += -m32 -mcpu=powerpc
>>>>>
>>>>> Same, for PPC64 I think you don't want that either, unless the
>>>>> CONFIG_GENERIC_CPU has been selected in which case
>>>>> CONFIG_TARGET_CPU_BOOL is not set.
>>>>>
>>>>> When CONFIG_TARGET_CPU_BOOL is set for PPC64 you also want
>>>>> -mcpu=$(CONFIG_TARGET_CPU)
>>>>
>>>> I understand that this branch is called for PPC64 build with 32-bit
>>>> uImage wrapper. So in this case should not be used TARGET_CPU as it
>>>> would be 64-bit and not 32-bit as requited for 32-bit uImage wrapper.
>>>
>>> Why ?
>>>
>>> -mcpu=e6500 -m32 works as far as I can see.
>>
>> Hm... I did not know that. Ok, if you want I will put it into
>> -m32 -mcpu=$(CONFIG_TARGET_CPU) branch too.
>
> And when CONFIG_TARGET_CPU_BOOL is not set but CONFIG_PPC64_BOOT_WRAPPER
> is, should be -mcpu=powerpc64le or -mcpu=powerpc64 still passed?
Not sure, so keep it like that, will change later if needed.
>
>>>>
>>>> Anyway, in this change I'm touching only PPC32 build, so all PPC64 stay
>>>> as it was before.
>>>>
>>>>>> endif
>>>>>> +endif
>>>>>>
>>>>>> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
>>>>>>
On Sunday 28 August 2022 07:23:39 Christophe Leroy wrote:
> Le 27/08/2022 à 21:00, Pali Rohár a écrit :
> > On Saturday 27 August 2022 20:36:08 Pali Rohár wrote:
> >> On Saturday 27 August 2022 18:32:42 Christophe Leroy wrote:
> >>> Le 27/08/2022 à 19:36, Pali Rohár a écrit :
> >>>> On Saturday 27 August 2022 17:31:10 Christophe Leroy wrote:
> >>>>> Le 27/08/2022 à 15:39, Pali Rohár a écrit :
> >>>>>> For 32-bit uImage try to use CONFIG_TARGET_CPU option for -mcpu. This fixes
> >>>>>> following compiler 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
> >>>>>>
> >>>>>> For 64-bit uImage and 64-bit kernels with 32-bit uImage wrapper there is no
> >>>>>> change.
> >>>>>>
> >>>>>> 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
> >>>>>> Signed-off-by: Pali Rohár <pali@kernel.org>
> >>>>>> ---
> >>>>>> arch/powerpc/boot/Makefile | 8 ++++++++
> >>>>>> 1 file changed, 8 insertions(+)
> >>>>>>
> >>>>>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> >>>>>> index a9cd2ea4a861..f56a5f90a5d8 100644
> >>>>>> --- a/arch/powerpc/boot/Makefile
> >>>>>> +++ b/arch/powerpc/boot/Makefile
> >>>>>> @@ -44,8 +44,16 @@ else
> >>>>>> BOOTCFLAGS += -m64 -mcpu=powerpc64
> >>>>>> endif
> >>>>>> else
> >>>>>> +ifdef CONFIG_PPC32
> >>>>>> +ifdef CONFIG_TARGET_CPU_BOOL
> >>>>>> +BOOTCFLAGS += -m32 -mcpu=$(CONFIG_TARGET_CPU)
> >>>>>> +else
> >>>>>> +BOOTCFLAGS += -m32 -mcpu=powerpc
> >>>>>
> >>>>> You can't do that. You get here only if user has selected
> >>>>> TOOLCHAIN_DEFAULT_CPU, in which case you don't want to for -mcpu=powerpc.
> >>>>
> >>>> So do I understand it correctly that in this branch I should omit -mcpu=powerpc?
> >>>
> >>> Correct.
> >>
> >> Ok, I will fix it in v3.
> >>
> >>>>
> >>>>> -mcpu=powerpc is set when user selects CONFIG_POWERPC_CPU, in which case
> >>>>> CONFIG_TARGET_CPU_BOOL is set as well.
> >>>>>
> >>>>>> +endif
> >>>>>> +else
> >>>>>> BOOTCFLAGS += -m32 -mcpu=powerpc
> >>>>>
> >>>>> Same, for PPC64 I think you don't want that either, unless the
> >>>>> CONFIG_GENERIC_CPU has been selected in which case
> >>>>> CONFIG_TARGET_CPU_BOOL is not set.
> >>>>>
> >>>>> When CONFIG_TARGET_CPU_BOOL is set for PPC64 you also want
> >>>>> -mcpu=$(CONFIG_TARGET_CPU)
> >>>>
> >>>> I understand that this branch is called for PPC64 build with 32-bit
> >>>> uImage wrapper. So in this case should not be used TARGET_CPU as it
> >>>> would be 64-bit and not 32-bit as requited for 32-bit uImage wrapper.
> >>>
> >>> Why ?
> >>>
> >>> -mcpu=e6500 -m32 works as far as I can see.
> >>
> >> Hm... I did not know that. Ok, if you want I will put it into
> >> -m32 -mcpu=$(CONFIG_TARGET_CPU) branch too.
> >
> > And when CONFIG_TARGET_CPU_BOOL is not set but CONFIG_PPC64_BOOT_WRAPPER
> > is, should be -mcpu=powerpc64le or -mcpu=powerpc64 still passed?
>
> Not sure, so keep it like that, will change later if needed.
Ok! Will prepare new version.
> >
> >>>>
> >>>> Anyway, in this change I'm touching only PPC32 build, so all PPC64 stay
> >>>> as it was before.
> >>>>
> >>>>>> endif
> >>>>>> +endif
> >>>>>>
> >>>>>> BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
> >>>>>>
© 2016 - 2026 Red Hat, Inc.