[Coco] More progress

Steven Hirsch snhirsch at gmail.com
Sun Dec 28 16:48:16 EST 2008


On Sun, 28 Dec 2008, Boisy Pitre wrote:

> Steve,
>
> mamou cannot process rma style assembler files, just the 'asm' style ones. 
> Using 'rma' from toolshed should assemble this code, so try that.

Got it.  Thanks!

Coming up with missing symbols at link:

Unresolved references:
  _stkcheck       hello_c         in hello.r
  errno           io_a            in /dd/lib/clib.l
  _flacc          io_a            in /dd/lib/clib.l
  memend          mem_a           in /dd/lib/clib.l
  _mtop           mem_a           in /dd/lib/clib.l
  _stbot          mem_a           in /dd/lib/clib.l
  errno           syscommon_a     in /dd/lib/clib.l

These look like they should be compiler-generated.  In Unix, I'd expect 
the init stub to define them.  What is the equivalent in OS-9?  I grepped 
through the sources for rlink, rma, cprep, etc. and could find only the 
place where code is generated that references, e.g. _stkcheck and errno.

Is there a stub library that needs to be included in the link command?

I'm doing:

$ rlink -l=/dd/lib/clib.l -o=hello hello.r


Steve

p.s. - Something is generating an incorrect psect header, but I worked 
around that by changing the language/type byte manually from 0 --> $11.

p.p.s - There is a platform dependency in toolshed that should be 
addressed.  In rof.h:

typedef struct
{
         /* Sync bytes used by the linker to recognize a ROF */
//      long            h_sync;  BZZZT!

// Needs to be:
         int             h_sync;

When building on 64-bit Linux, a long is 8 bytes.  This creates problems 
needless to say.  I tried specifying -m32 in the build, but that creates a 
rash of problems at the point where the rma link runs - something about 
object format being invalid for x86_64 architecture?



-- 



More information about the Coco mailing list