Skip to content

Make RGBLINK usable in a C toolchain #1008

Open
@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

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

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions