summaryrefslogtreecommitdiffstats
path: root/arch/x86/vdso/vdso.lds.S
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@amacapital.net>2014-06-18 15:59:48 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2014-06-19 15:45:12 -0700
commitbfad381c0d1e19cae8461e105d8d4387dd2a14fe (patch)
treec4f4fba23ad53bfe9c6f99c4c9156716fa3fa5c5 /arch/x86/vdso/vdso.lds.S
parentc1979c370273fd9f7326ffa27a63b9ddb0f495f4 (diff)
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>
Diffstat (limited to 'arch/x86/vdso/vdso.lds.S')
-rw-r--r--arch/x86/vdso/vdso.lds.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/vdso/vdso.lds.S b/arch/x86/vdso/vdso.lds.S
index 75e3404c83b..6807932643c 100644
--- a/arch/x86/vdso/vdso.lds.S
+++ b/arch/x86/vdso/vdso.lds.S
@@ -6,6 +6,8 @@
* the DSO.
*/
+#define BUILD_VDSO64
+
#include "vdso-layout.lds.S"
/*