Skip to content

0.3.0

Latest
Compare
Choose a tag to compare
@AngheloAlf AngheloAlf released this 17 Aug 12:58
· 2 commits to main since this release

[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
      ABS symbols 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, HIDDEN or PROVIDE_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.
  • Add way to define a non hardcoded _gp symbol for a given segment.
    • Used by defining the gp_info field on a segment.
    • Can't be combined with the global hardcoded_gp_value.
  • 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.
  • New keep_sections attribute for vram_classes, segments and files.
    • Allows to specify which sections of a files should be KEEP during 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.
  • New sections_subgroups attribute for settings and segments.
    • Allows to specify one or multiple sections that should be emitted alongside
      another section for each file, instead of getting their own "proper"
      section.

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 \r character 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 \r characters when cloning the repository
      (like Windows).
  • 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_tests and release jobs to try to improve CI times.