diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-08-09 20:51:04 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-08-09 20:51:04 +0000 |
commit | 9b8c34de26ad5c4220e903d6ffbc66c1d3d27a80 (patch) | |
tree | 31422769574527e27647cf57c067867609fd39e5 /target | |
parent | 1e2c27694dab78068aaad3a980d835ca3884c8df (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')
-rw-r--r-- | target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch | 37 |
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) } |