https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86712
Bug ID: 86712
Summary: libitm produces libitm.so with TEXTREL on SuperH (sh4)
in _ITM_beginTransaction
Product: gcc
Version: 8.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libitm
Assignee: unassigned at gcc dot gnu.org
Reporter: slyfox at inbox dot ru
Target Milestone: ---
Noticed as part of gentoo's QA checker in TEXTRELs in shared libraries:
$ scanelf -qTR /usr/lib/gcc/sh4-unknown-linux-gnu/
libitm.so.1.0.0: (memory/data?) [0x8FA4] in (optimized out: previous
_ITM_beginTransaction) [0x8F74]
/usr/lib/gcc/sh4-unknown-linux-gnu/8.2.0/libitm.so.1.0.0
The TEXTREL comes from R_SH_RELATIVE relocation:
$ objdump -d -R ./sh4-unknown-linux-gnu/libitm/.libs/libitm.so.1.0.0 | fgrep
-B30 -A4 R_SH_
8d0e: ff ff .word 0xffff
8d10: 94 93 mov.w 8e3c
<_ZN12_GLOBAL__N_118serialirr_dispatch26closed_nesting_alternativeEv+0x4>,r3
! dc02
8d12: fe ff fmac fr0,fr15,fr15
00008d14 <_ITM_beginTransaction>:
8d14: f3 61 mov r15,r1
8d16: fb ff fmov fr15,@-r15
8d18: eb ff fmov fr14,@-r15
8d1a: db ff fmov fr13,@-r15
8d1c: cb ff fmov fr12,@-r15
8d1e: 62 4f sts.l fpscr,@-r15
8d20: 13 4f stc.l gbr,@-r15
8d22: 22 4f sts.l pr,@-r15
8d24: 16 2f mov.l r1,@-r15
8d26: e6 2f mov.l r14,@-r15
8d28: d6 2f mov.l r13,@-r15
8d2a: c6 2f mov.l r12,@-r15
8d2c: b6 2f mov.l r11,@-r15
8d2e: a6 2f mov.l r10,@-r15
8d30: 96 2f mov.l r9,@-r15
8d32: 86 2f mov.l r8,@-r15
8d34: 03 d1 mov.l 8d44 <_ITM_beginTransaction+0x30>,r1
! 6d2c <GTM_begin_transaction>
8d36: 0b 41 jsr @r1
8d38: f3 65 mov r15,r5
8d3a: f8 51 mov.l @(32,r15),r1
8d3c: 2a 41 lds r1,pr
8d3e: 3c 7f add #60,r15
8d40: 0b 00 rts
8d42: 09 00 nop
8d44: 2c 6d extu.b r2,r13
8d44: R_SH_RELATIVE *ABS*+0x6d2c
...
00008d48 <GTM_longjmp>:
8d48: 56 68 mov.l @r5+,r8