aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-08-09 20:51:04 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-08-09 20:51:04 +0000
commitbad105e7c85727fcaaa4c8f8b656cc8c34b79ec2 (patch)
treea869fb3fafcb9588ccec1c85d2c44c2f3e091454 /target
parentdd48a43550b383efde60254a437f694baf2d99a9 (diff)
downloadupstream-bad105e7c85727fcaaa4c8f8b656cc8c34b79ec2.tar.gz
upstream-bad105e7c85727fcaaa4c8f8b656cc8c34b79ec2.tar.bz2
upstream-bad105e7c85727fcaaa4c8f8b656cc8c34b79ec2.zip
arm: when linking the kernel, move the section discards after the other sections to fix discarding unused symbol exports
SVN-Revision: 17204
Diffstat (limited to 'target')
-rw-r--r--target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch b/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch
index 014f47dab6..e931ec9d9b 100644
--- a/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch
+++ b/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch
@@ -152,3 +152,40 @@
. = ALIGN(PAGE_SIZE);
_end = . ;
PROVIDE32 (end = .);
+--- a/arch/arm/kernel/vmlinux.lds.S
++++ b/arch/arm/kernel/vmlinux.lds.S
+@@ -76,16 +76,6 @@ SECTIONS
+ #endif
+ }
+
+- /DISCARD/ : { /* Exit code and data */
+- EXIT_TEXT
+- EXIT_DATA
+- *(.exitcall.exit)
+-#ifndef CONFIG_MMU
+- *(.fixup)
+- *(__ex_table)
+-#endif
+- }
+-
+ .text : { /* Real text segment */
+ _text = .; /* Text and read-only data */
+ __exception_text_start = .;
+@@ -173,6 +163,17 @@ SECTIONS
+ *(COMMON)
+ _end = .;
+ }
++
++ /DISCARD/ : { /* Exit code and data */
++ EXIT_TEXT
++ EXIT_DATA
++ *(.exitcall.exit)
++#ifndef CONFIG_MMU
++ *(.fixup)
++ *(__ex_table)
++#endif
++ }
++
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }