Modules interdependence - why it's bad? At first, it obscures the causes of modules, because it gives rise to the urgent problem of the chicken and egg (what was first?). You even cannot compile such modules in a normal Oberon environment (and in Ofront too) without tricks. To compile module "A" you must have symbol file of module "B", hence you need to compile the module "B" first. But to compile the module "B" you need to have the symbol file of the module "A"! And never end. Yes, we know such sort of tricks with different snapshots of a symfile, but why? And we can have a lot of crooked *.h files interdependent on each other, working in C, but it breaks the hierarchical structure of a software system. Oberon does not allow us to have the bad designed structure of the system. If your two modules need each other, maybe is it reason to join them to one?
How to use entry point. Just remove --no-std-crt0 from your makefile. +3 bytes of code, but no problems with starting main() function in future.

slenkar писал(а):
Do you think it could be too many function calls within each other? So the stack or heap is being overloaded?
With this cross-linked calls the all memory lower from stack pointer just filled completely and absolutely, there was no chance to keep at least one free byte for your program.
