From 1a21d4e095ef720abf81299000afc038206d571b Mon Sep 17 00:00:00 2001 From: "H. J. Lu" Date: Sun, 19 Feb 2012 11:38:06 -0800 Subject: x32: Add x32 VDSO support Add support for the x32 VDSO. The x32 VDSO takes advantage of the similarity between the x86-64 and the x32 ABIs to contain the same content, only the container is different, as the x32 VDSO obviously is an x32 shared object. Signed-off-by: H. Peter Anvin --- arch/x86/vdso/vdsox32.lds.S | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 arch/x86/vdso/vdsox32.lds.S (limited to 'arch/x86/vdso/vdsox32.lds.S') diff --git a/arch/x86/vdso/vdsox32.lds.S b/arch/x86/vdso/vdsox32.lds.S new file mode 100644 index 000000000000..373ca9a02a53 --- /dev/null +++ b/arch/x86/vdso/vdsox32.lds.S @@ -0,0 +1,32 @@ +/* + * Linker script for x32 vDSO. + * We #include the file to define the layout details. + * Here we only choose the prelinked virtual address. + * + * This file defines the version script giving the user-exported symbols in + * the DSO. We can define local symbols here called VDSO* to make their + * values visible using the asm-x86/vdso.h macros from the kernel proper. + */ + +#define VDSO_PRELINK 0 +#include "vdso-layout.lds.S" + +/* + * This controls what userland symbols we export from the vDSO. + */ +VERSION { + LINUX_2.6 { + global: + clock_gettime; + __vdso_clock_gettime; + gettimeofday; + __vdso_gettimeofday; + getcpu; + __vdso_getcpu; + time; + __vdso_time; + local: *; + }; +} + +VDSOX32_PRELINK = VDSO_PRELINK; -- cgit v1.2.1 From 862ae3132dc393ab6ea750b9ee9e0e1c276b9abb Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Wed, 22 Feb 2012 20:37:10 -0800 Subject: x32: Drop non-__vdso weak symbols from the x32 VDSO Drop the legacy weak symbols that don't carry the __vdso prefix from the x32 VDSO. This is a new ABI and we don't need to support that legacy; the actual libc will export the proper symbols. Suggested-by: Andy Lutomirski Link: http://lkml.kernel.org/r/4F42E171.9080005@mit.edu Cc: H. J. Lu Signed-off-by: H. Peter Anvin --- arch/x86/vdso/vdsox32.lds.S | 4 ---- 1 file changed, 4 deletions(-) (limited to 'arch/x86/vdso/vdsox32.lds.S') diff --git a/arch/x86/vdso/vdsox32.lds.S b/arch/x86/vdso/vdsox32.lds.S index 373ca9a02a53..62272aa2ae0a 100644 --- a/arch/x86/vdso/vdsox32.lds.S +++ b/arch/x86/vdso/vdsox32.lds.S @@ -17,13 +17,9 @@ VERSION { LINUX_2.6 { global: - clock_gettime; __vdso_clock_gettime; - gettimeofday; __vdso_gettimeofday; - getcpu; __vdso_getcpu; - time; __vdso_time; local: *; }; -- cgit v1.2.1