diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:13:13 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:13:13 -0400 |
commit | 565b56cc9929fd4e682850df960f0766c8363383 (patch) | |
tree | e720eaa6ad8a16c7bf8402dc76b3d65fb3f61f5a /arch/i386/kernel/vsyscall-note.S | |
parent | fcaf15d788dc0c8354dbcf449e260cb303120b75 (diff) |
i386: prepare shared kernel/vsyscall-note.S
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/i386/kernel/vsyscall-note.S')
-rw-r--r-- | arch/i386/kernel/vsyscall-note.S | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/arch/i386/kernel/vsyscall-note.S b/arch/i386/kernel/vsyscall-note.S deleted file mode 100644 index 07c0daf78237..000000000000 --- a/arch/i386/kernel/vsyscall-note.S +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | /* | ||
2 | * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text. | ||
3 | * Here we can supply some information useful to userland. | ||
4 | */ | ||
5 | |||
6 | #include <linux/version.h> | ||
7 | #include <linux/elfnote.h> | ||
8 | |||
9 | /* Ideally this would use UTS_NAME, but using a quoted string here | ||
10 | doesn't work. Remember to change this when changing the | ||
11 | kernel's name. */ | ||
12 | ELFNOTE_START(Linux, 0, "a") | ||
13 | .long LINUX_VERSION_CODE | ||
14 | ELFNOTE_END | ||
15 | |||
16 | #ifdef CONFIG_XEN | ||
17 | /* | ||
18 | * Add a special note telling glibc's dynamic linker a fake hardware | ||
19 | * flavor that it will use to choose the search path for libraries in the | ||
20 | * same way it uses real hardware capabilities like "mmx". | ||
21 | * We supply "nosegneg" as the fake capability, to indicate that we | ||
22 | * do not like negative offsets in instructions using segment overrides, | ||
23 | * since we implement those inefficiently. This makes it possible to | ||
24 | * install libraries optimized to avoid those access patterns in someplace | ||
25 | * like /lib/i686/tls/nosegneg. Note that an /etc/ld.so.conf.d/file | ||
26 | * corresponding to the bits here is needed to make ldconfig work right. | ||
27 | * It should contain: | ||
28 | * hwcap 1 nosegneg | ||
29 | * to match the mapping of bit to name that we give here. | ||
30 | * | ||
31 | * At runtime, the fake hardware feature will be considered to be present | ||
32 | * if its bit is set in the mask word. So, we start with the mask 0, and | ||
33 | * at boot time we set VDSO_NOTE_NONEGSEG_BIT if running under Xen. | ||
34 | */ | ||
35 | |||
36 | #include "../xen/vdso.h" /* Defines VDSO_NOTE_NONEGSEG_BIT. */ | ||
37 | |||
38 | .globl VDSO_NOTE_MASK | ||
39 | ELFNOTE_START(GNU, 2, "a") | ||
40 | .long 1 /* ncaps */ | ||
41 | VDSO_NOTE_MASK: | ||
42 | .long 0 /* mask */ | ||
43 | .byte VDSO_NOTE_NONEGSEG_BIT; .asciz "nosegneg" /* bit, name */ | ||
44 | ELFNOTE_END | ||
45 | #endif | ||