[Prev][Next][Index][Thread]

Re: Installing OSKit on Linux



> I instead ran the command: "./configure --host=i486-unknown-linux".  The
> configure script then ran with no errors.  Hopefully this is the correct
> configuration.

Yes, that should work.  BTW, we always build in a separate object
directory, like:

	mkdir obj
	cd obj
	../oskit-0.96/configure --host=i486-unknown-linux

> The second problem is when I run "make" I get the following errors:
> 
>      make[1] Entering /usr/local/os2/oskit-0.96/linux/dev
>      cc -0 aic 7xxx_asm../../linux/src/drivers/scsi/aic7xxx_asm.c
>      ../../linux/..asm.c: ctype.h: No such file or directory
>      ../../linux/..asm.c: stdio.h: No such file or directory
>      ../../linux/..asm.c: string.h: No such file or directory
>      ../../linux/..asm.c: stdlib.h: No such file or directory
>      ../../linux/..asm.c: unistd.h: No such file or directory
>      ../../linux/..asm.c: fcntl.h: No such file or directory
>       make[1]  ***[aic7xxx_asm] error 1
>       make[1]: Leaving directory "usr/local/os2/oskit0.96/linux/dev"
>       make:   *** [linux/dev/all.MAKE] error 2
>  
> Upon closer inspection, if you look at the file:
> "/linux/src/drivers/scsi/aic7xxx_asm.c"

That is the sequencer compiler.  It must be compiled and run on
your machine to generate the sequencer code for the oskit driver.
You may try using gcc instead of cc, but cc should work (and be the
same as gcc under Linux).  So it uses the native compiler, not the
"cross compiler" that the rest of the OSKit uses (although in
your case they are the same compiler with different flags).

> It seems that the include commands are missing a directory reference.
> For example:
>        "#include   <ctype.h>"  should read "#include <linux/ctype.h>"

No, that is not correct.  These header files are part of standard C
and they should be found in the locations listed, normally under
/usr/include, not under "linux".

> For 4 of the files that "aic7xxx_asm.c" can't find I believe this would work
> fine.
> But for "stdlib.h" and "stdio.h" these files aren't in "linux/src/include".
> There are 2 files in "oskit/c" (and also "freebsd/src/include") which I am
> tempted to copy over into "linux/src/include", however they in turn depend
> on "types.h", "compiler.h", and "config.h".  

No, neither of those should not be used.  It is necessary to use the host
header files, not the OSKit ones, nor the Linux ones.

> At this point things get a bit messy.  Possibly someone familiar with the OSKit
> would know the correct way to fix this bug, assuming I've followed the
> correct line of reasoning here.

This appears to be a problem with the Linux distribution you are
using.  You may need to add a "-I" parameter to the makefile, but
if the C compiler is properly installed it should find the standard
header files as listed.  These header files are required to compile
pretty much anything under Linux, and I can't imagine they wouldn't
be there, but I'd first make sure you have them in /usr/include.

Kevin T. Van Maren
University of Utah, CSL