* libcurses++, libc++ and liblightOS++ are installed into the crosscompiler directory
[lightOS.git] / kernel / x86 / kernel.ld
blobedb012819569f34b6eb836fbd37dbd6c8f3284bf
1 /*###############################################################################
2 ####### lightOS x86 linker script                                           #####
3 ###############################################################################*/
4 ENTRY(startup)
5 OUTPUT_FORMAT(elf32-i386)
6 OUTPUT_ARCH(i386:i386)
7 VIRTUAL = 0xC0000000;
9 SECTIONS
10   {
11   . = VIRTUAL;
13   __kernel_start__ = .;
14   __kernel_init_start__ = .;
16   .init.text : AT(ADDR(.init.text) - 0xBFF00000)
17   {
18     *(.init.text)
19   }
21   . = ALIGN(4096);
23   .init.data : AT(ADDR(.init.data) - 0xBFF00000)
24   {
25     *(.init.data)
27     . = ALIGN(4);
28     __ctors_start__ = .;
29     *(.ctors)
30     __ctors_end__ = .;
31   }
33   . = ALIGN(4096);
34   __kernel_init_end__ = .;
36   .text : AT(ADDR(.text) - 0xBFF00000)
37   {
38     *(.text*)
39     *(.rodata*)
40   }
42   .data : AT(ADDR(.data) - 0xBFF00000)
43   {
44     *(.data)
45   }
47   .bss : AT(ADDR(.bss) - 0xBFF00000)
48   {
49     *(.bss)
50   }
52   .gnu.linkonce : AT(ADDR(.gnu.linkonce) - 0xBFF00000)
53   {
54     *(.gnu.linkonce.*)
55   }
57   . = ALIGN(4096);
59   __kernel_end__ = .;
61   /DISCARD/ : { *(.comment .note.GNU-stack .eh_frame .dtors) }
62   }