In options.pas there is a call to objpas.paramstr. Is that a thing that is supposed to be loaded externally? If I change it to system.paramstr I get a consistent behavior.
objpas.paramstr calls system.paramstr to retrieve the 0th parameter (name of executable).
It finds the source in cmd line and gives error message ( can't open ). The open routine is never called.
Do you already have all the file related RTL functions 'working' for riscos ?
That is one of the reasons I mentioned cfileutl.pas as it makes use of other (in RTL available such as
system and
sysutils) file related functions.
Perhaps I'm not understanding something but I noticed that riscos uses quite another file notation that I've never seen before (and as such would be a shitload of work to make them compatible for/with Free Pascal. The Amiga platform had the same problem but at least there the modifications where minimal, see also function Unix2AmigaPath)
I wonder about units.. Is they supposed to live on filesystem or can they be compiled in (prefered) ?
They live on the filesystem. Originally as .pas or .pp sourcecode-files which are compiled by the compiler into units (.ppu files) and object (.o files). By default they are located in the units/<platform> (e.g. arm-linux) directory (on a normal FPC installation).
If you compile your (own) source-code, the compiler will 'include' all the units/object files (hence all the caching for several directories), create an object for your code and feed all that to the linker which then creates an executable.
Not sure what exactly you meant with "compiled in" but in the end it is one single executable unless you are creating (system) libraries. The process is exactly the same as that of other compilers such as (gc)c except that units/ppu files are precompiled.