forked from Minki/linux
f6b46ebf90
This revamps the vDSO linker script to lay things out with the best packing of the data and good, separate alignment of the code. The rigid layout using VDSO_TEXT_OFFSET no longer matters to the kernel. I've moved the layout parts of the linker script into a new include file, vdso-layout.lds.S; this is in preparation for sharing the script for the 32-bit vDSO builds too. Signed-off-by: Roland McGrath <roland@redhat.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
38 lines
862 B
ArmAsm
38 lines
862 B
ArmAsm
/*
|
|
* Linker script for 64-bit 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 0xffffffffff700000
|
|
#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;
|
|
local: *;
|
|
};
|
|
}
|
|
|
|
VDSO64_PRELINK = VDSO_PRELINK;
|
|
|
|
/*
|
|
* Define VDSO64_x for each VEXTERN(x), for use via VDSO64_SYMBOL.
|
|
*/
|
|
#define VEXTERN(x) VDSO64_ ## x = vdso_ ## x;
|
|
#include "vextern.h"
|
|
#undef VEXTERN
|