Releases: decompals/slinky
Releases · decompals/slinky
0.4.0
[0.4.0] - 2026-04-20
Added
paths_list_pathsetting.- A path to a plain text file to be generated, containing all the files listed
to build the target elf. - Useful to pass a list of input files to the linker using the
@path/to/file.listsyntax on linkers that do support it.
- A path to a plain text file to be generated, containing all the files listed
Changed
- Include
.symtaband.strtabin default value ofsections_allowlist_extra
from Settings.lldcan segfault in certain conditions if those sections are not listed
explicitly on the linker script.
- Add
.gotto the default list of discarded sections. - Simplify the formatting used for extra sections.
alloc_sectionsandnoload_sectionssections now acceptnullvalues.- This allows to avoid emitting those sections completely for a given segment
or globally. - The main difference between using
nulland an empty list isnullwill
not produce linker symbol nor the section itself in the generated linker
script, while the empty list would generate the starting and ending linker
symbols and the section with no files.
- This allows to avoid emitting those sections completely for a given segment
- The generated dependency file will now include an
-includedirective for
every path listed, but replacing their extensions with.dto allow tracking
the dependencies of those paths automatically.
0.3.0
[0.3.0] - 2024-08-17
Added
- Add new top-level attribute for the file format:
symbol_assignments.- Allows to define symbols directly on the generated linker script.
- Symbols created this way can be defined with raw addresses, reference other
symbols or more complex expressions. - These generated symbols do not have a corresponding section (defined as
ABSsymbols on the elf). - If a symbol assignment is emitted or not can be controlled with the same
conditional inclussion/exclussion mechanism used by the custom options. - These definitions can be wrapped in
PROVIDE,HIDDENorPROVIDE_HIDDEN.
- Add new top-level attribute for the file format:
required_symbols.- Allows to specify a list of symbols that should be forced to be linked into
the build, even if they are not refenced by any other linked code. - Useful for making sure a symbol from an static library is being linked.
- If a symbol assignment is emitted or not can be controlled with the same
conditional inclussion/exclussion mechanism used by the custom options.
- Allows to specify a list of symbols that should be forced to be linked into
- Add way to define a non hardcoded
_gpsymbol for a given segment.- Used by defining the
gp_infofield on a segment. - Can't be combined with the global
hardcoded_gp_value.
- Used by defining the
- Add new top-level attribute for the file format:
entry.- Specifies the entrypoint for the build.
- Add new top-level attribute for the file format:
asserts.- Allows to define multiple assertions that should be satisfied for the link
to success.
- Allows to define multiple assertions that should be satisfied for the link
- New
keep_sectionsattribute forvram_classes,segmentsandfiles.- Allows to specify which sections of a files should be
KEEPduring link
time garbage collection, even of those are not referenced at al by anything
else. - Allows to configure for everything referencing a given vram class or as
fine grained as a single file entry.
- Allows to specify which sections of a files should be
- New
sections_subgroupsattribute forsettingsandsegments.- Allows to specify one or multiple sections that should be emitted alongside
another section for each file, instead of getting their own "proper"
section.
- Allows to specify one or multiple sections that should be emitted alongside
Changed
- Produce an error if the user specifies an empty conditional
inclusion/exclusion for any entry. - Make sure all platforms use forward slashes when emitting file paths.
- Tests now strip the
\rcharacter from the expected files before compaing
them.- This is done to normalize the tests files accross all platforms, including
the ones where git may add\rcharacters when cloning the repository
(like Windows).
- This is done to normalize the tests files accross all platforms, including
- Github Actions:
- Change CI to run tests on all platforms we generate builds artifacts for.
- Use the ARM Mac Github runner to build and test the ARM Mac builds.
- Merge
run_testsandreleasejobs to try to improve CI times.
0.2.5
[0.2.5] - 2024-07-17
Fixed
- Fix partial linking related paths not being properly escaped.
- Fix
partial_build_segments_foldernot being properly prefixed on some places. - Fix
section_ordernot being applied to files inside ofgroups. - Avoid generating sub-scripts of conditionally excluded segments during partial
linking scripts generation.
0.2.4
[0.2.4] - 2024-07-15
Fixed
- Fix crate version not updated.
0.2.3 [YANKED]
[0.2.3] - 2024-07-15 [YANKED]
Fixed
- Fix CI not uploading build artifacts to Github release.
- Fix README badge.
0.2.2
[0.2.2] - 2024-07-15
Fix
- Fix release
0.2.1 [YANKED]
[0.2.1] - 2024-07-15 [YANKED]
Fix
- Fix MSRV
0.2.0 [YANKED]
[0.2.0] - 2024-07-15 [YANKED]
Added
- Initial release