TARGET_ARCH=powerpc64 jump from head -r326192 to -r327075: g_event crashes with "instruction storage interrupt" [R_PPC64_JMP_SLOT problem]

Mark Millard markmi at dsl-only.net
Sun Dec 24 19:41:29 UTC 2017


[History removed.]

I have submitted bugzilla 224561 for the issue.

The difference in the likes of filemon.ko
produced by system clang 5.0.1 vs.
devel/powerpc64-xtoolchain-gcc is. . .

clang 5.0.1:

Relocation section with addend (.rela.plt):
r_offset     r_info       r_type              st_value         st_name + r_addend
000000014480 000300000015 R_PPC64_JMP_SLOT    0000000000000000 copyinstr + 0
000000014488 000400000015 R_PPC64_JMP_SLOT    0000000000000000 devfs_set_cdevpriv + 0
. . .

vs.

devel/powerpc64-xtoolchain-gcc:

Relocation section with addend (.rela.dyn):
r_offset     r_info       r_type              st_value         st_name + r_addend
0000000145c0 000000000016 R_PPC64_RELATIVE    0000000000000000  + 40d0
0000000145e0 000000000016 R_PPC64_RELATIVE    0000000000000000  + 145b0
. . .
000000014408 000600000026 R_PPC64_ADDR64      0000000000000000 sysent + 0
000000014410 001100000026 R_PPC64_ADDR64      0000000000000000 freebsd32_sysent + 0

Apparently R_PPC64_JMP_SLOT is mishandled
and does not explicitly lead to rejection
of the attempted dynamic load.

It might be an issue if .rela.plt and
R_PPC64_JMP_SLOT should even be generated
instead of .rela.dyn and R_PPC64_RELATIVE
and R_PPC64_ADDR64.

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-ppc mailing list