diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-12-06 20:14:04 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:04 -0500 |
commit | fd593d12770d4a0d1ff095d44b96436c18479ee8 (patch) | |
tree | a930c07b09cef72a01f18acdfa1cb62819135f6c /arch | |
parent | 2a43f3ede48ea3d5790b863b719a1e21c90a3697 (diff) |
[PATCH] relocatable kernel: Kallsyms generate relocatable symbols
Print the addresses of non-absolute symbols relative to _text
so that ld will generate relocations. Allowing a relocatable
kernel to relocate them. We can't actually use the symbol names
because kallsyms includes static symbols that are not exported
from their object files.
Add the _text symbol definitions to the architectures which don't
define it otherwise linker will fail.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/h8300/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/m68knommu/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/ppc/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/sparc/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/sparc64/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/v850/kernel/vmlinux.lds.S | 1 |
7 files changed, 7 insertions, 0 deletions
diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S index 756325dd480e..f05288be8878 100644 --- a/arch/h8300/kernel/vmlinux.lds.S +++ b/arch/h8300/kernel/vmlinux.lds.S | |||
@@ -70,6 +70,7 @@ SECTIONS | |||
70 | #endif | 70 | #endif |
71 | .text : | 71 | .text : |
72 | { | 72 | { |
73 | _text = .; | ||
73 | #if defined(CONFIG_ROMKERNEL) | 74 | #if defined(CONFIG_ROMKERNEL) |
74 | *(.int_redirect) | 75 | *(.int_redirect) |
75 | #endif | 76 | #endif |
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index 58afa8be604e..2b2a10da64a4 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S | |||
@@ -60,6 +60,7 @@ SECTIONS { | |||
60 | #endif | 60 | #endif |
61 | 61 | ||
62 | .text : { | 62 | .text : { |
63 | _text = .; | ||
63 | _stext = . ; | 64 | _stext = . ; |
64 | *(.text) | 65 | *(.text) |
65 | SCHED_TEXT | 66 | SCHED_TEXT |
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index e8342d867536..04b98671a060 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S | |||
@@ -33,6 +33,7 @@ SECTIONS | |||
33 | 33 | ||
34 | /* Text and gots */ | 34 | /* Text and gots */ |
35 | .text : { | 35 | .text : { |
36 | _text = .; | ||
36 | *(.text .text.*) | 37 | *(.text .text.*) |
37 | SCHED_TEXT | 38 | SCHED_TEXT |
38 | LOCK_TEXT | 39 | LOCK_TEXT |
diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 16e8661e1fec..61921268a0d0 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S | |||
@@ -31,6 +31,7 @@ SECTIONS | |||
31 | .plt : { *(.plt) } | 31 | .plt : { *(.plt) } |
32 | .text : | 32 | .text : |
33 | { | 33 | { |
34 | _text = .; | ||
34 | *(.text) | 35 | *(.text) |
35 | SCHED_TEXT | 36 | SCHED_TEXT |
36 | LOCK_TEXT | 37 | LOCK_TEXT |
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index 5cc5ff7f8824..b73e6b9067ed 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S | |||
@@ -11,6 +11,7 @@ SECTIONS | |||
11 | . = 0x10000 + SIZEOF_HEADERS; | 11 | . = 0x10000 + SIZEOF_HEADERS; |
12 | .text 0xf0004000 : | 12 | .text 0xf0004000 : |
13 | { | 13 | { |
14 | _text = .; | ||
14 | *(.text) | 15 | *(.text) |
15 | SCHED_TEXT | 16 | SCHED_TEXT |
16 | LOCK_TEXT | 17 | LOCK_TEXT |
diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S index bd9de8c2a2aa..4a6063f33e7a 100644 --- a/arch/sparc64/kernel/vmlinux.lds.S +++ b/arch/sparc64/kernel/vmlinux.lds.S | |||
@@ -13,6 +13,7 @@ SECTIONS | |||
13 | . = 0x4000; | 13 | . = 0x4000; |
14 | .text 0x0000000000404000 : | 14 | .text 0x0000000000404000 : |
15 | { | 15 | { |
16 | _text = .; | ||
16 | *(.text) | 17 | *(.text) |
17 | SCHED_TEXT | 18 | SCHED_TEXT |
18 | LOCK_TEXT | 19 | LOCK_TEXT |
diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S index 88d087f527c9..3a5fd07fe064 100644 --- a/arch/v850/kernel/vmlinux.lds.S +++ b/arch/v850/kernel/vmlinux.lds.S | |||
@@ -90,6 +90,7 @@ | |||
90 | 90 | ||
91 | /* Kernel text segment, and some constant data areas. */ | 91 | /* Kernel text segment, and some constant data areas. */ |
92 | #define TEXT_CONTENTS \ | 92 | #define TEXT_CONTENTS \ |
93 | _text = .; \ | ||
93 | __stext = . ; \ | 94 | __stext = . ; \ |
94 | *(.text) \ | 95 | *(.text) \ |
95 | SCHED_TEXT \ | 96 | SCHED_TEXT \ |