--- a/arch/ubicom32/kernel/vmlinux.lds.S
+++ b/arch/ubicom32/kernel/vmlinux.lds.S
@@ -25,7 +25,6 @@
  *   arch/blackfin
  *   arch/parisc
  */
-#include <asm-generic/vmlinux.lds.h>
 #include <asm/ocm_size.h>
 #include <asm/memory_map.h>
 #include <asm/thread_info.h>
@@ -201,94 +200,28 @@ SECTIONS {
 		*(__ex_table)
 		__stop___ex_table = .;
 
-		*(.rodata) *(.rodata.*)
-		*(__vermagic)		/* Kernel version magic */
-		*(__markers_strings)
-		*(.rodata1)
-		*(.rodata.str1.1)
-		*(__tracepoints_strings)
-
-		 /* PCI quirks */
-		__start_pci_fixups_early = . ;
-			*(.pci_fixup_early)
-		__end_pci_fixups_early = . ;
-		__start_pci_fixups_header = . ;
-			*(.pci_fixup_header)
-		__end_pci_fixups_header = . ;
-		__start_pci_fixups_final = . ;
-			*(.pci_fixup_final)
-		__end_pci_fixups_final = . ;
-		__start_pci_fixups_enable = . ;
-			*(.pci_fixup_enable)
-		__end_pci_fixups_enable = . ;
-		__start_pci_fixups_resume = . ;
-		       *(.pci_fixup_resume)
-		__end_pci_fixups_resume = . ;
-		__start_pci_fixups_resume_early = . ;
-		       *(.pci_fixup_resume_early)
-		__end_pci_fixups_resume_early = . ;
-		__start_pci_fixups_suspend  = . ;
-		       *(.pci_fixup_suspend)
-		__end_pci_fixups_suspend = . ;
-
-		__start_builtin_fw = . ;
-			*(.builtin_fw)
-		__end_builtin_fw = . ;
-
-
-		/* Kernel symbol table: Normal symbols */
-		. = ALIGN(4);
-		__start___ksymtab = .;
-		*(__ksymtab)
-		__stop___ksymtab = .;
-
-		/* Kernel symbol table: GPL-only symbols */
-		__start___ksymtab_gpl = .;
-		*(__ksymtab_gpl)
-		__stop___ksymtab_gpl = .;
-
-		/* Kernel symbol table: Normal unused symbols */
-		__start___ksymtab_unused = .;
-		*(__ksymtab_unused)
-		__stop___ksymtab_unused = .;
-
-		/* Kernel symbol table: GPL-only unused symbols */
-		__start___ksymtab_unused_gpl = .;
-		*(__ksymtab_unused_gpl)
-		__stop___ksymtab_unused_gpl = .;
-
-		/* Kernel symbol table: GPL-future symbols */
-		__start___ksymtab_gpl_future = .;
-		*(__ksymtab_gpl_future)
-		__stop___ksymtab_gpl_future = .;
-
-		/* Kernel symbol table: Normal symbols */
-		__start___kcrctab = .;
-		*(__kcrctab)
-		__stop___kcrctab = .;
-
-		/* Kernel symbol table: GPL-only symbols */
-		__start___kcrctab_gpl = .;
-		*(__kcrctab_gpl)
-		__stop___kcrctab_gpl = .;
-
-		/* Kernel symbol table: GPL-future symbols */
-		__start___kcrctab_gpl_future = .;
-		*(__kcrctab_gpl_future)
-		__stop___kcrctab_gpl_future = .;
+	} > TEXT
 
-		/* Kernel symbol table: strings */
-		*(__ksymtab_strings)
+	RO_DATA(16)
 
-		/* Built-in module parameters */
-		. = ALIGN(4) ;
-		__start___param = .;
-		*(__param)
-		__stop___param = .;
+	.rodata : {} > TEXT
+	.rodata1 : {} > TEXT
+	.pci_fixup : {} > TEXT
+	.builtin_fw : {} > TEXT
+	.rio_route : {} > TEXT
+	.tracedata : {} > TEXT
+	__ksymtab : {} > TEXT
+	__ksymtab_gpl : {} > TEXT
+	__ksymtab_gpl_future : {} > TEXT
+	__kcrctab_gpl : {} > TEXT
+	__kcrctab_unused : {} > TEXT
+	__kcrctab_unused_gpl : {} > TEXT
+	__kcrctab_gpl_future : {} > TEXT
+	__ksymtab_strings : {} > TEXT
+	__init_rodata : {} > TEXT
+	__param : {} > TEXT
 
-		. = ALIGN(4) ;
-		_etext = . ;
-	} > TEXT
+	_etext = .;
 
 	.data DATA_ADDR : {
 		. = ALIGN(4);
@@ -349,12 +282,6 @@ SECTIONS {
 	    PROVIDE (___eh_frame_end = .);
 	  } > INIT
 
-	/DISCARD/ : {
-		EXIT_TEXT
-		EXIT_DATA
-		*(.exitcall.exit)
-	}
-
 	.bss : {
 		. = ALIGN(4);
 		_sbss = . ;
@@ -365,6 +292,12 @@ SECTIONS {
 		_end = . ;
 	} > BSS
 
+	/DISCARD/ : {
+		EXIT_TEXT
+		EXIT_DATA
+		*(.exitcall.exit)
+	}
+
 	NOTES > BSS
 
 }