Changeset cfdeedc in mainline for kernel/arch/ia64


Ignore:
Timestamp:
2018-10-21T23:12:23Z (7 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bf05c74
Parents:
d59718e
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2018-10-21 22:53:48)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2018-10-21 23:12:23)
Message:

Keep kernel in ELF format

By keeping kernel in an ELF file (instead of converting it to
a flat binary), we can use the information it contains, like
symbol table and debug info.

We can also later implement more advanced functionality, like
loading kernel at multiple discontiguous blocks, or loading
a position-independent kernel at a randomized address.

Currently the functionality is quite restricted, to keep changes
to a minimum. Code in boot/generic/src/kernel.c validates that
the kernel image was built with the same addresses as the boot
loader uses, giving an extra level of sanity checking compared
to a flat binary.

Location:
kernel/arch/ia64
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/Makefile.inc

    rd59718e rcfdeedc  
    2727#
    2828
    29 BFD_NAME = elf64-little
    30 BFD_ARCH = ia64-elf64
    3129
    3230COMMON_CFLAGS += -mconstant-gp -fno-unwind-tables -mfixed-range=f32-f127
     
    6563ifeq ($(MACHINE),ski)
    6664        ARCH_SOURCES += arch/$(KARCH)/src/drivers/ski.c
    67         BFD = binary
    6865endif
    6966
    7067ifeq ($(MACHINE),i460GX)
    7168        DEFS += -DI460GX
    72         BFD = binary
    7369endif
    7470
  • kernel/arch/ia64/_link.ld.in

    rd59718e rcfdeedc  
    1515        kernel_load_address = LOAD_ADDRESS_V;
    1616
    17         .image LOAD_ADDRESS_V: AT (LOAD_ADDRESS_P) {
     17        .image (LOAD_ADDRESS_V + SIZEOF_HEADERS): AT (LOAD_ADDRESS_P + SIZEOF_HEADERS) {
     18                . = ALIGN(16);
    1819                ktext_start = .;
    1920                *(K_TEXT_START);
Note: See TracChangeset for help on using the changeset viewer.