linux/arch/x86/vdso/vdso32
Andy Lutomirski bfad381c0d x86/vdso: Improve the fake section headers
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: Andy Lutomirski <luto@amacapital.net>
Link: http://lkml.kernel.org/r/0e546a5eeaafdf1840e6ee654a55c1e727c26663.1403129369.git.luto@amacapital.net
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2014-06-19 15:45:12 -07:00
..
.gitignore x86: gitignore arch/x86/vdso files 2008-01-30 13:32:32 +01:00
int80.S x86 vDSO: canonicalize sysenter .eh_frame 2008-01-30 13:30:44 +01:00
note.S x86 vDSO: i386 vdso32 2008-01-30 13:30:42 +01:00
sigreturn.S x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
syscall.S x86 vDSO: canonicalize sysenter .eh_frame 2008-01-30 13:30:44 +01:00
sysenter.S x86-32, vdso: On system call restart after SYSENTER, use int $0x80 2011-08-23 16:20:10 -07:00
vclock_gettime.c x86, vdso: Add 32 bit VDSO time support for 64 bit kernel 2014-03-18 12:52:41 -07:00
vdso-fakesections.c x86/vdso: Improve the fake section headers 2014-06-19 15:45:12 -07:00
vdso32.lds.S x86, vdso: Remove vestiges of VDSO_PRELINK and some outdated comments 2014-05-05 13:19:07 -07:00