[FREELDR][NTOSKRNL]
authorDmitry Gorbachev <gorbachev@reactos.org>
Thu, 23 Feb 2012 18:59:24 +0000 (18:59 +0000)
committerDmitry Gorbachev <gorbachev@reactos.org>
Thu, 23 Feb 2012 18:59:24 +0000 (18:59 +0000)
Update linker scripts.

svn path=/trunk/; revision=55835

reactos/boot/freeldr/freeldr/freeldr_i386.lnk
reactos/ntoskrnl/ntoskrnl_i386.lnk

index c4c293c..9f3a0a3 100644 (file)
@@ -23,6 +23,15 @@ SECTIONS
     __bss_end__ = . ;
   }
 
+  .stab BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.stab)
+  }
+  .stabstr BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.stabstr)
+  }
+
   /* DWARF debug sections.
      Symbols in the DWARF debugging sections are relative to the beginning
      of the section.  Unlike other targets that fake this by putting the
@@ -43,7 +52,7 @@ SECTIONS
   /* DWARF 2.  */
   .debug_info BLOCK(__section_alignment__) (NOLOAD) :
   {
-    *(.debug_info) *(.gnu.linkonce.wi.*)
+    *(.debug_info .gnu.linkonce.wi.*)
   }
   .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) :
   {
@@ -98,7 +107,7 @@ SECTIONS
   /* DWARF 4.  */
   .debug_types BLOCK(__section_alignment__) (NOLOAD) :
   {
-    *(.debug_types) *(.gnu.linkonce.wt.*)
+    *(.debug_types .gnu.linkonce.wt.*)
   }
 
   /DISCARD/ :
index 788cda7..fbc9034 100644 (file)
-OUTPUT_FORMAT(pei-i386)
-ENTRY(_mainCRTStartup)
 SECTIONS
 {
-  .text  __image_base__ + __section_alignment__  : 
+  .text __image_base__ + __section_alignment__ :
   {
-    __text_start__ = .;
-    *(.init)
     *(.text)
-    *(SORT(.text$*))
-    *(.glue_7t)
-    *(.glue_7)
-     ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; 
-                       LONG (-1); *(.ctors); *(.ctor); LONG (0); 
-     ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; 
-                       LONG (-1); *(.dtors); *(.dtor);  LONG (0); 
-     *(.fini)
-    /* ??? Why is .gcc_exc here?  */
-     *(.gcc_exc)
-     __text_end__ = .;
-    *(.gcc_except_table)
-  }
-   /* The Cygwin32 library uses a section to avoid copying certain data
-     on fork.  This used to be named ".data".  The linker used
-     to include this between __data_start__ and __data_end__, but that
-     breaks building the cygwin32 dll.  Instead, we name the section
-     ".data_cygwin_nocopy" and explictly include it after __data_end__. */
-  .data BLOCK(__section_alignment__) : 
-  {
-    __data_start__ = . ;
+    *(SORT(.text*))
+  }
+
+  .data BLOCK(__section_alignment__) :
+  {
     *(.data)
-    *(.data2)
-    *(SORT(.data$*))
-    __data_end__ = . ;
-    *(.data_cygwin_nocopy)
+    *(SORT(.data*))
   }
+
   .rdata BLOCK(__section_alignment__) :
   {
     *(.rdata)
-    *(SORT(.rdata$*))
+    *(SORT(.rdata*))
     *(.eh_frame)
   }
+
   .edata BLOCK(__section_alignment__) :
   {
     *(.edata)
   }
+
   /DISCARD/ :
   {
-    *(.debug$S)
-    *(.debug$T)
-    *(.debug$F)
     *(.drectve)
+    *(.gnu.lto_*)
   }
 
   .idata BLOCK(__section_alignment__) :
   {
     /* This cannot currently be handled with grouped sections.
-       See pe.em:sort_sections.  */
+        See pe.em:sort_sections.  */
     SORT(*)(.idata$2)
     SORT(*)(.idata$3)
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)  
+    SORT(*)(.idata$4)
     SORT(*)(.idata$5)
     SORT(*)(.idata$6)
     SORT(*)(.idata$7)
   }
-  .CRT BLOCK(__section_alignment__) :
-  {                                    
-    *(SORT(.CRT$*))
-  }
+
   .rsrc BLOCK(__section_alignment__) :
-  {                                    
+  {
     *(.rsrc)
     *(SORT(.rsrc$*))
   }
+
   .bss BLOCK(__section_alignment__) :
   {
-    __bss_start__ = . ;
     *(.bss)
     *(COMMON)
-    __bss_end__ = . ;
   }
+
   .reloc BLOCK(__section_alignment__) :
-  {                                    
+  {
     *(.reloc)
-     /* These zeroes mark the end of the reloc section.  */
-     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
   }
+
   .stab BLOCK(__section_alignment__) (NOLOAD) :
   {
-    [ .stab ]
+    *(.stab)
   }
   .stabstr BLOCK(__section_alignment__) (NOLOAD) :
   {
-    [ .stabstr ]
+    *(.stabstr)
+  }
+
+  /* DWARF debug sections.
+     Symbols in the DWARF debugging sections are relative to the beginning
+     of the section.  Unlike other targets that fake this by putting the
+     section VMA at 0, the PE format will not allow it.  */
+  /* DWARF 1.1 and DWARF 2.  */
+  .debug_aranges BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_aranges)
+  }
+  .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_pubnames)
+  }
+  .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_pubtypes)
+  }
+  /* DWARF 2.  */
+  .debug_info BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_info .gnu.linkonce.wi.*)
+  }
+  .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_abbrev)
   }
-  INIT BLOCK(__section_alignment__) :
+  .debug_line BLOCK(__section_alignment__) (NOLOAD) :
   {
-    __init_start__ = . ;
-    *(INIT)
-    __init_end__ = . ;
+    *(.debug_line)
+  }
+  .debug_frame BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_frame*)
+  }
+  .debug_str BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_str)
+  }
+  .debug_loc BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_loc)
+  }
+  .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_macinfo)
+  }
+  /* SGI/MIPS DWARF 2 extensions.  */
+  .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_weaknames)
+  }
+  .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_funcnames)
+  }
+  .debug_typenames BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_typenames)
+  }
+  .debug_varnames BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_varnames)
+  }
+  .debug_macro BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_macro)
+  }
+  /* DWARF 3.  */
+  .debug_ranges BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_ranges)
+  }
+  /* DWARF 4.  */
+  .debug_types BLOCK(__section_alignment__) (NOLOAD) :
+  {
+    *(.debug_types .gnu.linkonce.wt.*)
   }
 }
-