Per the SDCC manual, the object that declares main must be passed first to the linker. The resulting binary is identical, and this has not caused a problem yet, so I'm unsure how "required" this is. Ref: Section 3.2.3 Projects with Multiple Source Files Signed-off-by: Tim Crawford <tcrawford@system76.com>