@@ -43,6 +43,17 @@ SECTIONS
_sinittext = .;
HEAD_TEXT
INIT_TEXT
+#ifdef CONFIG_SMP_ON_UP
+ *(.exit.text)
+ CPU_KEEP(exit.text)
+ DEV_KEEP(exit.text)
+ MEM_KEEP(exit.text)
+#endif
+#ifdef CONFIG_SMP_ON_UP
+ CPU_KEEP(exit.rodata)
+ DEV_KEEP(exit.rodata)
+ MEM_KEEP(exit.rodata)
+#endif
_einittext = .;
ARM_CPU_DISCARD(PROC_INFO)
__arch_info_begin = .;
@@ -72,6 +83,11 @@ SECTIONS
__init_begin = _stext;
INIT_DATA
#endif
+#ifdef CONFIG_SMP_ON_UP
+ DEV_KEEP(exit.data)
+ CPU_KEEP(exit.data)
+ MEM_KEEP(exit.data)
+#endif
}
PERCPU(PAGE_SIZE)
@@ -85,6 +101,7 @@ SECTIONS
* unwind exit sections must be discarded before the rest of the
* unwind sections get included.
*/
+#ifndef CONFIG_SMP_ON_UP
/DISCARD/ : {
*(.ARM.exidx.exit.text)
*(.ARM.extab.exit.text)
@@ -99,6 +116,7 @@ SECTIONS
*(__ex_table)
#endif
}
+#endif
.text : { /* Real text segment */
_text = .; /* Text and read-only data */