You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This page documents which linker script features Wild supports, which are partially implemented,
and which are planned for the future. Each feature is marked with one of four statuses: ✅
(supported), 🧪 (partial), 📅 (planned), or ❌ (not planned). A dedicated section at the
end lists the features required to link the Linux kernel.
Top-Level Commands
Feature
Status
Notes
GROUP(files...)
✅
INPUT(files...)
✅
AS_NEEDED(files...)
✅
INCLUDE(file)
📅
OUTPUT_FORMAT(...)
🧪
Emits error if the format doest not match the target
OUTPUT_ARCH(arch)
🧪
Parsed and ignored
OUTPUT(filename)
❌
SECTIONS { ... }
✅
ENTRY(symbol)
✅
VERSION { ... }
✅
PROVIDE(sym = expr)
✅
PROVIDE_HIDDEN(sym = expr)
✅
ASSERT(expr, "msg")
✅
MEMORY { ... }
🧪
Region parsing supported; attribute flags and >region placement not yet implemented
REGION_ALIAS(alias, region)
❌
SEARCH_DIR(path)
❌
STARTUP(filename)
❌
TARGET(bfdname)
❌
NOCROSSREFS(sections...)
❌
INSERT [AFTER|BEFORE] section
❌
Top-level symbol assignment (sym = expr)
✅
Compound assignment operators (+=, -=, etc.)
✅
PHDRS command for explicit program header definition
The MEMORY command defines named memory regions with an origin address and a length. Wild parses
MEMORY blocks including the ORIGIN/org/o and LENGTH/len/l attribute keywords and
their expressions. Attribute flags such as (rwx) are not yet parsed. Placement directives that
assign an output section to a named region (>region, AT>region) are not yet implemented.
Feature
Status
Notes
MEMORY { ... } block parsing
✅
Region name
✅
ORIGIN/org/o attribute
✅
LENGTH/len/l attribute
✅
Attribute flags ((rwx), (rx), etc.)
📅
>region output section placement
📅
AT>region load-region placement
📅
Linux Kernel Requirements
The Linux kernel's build system uses a rich set of linker script features across vmlinux.lds and
related architecture-specific scripts. Several of these features are not yet fully supported by
Wild. The table below lists each such feature along with its current status, so contributors can
see at a glance what remains before Wild can link the kernel.
Feature
Status
Notes
OVERLAY { ... } sections
❌
Output section type specifiers ((NOLOAD), (COPY))
✅
The TYPE attribute is not used in the kernel
FILL(value)
📅
=fillexp
✅
AT(addr) load-address specifier on output sections
✅
>region and AT>region memory region placement
📅
SORT(...), SORT_BY_NAME(...)
✅
SORT_BY_ALIGNMENT(...)
✅
Parsed and ignored, as sections are sorted by alignment by default
EXCLUDE_FILE(...) inside input section matchers
📅
CONSTRUCTORS command
✅
Parsed and ignored, it is a nop for ELF.
PHDRS command for explicit program header definition