Skip to main content Svelte Highlight v7.21.1

GNU ld linker script preview

1. A minimal linker script

MEMORY and SECTIONS blocks with region assignment
horizon-dark
/* a simple linker script */
ENTRY(_start)

MEMORY
{
    FLASH (rx)  : ORIGIN = 0x08000000, LENGTH = 256K
    RAM (rwx)   : ORIGIN = 0x20000000, LENGTH = 64K
}

SECTIONS
{
    .text : {
        *(.text*)
    } > FLASH

    .data : {
        *(.data*)
    } > RAM AT> FLASH
}
atom-one-dark
/* a simple linker script */
ENTRY(_start)

MEMORY
{
    FLASH (rx)  : ORIGIN = 0x08000000, LENGTH = 256K
    RAM (rwx)   : ORIGIN = 0x20000000, LENGTH = 64K
}

SECTIONS
{
    .text : {
        *(.text*)
    } > FLASH

    .data : {
        *(.data*)
    } > RAM AT> FLASH
}
github-dark
/* a simple linker script */
ENTRY(_start)

MEMORY
{
    FLASH (rx)  : ORIGIN = 0x08000000, LENGTH = 256K
    RAM (rwx)   : ORIGIN = 0x20000000, LENGTH = 64K
}

SECTIONS
{
    .text : {
        *(.text*)
    } > FLASH

    .data : {
        *(.data*)
    } > RAM AT> FLASH
}
dracula
/* a simple linker script */
ENTRY(_start)

MEMORY
{
    FLASH (rx)  : ORIGIN = 0x08000000, LENGTH = 256K
    RAM (rwx)   : ORIGIN = 0x20000000, LENGTH = 64K
}

SECTIONS
{
    .text : {
        *(.text*)
    } > FLASH

    .data : {
        *(.data*)
    } > RAM AT> FLASH
}
nord
/* a simple linker script */
ENTRY(_start)

MEMORY
{
    FLASH (rx)  : ORIGIN = 0x08000000, LENGTH = 256K
    RAM (rwx)   : ORIGIN = 0x20000000, LENGTH = 64K
}

SECTIONS
{
    .text : {
        *(.text*)
    } > FLASH

    .data : {
        *(.data*)
    } > RAM AT> FLASH
}
github
/* a simple linker script */
ENTRY(_start)

MEMORY
{
    FLASH (rx)  : ORIGIN = 0x08000000, LENGTH = 256K
    RAM (rwx)   : ORIGIN = 0x20000000, LENGTH = 64K
}

SECTIONS
{
    .text : {
        *(.text*)
    } > FLASH

    .data : {
        *(.data*)
    } > RAM AT> FLASH
}

2. Symbols and expressions

PROVIDE, ALIGN, and the location counter
horizon-dark
PROVIDE(_stack_top = ORIGIN(RAM) + LENGTH(RAM));

SECTIONS
{
    .bss : {
        . = ALIGN(4);
        _bss_start = .;
        *(.bss*)
        _bss_end = .;
    } > RAM
}
atom-one-dark
PROVIDE(_stack_top = ORIGIN(RAM) + LENGTH(RAM));

SECTIONS
{
    .bss : {
        . = ALIGN(4);
        _bss_start = .;
        *(.bss*)
        _bss_end = .;
    } > RAM
}
github-dark
PROVIDE(_stack_top = ORIGIN(RAM) + LENGTH(RAM));

SECTIONS
{
    .bss : {
        . = ALIGN(4);
        _bss_start = .;
        *(.bss*)
        _bss_end = .;
    } > RAM
}
dracula
PROVIDE(_stack_top = ORIGIN(RAM) + LENGTH(RAM));

SECTIONS
{
    .bss : {
        . = ALIGN(4);
        _bss_start = .;
        *(.bss*)
        _bss_end = .;
    } > RAM
}
nord
PROVIDE(_stack_top = ORIGIN(RAM) + LENGTH(RAM));

SECTIONS
{
    .bss : {
        . = ALIGN(4);
        _bss_start = .;
        *(.bss*)
        _bss_end = .;
    } > RAM
}
github
PROVIDE(_stack_top = ORIGIN(RAM) + LENGTH(RAM));

SECTIONS
{
    .bss : {
        . = ALIGN(4);
        _bss_start = .;
        *(.bss*)
        _bss_end = .;
    } > RAM
}

3. Input and search paths

INPUT, GROUP, and SEARCH_DIR
horizon-dark
SEARCH_DIR("/usr/lib")
INPUT(libc.a libm.a)
GROUP(libgcc.a libc.a)
atom-one-dark
SEARCH_DIR("/usr/lib")
INPUT(libc.a libm.a)
GROUP(libgcc.a libc.a)
github-dark
SEARCH_DIR("/usr/lib")
INPUT(libc.a libm.a)
GROUP(libgcc.a libc.a)
dracula
SEARCH_DIR("/usr/lib")
INPUT(libc.a libm.a)
GROUP(libgcc.a libc.a)
nord
SEARCH_DIR("/usr/lib")
INPUT(libc.a libm.a)
GROUP(libgcc.a libc.a)
github
SEARCH_DIR("/usr/lib")
INPUT(libc.a libm.a)
GROUP(libgcc.a libc.a)