Skip to content

Make RGBLINK usable in a C toolchain #1008

@ISSOtm

Description

@ISSOtm

More needs to be done for RGBLINK to become a viable C toolchain linker, in order of importance:

  • Linker script must be able to specify floating sections (SDCC "floating" areas do not convey any "type" info, so the linker script must specify whether they are ROM0, ROMX, etc. but that shouldn't force their location.)
  • Linker script must be able to specify "optional" sections (i.e. reference sections but not error out if they don't exist)
  • .cdb support
  • Document how the SDCC and RGBDS worlds interact
  • .lib support (ar archives, and lazily linking .os from those)
  • .noi support (essentially .sym with a different format)

These smaller points cover TODO comments in the source code, marking partial support for, or incomplete understanding of, something checked off above:

  • In src/link/sdas_obj.cpp:
    • Handle ;!FILE [...] on the first line
    • Hard error if the rest of a Ref line is not zero
    • Possibly check other flags for relocatable/PC-relative byte patches
  • In test/link/sdcc/good/script.link:
    • Investigate the "_GSINIT" ROM0 section ("reportedly internal to the crt0")
    • Identify what the "_DABS (ABS)" WRAM0 section is

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsThis affects the documentation (web-specific issues go to rgbds-www)enhancementTypically new features; lesser priority than bugsrgblinkThis affects RGBLINK

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions