/* Einstiegspunkt ist deine 'start' Funktion im C++ Code */ ENTRY(start) SECTIONS { /* * 1. Startadresse: 64 MiB (0x4000000) * Hier beginnt der virtuelle Adressraum für dein Programm. */ . = 0x4000000; /* --- Code Segment --- */ .text : ALIGN(4096) { *(.text) *(.text.*) } /* --- Read-Only Data (Strings, Consts) --- */ .rodata : ALIGN(4096) { *(.rodata) *(.rodata.*) } /* --- Initialized Data & C++ Arrays --- */ .data : ALIGN(4096) { *(.data) *(.data.*) /* preinit_array */ PROVIDE(__preinit_array_start = .); KEEP(*(.preinit_array)) PROVIDE(__preinit_array_end = .); /* init_array (Globale Konstruktoren) */ PROVIDE(__init_array_start = .); KEEP(*(SORT(.init_array.*))) KEEP(*(.init_array)) PROVIDE(__init_array_end = .); /* fini_array (Globale Destruktoren) */ PROVIDE(__fini_array_start = .); KEEP(*(SORT(.fini_array.*))) KEEP(*(.fini_array)) PROVIDE(__fini_array_end = .); } /* Müll entfernen */ /DISCARD/ : { *(.comment) *(.eh_frame) /* Außer du willst C++ Exceptions supporten, dann behalten */ } }