Message ID | 20130119013816.GA10517@buserror.net |
---|---|
State | Accepted, archived |
Delegated to: | Andy Fleming |
Headers | show |
Scott, I reverted this patch, and it fixed some build errors: 20001122-1.c:1:0: error: E500 and FPRs not supported 20010114-2.c:1:0: error: E500 and FPRs not supported make[2]: *** [/local/afleming/u-boot/build/P2020DS/post/lib_powerpc/fpu/20001122-1.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [/local/afleming/u-boot/build/P2020DS/post/lib_powerpc/fpu/20010114-2.o] Error 1 make[1]: *** [postdeps] Error 2 make: *** [/local/afleming/u-boot/build/P2020DS/post/libpost.o] Error 2 make: INTERNAL: Exiting with 4 jobserver tokens available; should be 3! Similar errors were seen on all these boards: P2041RDB_SRIO_PCIE_BOOT P5020DS P3041DS P5020DS_NAND P2020DS P3041DS_NAND P5020DS_SDCARD P2020DS_36BIT P3041DS_SDCARD P5020DS_SECURE_BOOT P2020DS_DDR2 P3041DS_SECURE_BOOT P5020DS_SPIFLASH P2020DS_SDCARD P3041DS_SPIFLASH P5020DS_SRIO_PCIE_BOOT P2020DS_SPIFLASH P3041DS_SRIO_PCIE_BOOT P5040DS P2041RDB P4080DS xpedite520x P2041RDB_NAND P4080DS_SDCARD xpedite537x P2041RDB_SDCARD P4080DS_SECURE_BOOT xpedite550x P2041RDB_SECURE_BOOT P4080DS_SPIFLASH P2041RDB_SPIFLASH P4080DS_SRIO_PCIE_BOOT On Fri, Jan 18, 2013 at 7:38 PM, Scott Wood <scottwood@freescale.com> wrote: > This allows building with toolchains that by default target e6500. > > When targetting e6500, GCC generates a two-operand form of mfcr which gas > normally maps to mfocr. However, when we tell gas to target e500 rather > than e6500, it rejects two-operand mfcr. Tell GCC to target a > least-common-denominator e500 to match what we tell the assembler. > > -misel and -mno-strict-align are added to keep the code size from growing > (it actually ends up shrinking a bit compared to -mcpu=603e, which was > the default on my old toolchain). > > Signed-off-by: Scott Wood <scottwood@freescale.com> > --- > v2: add -misel and -mno-strict-align > > arch/powerpc/cpu/mpc85xx/config.mk | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/cpu/mpc85xx/config.mkb/arch/powerpc/cpu/mpc85xx/ > config.mk > index f36d823..450d511 100644 > --- a/arch/powerpc/cpu/mpc85xx/config.mk > +++ b/arch/powerpc/cpu/mpc85xx/config.mk > @@ -23,7 +23,8 @@ > > PLATFORM_RELFLAGS += -meabi > > -PLATFORM_CPPFLAGS += -ffixed-r2 -Wa,-me500 -msoft-float -mno-string > +PLATFORM_CPPFLAGS += -ffixed-r2 -mcpu=8540 -misel -mno-strict-align \ > + -Wa,-me500 -msoft-float -mno-string > > # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC; > # see "[PATCH,rs6000] make -mno-spe work as expected" on > -- > 1.7.9.5 > >
diff --git a/arch/powerpc/cpu/mpc85xx/config.mk b/arch/powerpc/cpu/mpc85xx/config.mk index f36d823..450d511 100644 --- a/arch/powerpc/cpu/mpc85xx/config.mk +++ b/arch/powerpc/cpu/mpc85xx/config.mk @@ -23,7 +23,8 @@ PLATFORM_RELFLAGS += -meabi -PLATFORM_CPPFLAGS += -ffixed-r2 -Wa,-me500 -msoft-float -mno-string +PLATFORM_CPPFLAGS += -ffixed-r2 -mcpu=8540 -misel -mno-strict-align \ + -Wa,-me500 -msoft-float -mno-string # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC; # see "[PATCH,rs6000] make -mno-spe work as expected" on
This allows building with toolchains that by default target e6500. When targetting e6500, GCC generates a two-operand form of mfcr which gas normally maps to mfocr. However, when we tell gas to target e500 rather than e6500, it rejects two-operand mfcr. Tell GCC to target a least-common-denominator e500 to match what we tell the assembler. -misel and -mno-strict-align are added to keep the code size from growing (it actually ends up shrinking a bit compared to -mcpu=603e, which was the default on my old toolchain). Signed-off-by: Scott Wood <scottwood@freescale.com> --- v2: add -misel and -mno-strict-align arch/powerpc/cpu/mpc85xx/config.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)