Duplicate .plt sections warning with CONFIG_ARM_MODULE_PLTS

Florian Fainelli f.fainelli at gmail.com
Tue Apr 25 19:35:37 EDT 2017


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.

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