summaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-08-09 20:51:04 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-08-09 20:51:04 +0000
commit9b8c34de26ad5c4220e903d6ffbc66c1d3d27a80 (patch)
tree31422769574527e27647cf57c067867609fd39e5 /target/linux
parent1e2c27694dab78068aaad3a980d835ca3884c8df (diff)
arm: when linking the kernel, move the section discards after the other sections to fix discarding unused symbol exports
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17204 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-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 014f47dab..e931ec9d9 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) }