2003/12/31 23:42:51
[org.ibex.core.git] / src / org / xwt / mips / linker.ld
index cc6b351..75a179e 100644 (file)
@@ -1,32 +1,57 @@
-SEARCH_DIR(build)
 ENTRY(_start)
-STARTUP(org/xwt/imp/crt0.c.o)
-INPUT(org/xwt/imp/syscalls.c.o)
+/*INPUT(support.o support_aux.o)*/
 GROUP(-lc -lgcc)
+/*GROUP(-lgcc)*/
 __DYNAMIC  =  0;
 
 SECTIONS {
   . = 0x10000;
   .text : {
-    *(.init)
-    *(.text) *(.rodata) *(.rodata.*) *(.eh_frame)
-    *(.fini)
+    KEEP(*(.init))
+    KEEP(*(.fini))
+    KEEP(*(.text))
+    *(.text.*) 
+  }
+
+  _etext = .;
+
+  .ctors :
+  {
+    KEEP (*crtbegin.o(.ctors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+    KEEP (*(SORT(.ctors.*)))
+    KEEP (*(.ctors))
+  }
+  
+  .dtors :
+  {
+    KEEP (*crtbegin.o(.dtors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+    KEEP (*(SORT(.dtors.*)))
+    KEEP (*(.dtors))
   }
 
   . = ALIGN(4k);
+
+  .rodata : {
+    *(.rodata*) *(.eh_frame) *(.jcr)
+  }
+
   .data : {
-    *(.data)
+    *(.data*)
   }
+
   . = ALIGN(16);
-   PROVIDE(_gp = . + 0x8000);
+   _gp = . + 0x8000;
   .sdata : {
-    *(.rosdata) *(.sdata)
+    *(.rosdata*) *(.sdata*)
   }
   .sbss : {
-    *(.sbss) *(.scommon)
+    *(.sbss*) *(.scommon*)
   }
   .bss : {
-    *(.bss) *(COMMON)
+    *(.bss*) *(COMMON)
   }
+
   _end = .;
 }