[Buildroot] [PATCH] gcc: fix uclibc build with gcc-8 for xtensa

Peter Korsgaard peter at korsgaard.com
Wed Jul 18 21:21:44 UTC 2018


>>>>> "Max" == Max Filippov <jcmvbkbc at gmail.com> writes:

 > gcc-8.1 for xtensa miscompiles uClibc dynamic linker due to gcc PR
 > target/65416. The build completes successfully, but the binary is
 > non-functional because the following fragment in the _dl_get_ready_to_run
 > in ld-uClibc.so overwrites register spill area on stack causing register
 > corruption in the previous call frame and a subsequent crash:

 >     419f:       f0c1b2          addi    a11, a1, -16
 >     41a2:       1ba9            s32i.n  a10, a11, 4
 >     41a4:       0bc9            s32i.n  a12, a11, 0
 >     41a6:       5127f2          l32i    a15, a7, 0x144
 >     41a9:       1765b2          s32i    a11, a5, 92
 >     41ac:       4e2782          l32i    a8, a7, 0x138
 >     41af:       146af2          s32i    a15, a10, 80
 >     41b2:       001b10          movsp   a1, a11

 > The crash terminates the init process and causes kernel panic.
 > The fix prevents reordering of movsp opcode and any access to the stack
 > frame memory and is applicable to all existing gcc versions..

 > Signed-off-by: Max Filippov <jcmvbkbc at gmail.com>
 > ---
 >  .../gcc/6.4.0/871-xtensa-fix-PR-target-65416.patch | 101 +++++++++++++++++++++
 >  .../7.3.0/0002-xtensa-fix-PR-target-65416.patch    | 101 +++++++++++++++++++++
 >  .../8.1.0/0004-xtensa-fix-PR-target-65416.patch    | 101 +++++++++++++++++++++

Committed to 2018.02.x and 2018.05.x after dropping the gcc-8.x patch,
thanks.

-- 
Bye, Peter Korsgaard



More information about the buildroot mailing list