blob: 4e5dd3b4de7f64428db97c5ef7ef9c29ceecfbf6 [file] [log] [blame]
Andi Kleen2aae9502007-07-21 17:10:01 +02001/*
Roland McGrathf6b46eb2008-01-30 13:30:41 +01002 * Linker script for 64-bit vDSO.
3 * We #include the file to define the layout details.
4 * Here we only choose the prelinked virtual address.
5 *
6 * This file defines the version script giving the user-exported symbols in
7 * the DSO. We can define local symbols here called VDSO* to make their
8 * values visible using the asm-x86/vdso.h macros from the kernel proper.
Andi Kleen2aae9502007-07-21 17:10:01 +02009 */
Andi Kleen2aae9502007-07-21 17:10:01 +020010
11#define VDSO_PRELINK 0xffffffffff700000
Roland McGrathf6b46eb2008-01-30 13:30:41 +010012#include "vdso-layout.lds.S"
Andi Kleen2aae9502007-07-21 17:10:01 +020013
Roland McGrath5b930492008-01-30 13:30:40 +010014/*
Roland McGrathf6b46eb2008-01-30 13:30:41 +010015 * This controls what userland symbols we export from the vDSO.
Roland McGrath5b930492008-01-30 13:30:40 +010016 */
Roland McGrathf6b46eb2008-01-30 13:30:41 +010017VERSION {
18 LINUX_2.6 {
19 global:
20 clock_gettime;
21 __vdso_clock_gettime;
22 gettimeofday;
23 __vdso_gettimeofday;
24 getcpu;
25 __vdso_getcpu;
26 local: *;
27 };
28}
29
Roland McGrath5b930492008-01-30 13:30:40 +010030VDSO64_PRELINK = VDSO_PRELINK;
31
Roland McGrathf6b46eb2008-01-30 13:30:41 +010032/*
33 * Define VDSO64_x for each VEXTERN(x), for use via VDSO64_SYMBOL.
34 */
Roland McGrath5b930492008-01-30 13:30:40 +010035#define VEXTERN(x) VDSO64_ ## x = vdso_ ## x;
36#include "vextern.h"
37#undef VEXTERN