mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
ppc/85xx: Fix crashes due to generation of SPE instruction
U-Boot crashed on the last instruction: int parse_stream_outer(struct in_str *inp, int flag) { effa4784: 94 21 ff 38 stwu r1,-200(r1) effa4788: 7c 08 02 a6 mflr r0 effa478c: 42 9f 00 05 bcl- 20,4*cr7+so,effa4790 <parse_stream_outer+0xc> effa4790: 7d 80 00 26 mfcr r12 effa4794: 13 c1 b3 21 evstdd r30,176(r1) ...which is a SPE instruction, although -mno-spe was used. tmp/cross/ppce500v2/bin/powerpc-angstrom-linux-gnuspe-gcc --version powerpc-angstrom-linux-gnuspe-gcc (GCC) 4.3.3 Seems to be a known issue (since 2008-04?!) Googled some, turns out this patch/workaround works for me on MPC8536DS. See http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html for more info Signed-off-by: Leon Woestenberg <leon@sidebranch.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
654ea1f318
commit
da0e5f7ee8
1 changed files with 5 additions and 0 deletions
|
@ -24,6 +24,11 @@
|
|||
PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
|
||||
|
||||
PLATFORM_CPPFLAGS += -ffixed-r2 -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
|
||||
# http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html
|
||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mspe=yes)
|
||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-spe)
|
||||
|
||||
# Use default linker script. Board port can override in board/*/config.mk
|
||||
|
|
Loading…
Add table
Reference in a new issue