00001
00002
00003
00004 LS_Phys = 0x100000;
00005 LS_Virt = 0xC0000000;
00006
00007 SECTIONS
00008 {
00009 .text LS_Virt : AT(LS_Phys)
00010 { code = .; _code = .;
00011 *(.text*)
00012 *(.rodata*)
00013 . = ALIGN(4096);
00014 d_code = .; _d_code = .;
00015 *(.dtext)
00016 . = ALIGN(4096); }
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 .data : AT ( ADDR(.text)+SIZEOF(.text) - LS_Virt + LS_Phys )
00030 {
00031 data = .; _data = .;
00032 __CTOR_LIST__ = .; LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) *(.ctors) LONG(0) __CTOR_END__ = .;
00033 __DTOR_LIST__ = .; LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) *(.dtors) LONG(0) __DTOR_END__ = .;
00034
00035 *(.data)
00036 *(.eh_frame)
00037 . = ALIGN(4096);
00038 d_data = .; _d_data = .;
00039 *(.ddata)
00040 . = ALIGN(4096); }
00041
00042
00043
00044
00045 .rodata : AT( ADDR( .data ) + SIZEOF ( .data ) - LS_Virt + LS_Phys )
00046 { rodata = .; _rodata = .;
00047 *(.rodata)
00048 . = ALIGN(4096); }
00049
00050
00051
00052 .gnu : AT( ADDR( .rodata ) + SIZEOF ( .rodata ) - LS_Virt + LS_Phys )
00053 { gnu = .; _gnu = .;
00054 *(.gnu.*)
00055 . = ALIGN(4096); }
00056
00057
00058 .bss : AT( ADDR( .gnu ) + SIZEOF ( .gnu ) - LS_Virt + LS_Phys )
00059 { bss = .; _bss = .;
00060 *(.bss.dontcare)
00061 bss2 = .;
00062 *(.bss)
00063 *(COMMON)
00064 . = ALIGN(4096);
00065 bssend = .; }
00066
00067
00068 end = .; _end = .; }
00069
00070
00071 OUTPUT(core.x)
00072
00073
00074 STARTUP(src/crt.o)
00075 INPUT(src/init.o)
00076 INPUT(src/memory/paging.o)
00077
00078 INPUT(src/arch/x86/gdt.o)
00079 INPUT(src/arch/x86/interr.o)
00080 INPUT(src/arch/x86/except_c.o)
00081 INPUT(src/arch/x86/irq.o)
00082 INPUT(src/arch/x86/except.o)
00083 INPUT(src/arch/x86/rtc.o)
00084 INPUT(src/arch/x86/context.o)
00085 INPUT(src/arch/x86/sched.o)
00086 INPUT(src/arch/x86/cpuid.o)
00087 INPUT(src/arch/x86/msr.o)
00088 INPUT(src/arch/x86/sysenter.o)
00089 INPUT(src/arch/x86/wp.o)
00090 INPUT(src/arch/x86/pcibios.o)
00091
00092 INPUT(src/common/shared.o)
00093 INPUT(src/common/error.o)
00094 INPUT(src/common/io.o)
00095 INPUT(src/common/string.o)
00096 INPUT(src/common/stack.o)
00097 INPUT(src/common/blist.o)
00098 INPUT(src/common/blistsort.o)
00099 INPUT(src/common/qsort.o)
00100 INPUT(src/common/bits.o)
00101 INPUT(src/common/profiler.o)
00102 INPUT(src/common/prng.o)
00103 INPUT(src/mboot.o)
00104 INPUT(src/ata.o)
00105 INPUT(src/fat.o)
00106
00107 INPUT(src/collection/collection.o)
00108
00109 INPUT(src/net/3c556.o)
00110 INPUT(src/net/net.o)
00111 INPUT(src/net/ip.o)
00112 INPUT(src/net/tcp.o)
00113 INPUT(src/net/icmp.o)
00114 INPUT(src/net/arp.o)
00115
00116 INPUT(src/sandbox.o)
00117
00118 INPUT(src/tty/teletype.o)
00119
00120 INPUT(src/memory/memset.o)
00121 INPUT(src/memory/pager.o)
00122 INPUT(src/memory/alloc4k.o)
00123 INPUT(src/memory/align.o)
00124 INPUT(src/memory/heap.o)
00125 INPUT(src/memory/zone.o)
00126 INPUT(src/memory/mmap.o)
00127 INPUT(src/memory/shmem.o)
00128
00129 INPUT(src/ipc/lock.o)
00130 INPUT(src/ipc/msg.o)
00131 INPUT(src/ipc/sem.o)
00132
00133 INPUT(src/thread/thread.o)
00134 INPUT(src/thread/process.o)
00135 INPUT(src/thread/scheduler.o)
00136 INPUT(src/thread/timer.o)
00137
00138 INPUT(src/module/elf.o)
00139 INPUT(src/module/coresyms.o)
00140 INPUT(src/module/mangle.o)
00141 INPUT(src/module/mods.o)
00142 INPUT(src/module/api1.o)
00143 INPUT(src/module/deamon.o)
00144
00145 INPUT(src/main.o)
00146
00147 INPUT(src/libgcc.a)
00148
00149 OUTPUT_FORMAT(elf32-i386)
00150 ENTRY(start)