Duplicate .plt sections warning with CONFIG_ARM_MODULE_PLTS

Ard Biesheuvel ard.biesheuvel at linaro.org
Wed Apr 26 03:33:13 EDT 2017


On 26 April 2017 at 00:35, Florian Fainelli <f.fainelli at gmail.com> wrote:
> Hi Ard,
>
> While using CONFIG_ARM_MODULES_PLTS=y along with a large kernel module,
> I was able to have the kernel/module.c::add_sect_attrs() to complain
> about duplicate .plt sections found, each section gets its own sysfs
> attribute created under /sys/module/<modname>/sections/<sectname>
>
> And indeed the module has the following section headers and contents
> (see below). Is this something that looks legit or should we patch
> kernel/module.c to detect such duplicates and generate unique sysfs
> attribute section names instead? There does not appear to be any
> functional issue with that.
>

Does it happen with a clean build? The .plt/.init.plt sections are
declared in the linker scripts, and so no module object should have
any such sections until the relocatable link occurs that combines them
all into a .ko, and it is at this point that these sections are
declared.


> Thanks!
>
> Contents of section .plt:
>  0000 00                                   .
> Contents of section .init.plt:
>  0001 00                                   .
> Contents of section .plt:
>  0000 00
>
> Section Headers:
>   [Nr] Name              Type            Addr     Off    Size   ES Flg
> Lk Inf Al
>   [ 0]                   NULL            00000000 000000 000000 00
> 0   0  0
>   [ 1] .text             PROGBITS        00000000 000034 48d360 00  AX
> 0   0  4
>   [ 2] .rel.text         REL             00000000 68d0c4 14a980 08
> 48   1  4
>   [ 3] .text.unlikely    PROGBITS        00000000 48d394 001a30 00  AX
> 0   0  4
>   [ 4] .rel.text.unlikel REL             00000000 7d7a44 000700 08
> 48   3  4
>   [ 5] .rodata           PROGBITS        00000000 48edc8 0b1fa4 00   A
> 0   0  8
>   [ 6] .rel.rodata       REL             00000000 7d8144 025938 08
> 48   5  4
>   [ 7] .rodata.str1.1    PROGBITS        00000000 540d6c 10b88a 01 AMS
> 0   0  1
>   [ 8] .ARM.extab.text.u PROGBITS        00000000 64c5f8 000060 00   A
> 0   0  4
>   [ 9] .ARM.exidx.text.u ARM_EXIDX       00000000 64c658 000090 00  AL
> 3   0  4
>   [10] .rel.ARM.exidx.te REL             00000000 7fda7c 000148 08
> 48   9  4
>   [11] __ksymtab_strings PROGBITS        00000000 64c6e8 00da64 00   A
> 0   0  1
>   [12] .modinfo          PROGBITS        00000000 65a14c 0000a0 00   A
> 0   0  4
>   [13] __param           PROGBITS        00000000 65a1ec 000020 00   A
> 0   0  4
>   [14] .rel__param       REL             00000000 7fdbc4 000030 08
> 48  13  4
>   [15] .alt.smp.init     PROGBITS        00000000 65a20c 000028 00   A
> 0   0  4
>   [16] .rel.alt.smp.init REL             00000000 7fdbf4 000028 08
> 48  15  4
>   [17] __ex_table        PROGBITS        00000000 65a238 000008 00   A
> 0   0  8
>   [18] .rel__ex_table    REL             00000000 7fdc1c 000010 08
> 48  17  4
>   [19] .ARM.extab        PROGBITS        00000000 65a240 002730 00   A
> 0   0  4
>   [20] .ARM.exidx        ARM_EXIDX       00000000 65c970 01b658 00  AL
> 1   0  4
>   [21] .rel.ARM.exidx    REL             00000000 7fdc2c 01f798 08
> 48  20  4
>   [22] __versions        PROGBITS        00000000 677fc8 001840 00   A
> 0   0  4
>   [23] .note.gnu.build-i NOTE            00000000 679808 000048 00   A
> 0   0  4
>   [24] .plt              PROGBITS        00000000 679850 000001 00  WA
> 0   0  1
>   [25] .init.plt         PROGBITS        00000001 679851 000001 00  WA
> 0   0  1
>   [26] .plt              PROGBITS        00000000 679852 000001 00  WA
> 0   0  1
>   [27] .data             PROGBITS        00000000 679854 0039e8 00  WA
> 0   0  4
>   [28] .rel.data         REL             00000000 81d3c4 001ca0 08
> 48  27  4
>   [29] .init.plt         PROGBITS        00000000 67d23c 000001 00  WA
> 0   0  1
>   [30] .gnu.linkonce.thi PROGBITS        00000000 67d240 000168 00  WA
> 0   0  4
>   [31] .rel.gnu.linkonce REL             00000000 81f064 000010 08
> 48  30  4
>   [32] .bss              NOBITS          00000000 67d3a8 04dbac 00  WA
> 0   0  8
>   [33] .comment          PROGBITS        00000000 67d3a8 009106 01  MS
> 0   0  1
>   [34] .note.GNU-stack   PROGBITS        00000000 6864ae 000000 00   X
> 0   0  1
>   [35] .ARM.attributes   ARM_ATTRIBUTES  00000000 6864ae 000031 00
> 0   0  1
>   [36] __ksymtab         PROGBITS        00000000 6864e0 0036b8 00   A
> 0   0  4
>   [37] .rel__ksymtab     REL             00000000 81f074 006d70 08
> 48  36  4
>   [38] __kcrctab         PROGBITS        00000000 689b98 001b5c 00   A
> 0   0  4
>   [39] .rel__kcrctab     REL             00000000 825de4 0036b8 08
> 48  38  4
>   [40] .debug_info       PROGBITS        00000000 68b6f4 000490 00
> 0   0  1
>   [41] .rel.debug_info   REL             00000000 82949c 000408 08
> 48  40  4
>   [42] .debug_abbrev     PROGBITS        00000000 68bb84 0000f8 00
> 0   0  1
>   [43] .debug_aranges    PROGBITS        00000000 68bc7c 000018 00
> 0   0  1
>   [44] .rel.debug_arange REL             00000000 8298a4 000008 08
> 48  43  4
>   [45] .debug_line       PROGBITS        00000000 68bc94 000190 00
> 0   0  1
>   [46] .debug_str        PROGBITS        00000000 68be24 000900 01  MS
> 0   0  1
>   [47] .shstrtab         STRTAB          00000000 68c724 0001cd 00
> 0   0  1
>   [48] .symtab           SYMTAB          00000000 8298ac 0ffc50 10
> 49 49732  4
>   [49] .strtab           STRTAB          00000000 9294fc 0f5791 00
> 0   0  1
>
> --
> Florian



More information about the linux-arm-kernel mailing list