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