This series updates the build (and layoutrom.py in particular) to be more flexible in section layouts. Prior to this series, only code compiled in the 16bit mode pass could be placed at a fixed address in the f-segment. After this change, the build can more easily place sections from any compile pass.
Most of the series consists of minor cleanups to layoutrom.py to make the above happen. Patch 4 is an unrelated minor feature enhancement.
Otherwise, patches 7 and 10 are where the real changes occur.
-Kevin
Kevin O'Connor (10): build: Remove unused function getSectionsStart() from layoutrom.py. build: Extract section visiting logic in layoutrom.py. build: Refactor layoutrom.py gc() function. build: Use customized entry point for each type of build. build: Refactor findInit() function. build: Rework getRelocs() to use a hash instead of categories in layoutrom.py build: Keep segmented sections separate until final link step. build: Use fileid instead of category to write sections in layoutrom.py. build: Only export needed fields in LayoutInfo in layoutrom.py. build: Get fixed address variables from 32bit compile pass (not 16bit)
Makefile | 13 +- scripts/layoutrom.py | 426 ++++++++++++++++++++++++--------------------------- src/entryfuncs.S | 6 - src/font.c | 2 +- src/misc.c | 18 +-- src/romlayout.S | 4 +- src/types.h | 8 +- 7 files changed, 224 insertions(+), 253 deletions(-)