• Andy Lutomirski's avatar
    x86/vdso: Improve the fake section headers · bfad381c
    Andy Lutomirski authored
    Fully stripping the vDSO has other unfortunate side effects:
    
     - binutils is unable to find ELF notes without a SHT_NOTE section.
    
     - Even elfutils has trouble: it can find ELF notes without a section
       table at all, but if a section table is present, it won't look for
       PT_NOTE.
    
     - gdb wants section names to match between stripped DSOs and their
       symbols; otherwise it will corrupt symbol addresses.
    
    We're also breaking the rules: section 0 is supposed to be SHT_NULL.
    
    Fix these problems by building a better fake section table.  While
    we're at it, we might as well let buggy Go versions keep working well
    by giving the SHT_DYNSYM entry the correct size.
    
    This is a bit unfortunate: it adds quite a bit of size to the vdso
    image.
    
    If/when binutils improves and the improved versions become widespread,
    it would be worth considering dropping most of this.
    Signed-off-by: default avatarAndy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/0e546a5eeaafdf1840e6ee654a55c1e727c26663.1403129369.git.luto@amacapital.netSigned-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    bfad381c
vdso2c.c 3.93 KB