Skip to contentSkip to conversation

objtool warning for wanxl_pci_init_one with gcc-7

DISCUSSION Arnd Bergmann 2 participants 2 messages Jan 4, 2017 – Jan 6, 2017

lore
Share & tools
lore
#0 lore raw

Hi Josh,

I'm getting a new warning with the latest gcc-7 snapshot, I think this is a false positive:

drivers/net/wan/wanxl.o: warning: objtool: wanxl_pci_init_one()+0x9d2: sibling call from callable instruction with changed frame pointer

# /git/arm-soc/drivers/net/wan/wanxl.c:133:     switch((value >> STATUS_CABLE_PM_SHIFT) & 0x7) {
        movl    %eax, %ecx      # value, _314
        movl    %eax, %r10d     # value, _224
        movq    (%r15), %rdi    # MEM[base: _546, offset: 0B], pretmp_490
        shrl    $5, %ecx        #, _314
        andl    $8, %r10d       #, _224
        movl    %ecx, %edx      # _314, tmp377
        andl    $7, %edx        #, tmp377
        jmp     *(%r14,%rdx,8)  #
        .section        .rodata
        .align 8
        .align 4
.L280:
        .quad   .L278
        .quad   .L278
        .quad   .L279
        .quad   .L281
        .quad   .L282
        .quad   .L305
        .quad   .L278
        .quad   .L306

.text

Arnd

#1 lore raw
Quoted 28 lines · Arnd Bergmann

Hi Josh,

I'm getting a new warning with the latest gcc-7 snapshot, I think this is a false positive:

drivers/net/wan/wanxl.o: warning: objtool: wanxl_pci_init_one()+0x9d2: sibling call from callable instruction with changed frame pointer

# /git/arm-soc/drivers/net/wan/wanxl.c:133:     switch((value >> STATUS_CABLE_PM_SHIFT) & 0x7) {
        movl    %eax, %ecx      # value, _314
        movl    %eax, %r10d     # value, _224
        movq    (%r15), %rdi    # MEM[base: _546, offset: 0B], pretmp_490
        shrl    $5, %ecx        #, _314
        andl    $8, %r10d       #, _224
        movl    %ecx, %edx      # _314, tmp377
        andl    $7, %edx        #, tmp377
        jmp     *(%r14,%rdx,8)  #
        .section        .rodata
        .align 8
        .align 4
.L280:
        .quad   .L278
        .quad   .L278
        .quad   .L279
        .quad   .L281
        .quad   .L282
        .quad   .L305
        .quad   .L278
        .quad   .L306
Quoted 1 line

.text

Thanks Arnd, will take a look at it. This reminds me that I need to ping the gcc guys about better annotations of switch statement jump tables.

Signature · 1 line
Josh