[comp.sys.amiga] Drew's 2.05m Shell and Manx 3.04a compiler problem

kaz@cadovax.UUCP (04/07/87)

[]

I just finished spending several days tracking down a problem I
was having compiling Drew's version 2.05m shell with the Manx 
3.04a compiler.  The program would compile just fine, but after 
executing any command with the newly compiled shell, the system 
would GURU.

The problem was solved by changing the declaration of "_devtab"
in the execom.c module.  The original declaration was:

    extern struct _dev _devtab[];

I had to change the declaration to:
   
    extern struct _dev *_devtab;

In other words, prior to 3.04a, _devtab was an array of _dev structures.
With the new compiler, _devtab is a pointer to an array of _dev structures.

I figured this out by comparing the old and new definitions of
__main, where _devtab is created.

The GURU occured because in the shell's fcomm() routine, the contents of 
_devtab was being changed rather than what _devtab points to.

The source for the shell is included with the 3.04a compiler.  I guess
no one tried to compile and run it, or they would have run into the
problem I encountered.  I hope this posting saves someone the debug time
I spent.

Kerry Zimmerman
#  {ucbvax,ihnp4,decvax}!trwrb!cadovax!kaz
#  cadovax!kaz@ucla-locus.arpa