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

Reply via email to