summaryrefslogtreecommitdiffstats
path: root/cfg/smp_64.cfg
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2020-02-01 17:52:38 -0500
committerBruce Ashfield <bruce.ashfield@gmail.com>2020-02-02 02:14:53 -0500
commit6ceaed1d1fcfd3a53a5c221af7cb13c710debc7f (patch)
tree8d6aee8e744d0e2e15643e638efffcac2f08bbe6 /cfg/smp_64.cfg
parentbb9a06cff974c3d22868e47f46ae425006f79499 (diff)
downloadyocto-kernel-cache-6ceaed1d1fcfd3a53a5c221af7cb13c710debc7f.tar.gz
yocto-kernel-cache-6ceaed1d1fcfd3a53a5c221af7cb13c710debc7f.tar.bz2
yocto-kernel-cache-6ceaed1d1fcfd3a53a5c221af7cb13c710debc7f.zip
mips: vdso: fix 'jalr $t9' crash in vdso code
1/1 [ Author: Victor Kamensky Email: kamensky@cisco.com Subject: mips: vdso: fix 'jalr $t9' crash in vdso code Date: Fri, 31 Jan 2020 09:39:44 -0800 Observed that when kernel is built with Yocto mips64-poky-linux-gcc, and mips64-poky-linux-gnun32-gcc toolchain, resuling vdso contains 'jalr $t9' instructions in its code and since in vdso case nobody sets GOT table code crashes when instruction reached. On other hand observed that when kernel is built mips-poky-linux-gcc toolchain, the same 'jalr $t9' instruction are replaced with PC relative function calls using 'bal' instructions. The difference boils down to -mrelax-pic-calls and -mexplicit-relocs gcc options that gets different default values depending on gcc target triplets and corresponding binutils. -mrelax-pic-calls got enabled by default only in mips-poky-linux-gcc case. MIPS binuitls ld relies on R_MIPS_JALR relocation to convert 'jalr $t9' into 'bal' and such relocation is generated only if -mrelax-pic-calls option is on. Solution call out -mrelax-pic-calls and -mexplicit-relocs options explicitely while compiling MIPS vdso code. That would get correct and consitent between different toolchains behavior. Reported-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Victor Kamensky <kamensky@cisco.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'cfg/smp_64.cfg')
0 files changed, 0 insertions, 0 deletions