Skip to content
  • Rabin Vincent's avatar
    module: set ksymtab/kcrctab* section addresses to 0x0 · 5d8591bc
    Rabin Vincent authored
    
    
    These __ksymtab*/__kcrctab* sections currently have non-zero addresses.
    Non-zero section addresses in a relocatable ELF confuse GDB and it ends
    up not relocating all symbols when add-symbol-file is used on modules
    which have exports.  The kernel's module loader does not care about
    these addresses, so let's just set them to zero.
    
     Before:
    
      $ readelf -S lib/notifier-error-inject.ko   | grep 'Name\| __ksymtab_gpl'
        [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
        [ 8] __ksymtab_gpl     PROGBITS        0000000c 0001b4 000010 00   A  0   0  4
    
      (gdb) add-symbol-file lib/notifier-error-inject.ko 0x500000 -s .bss 0x700000
      add symbol table from file "lib/notifier-error-inject.ko" at
         .text_addr = 0x500000
         .bss_addr = 0x700000
      (gdb) p &notifier_err_inject_dir
      $3 = (struct dentry **) 0x0
    
     After:
    
      $ readelf -S lib/notifier-error-inject.ko   | grep 'Name\| __ksymtab_gpl'
        [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
        [ 8] __ksymtab_gpl     PROGBITS        00000000 0001b4 000010 00   A  0   0  4
    
      (gdb) add-symbol-file lib/notifier-error-inject.ko 0x500000 -s .bss 0x700000
      add symbol table from file "lib/notifier-error-inject.ko" at
         .text_addr = 0x500000
         .bss_addr = 0x700000
      (gdb) p &notifier_err_inject_dir
      $3 = (struct dentry **) 0x700000
    
    Signed-off-by: default avatarRabin Vincent <rabin.vincent@axis.com>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    5d8591bc