X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/69777bdcab284335651a8002e2896f3862fa423d..28c176b668c841a3b7fb093faccf0efa39257603:/lunaix-os/link/linker.ld diff --git a/lunaix-os/link/linker.ld b/lunaix-os/link/linker.ld deleted file mode 100644 index 34833f0..0000000 --- a/lunaix-os/link/linker.ld +++ /dev/null @@ -1,189 +0,0 @@ -ENTRY(start_) - -SECTIONS { - . = 0x100000; - __kboot_start = .; - - /* 这里是我们的高半核初始化代码段和数据段 */ - .boot.text BLOCK(4K) : - { - *(.multiboot) - *(.boot.text) - } - - .boot.bss BLOCK(4K) : - { - *(.boot.bss) - } - - .boot.data BLOCK(4K) : - { - *(.boot.data) - } - - .boot.rodata BLOCK(4K) : - { - *(.boot.rodata) - } - - .boot.bss BLOCK(4K) : - { - *(.boot.rodata) - } - __kboot_end = ALIGN(4K); - - /* ---- boot end ---- */ - - /* ---- kernel start ---- */ - - . += 0xC0000000; - - /* 好了,我们的内核…… */ - - PROVIDE(__kexec_text_start = ALIGN(4K)); - - .text BLOCK(4K) : AT ( ADDR(.text) - 0xC0000000 ) - { - __kexec_start = .; - - *(.text) - } - - .kf.preempt BLOCK(4K) : AT ( ADDR(.kf.preempt) - 0xC0000000 ) - { - PROVIDE(__kf_preempt_start = .); - - KEEP(*(.kf.preempt)); - - PROVIDE(__kf_preempt_end = .); - } - - PROVIDE(__kexec_text_end = .); - - .data BLOCK(4K) : AT ( ADDR(.data) - 0xC0000000 ) - { - *(.data) - } - - .rodata BLOCK(4K) : AT ( ADDR(.rodata) - 0xC0000000 ) - { - *(.rodata) - } - - .kpg BLOCK(4K) : AT ( ADDR(.kpg) - 0xC0000000 ) - { - *(.kpg) - } - - . = ALIGN(4K); - - /* for generated array, we align to address line size */ - - .lga BLOCK(4K) : AT ( ADDR(.lga) - 0xC0000000 ) - { - PROVIDE(__lga_twiplugin_inits_start = .); - - KEEP(*(.lga.twiplugin_inits)); - - PROVIDE(__lga_twiplugin_inits_end = .); - - /* ---- */ - - /* align to 8 bytes, so it can cover both 32 and 64 bits address line*/ - . = ALIGN(8); - - PROVIDE(__lga_devdefs_start = .); - - KEEP(*(.lga.devdefs)); - - PROVIDE(__lga_devdefs_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_dev_ld_kboot_start = .); - - KEEP(*(.lga.devdefs.ld_kboot)); - - PROVIDE(__lga_dev_ld_kboot_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_dev_ld_sysconf_start = .); - - KEEP(*(.lga.devdefs.ld_sysconf)); - - PROVIDE(__lga_dev_ld_sysconf_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_dev_ld_timedev_start = .); - - KEEP(*(.lga.devdefs.ld_timedev)); - - PROVIDE(__lga_dev_ld_timedev_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_dev_ld_post_start = .); - - KEEP(*(.lga.devdefs.ld_post)); - - PROVIDE(__lga_dev_ld_post_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_fs_start = .); - - KEEP(*(.lga.fs)); - - PROVIDE(__lga_fs_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_lunainit_on_earlyboot_start = .); - - KEEP(*(.lga.lunainit.c_earlyboot)); - - PROVIDE(__lga_lunainit_on_earlyboot_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_lunainit_on_boot_start = .); - - KEEP(*(.lga.lunainit.c_boot)); - - PROVIDE(__lga_lunainit_on_boot_end = .); - - /* ---- */ - - . = ALIGN(8); - - PROVIDE(__lga_lunainit_on_postboot_start = .); - - KEEP(*(.lga.lunainit.c_postboot)); - - PROVIDE(__lga_lunainit_on_postboot_end = .); - - } - - .bss BLOCK(4K) : AT ( ADDR(.bss) - 0xC0000000 ) - { - *(.bss) - } - - __kexec_end = ALIGN(4K); -} \ No newline at end of file