> Thank for the heads-up warning. I'll put off loading another version of
> Linux. Who has a compiler that works? What compiler are we supposed to use?

        I wrote the code and hadn't had problems with it.  (Obviously.)  
My g++ version is egcs-2.91.66.  I'd strongly recommend fetching a new
compiler.  I went ahead and checked the jos1f distribution; it compiled
and ran JJOS just fine.  The seventh console (alt+f7) is a VGA console,
though I didn't check which mode it runs in, and the mode switching is
very, very, slow.  I'll look into why tonight.

        Specifically about the compiler errors:

../../../common/nativecode/jbheap.cc: In function `void getRoots()':
../../../common/nativecode/jbheap.cc:514: invalid use of void expression

        egcs warns about non-ANSI void pointers arithmetic here; if you
can't find a compiler switch to turn this back to an error for your
compiler, feel free to cast the pointers to char * before doing math on
them.

        The errors reported in java_object.cc are all scoping bugs or
problems.  (Either in egcs 2.91.66 or in your compiler, whatever it may
happen to be.)  A brute-force solution is to replace every instance of
'jbArray::T_' with jbArray< x >::T_, where x is the type as declared in
the function header.  Or, if you feel like doing a bit more
code-rewriting, you can pull the enumeration out of jbArray.  Since I
included the type in the header, it's possible that not requiring it in
the body is an egcs 2.91.66-specific misfeature.

        I did not take concious advantage of whatever non-ANSI C++
features are available in egcs, so other compilers should work just fine.
There are a few places where we might run into trouble where we ignore
warnings generated by -Wall, but those shouldn't be hard to fix.  Just for
kicks, I ran g++ with -pedantic (ANSI-strict).  I got the following
warnings about "commas at the end of enumerator list" in various places,
and the following:

../../../common/decaf/scheduler.cc:377: warning: text following `#endif' violates ANSI 
standard
../../../common/decaf/interp.cc:443: warning: ANSI C++ forbids variable-size array 
`argument'
../../../common/decaf/interp.cc:546: warning: ANSI C++ forbids variable-size array 
`argument'
../../../common/decaf/interp.cc:666: warning: ANSI C++ forbids variable-size array 
`argument'
../../../common/decaf/interp.cc:778: warning: ANSI C++ forbids variable-size array 
`argument'
../../../common/decaf/java_object.cc:205: warning: default argument given for 
parameter 3 of `java_object_array::java_object_array(class java_class *, jju32, jju32 
= 1)'
../../../common/decaf/java_object.h:63: warning: after previous specification in 
`java_object_array::java_object_array(class java_class *, jju32, jju32 = 1)'
../../../common/nativecode/jbheap.cc:514: warning: ANSI C++ forbids using pointer of 
type `void *' in subtraction
../../../common/nativecode/jbmachin.cc:130: warning: ANSI C++ forbids zero-size array 
`link'
../../../common/nativecode/jbzipfile.h:68: warning: ANSI C++ forbids zero-size array 
`myFilename'
../../../common/nativecode/jbzipfile.h:69: warning: ANSI C++ forbids zero-size array 
`myExtraField'
../../../common/nativecode/jbtypes.cc:329: warning: ANSI C++ does not support `long 
long'
../../../common/nativecode/jbzipfile.h:68: warning: ANSI C++ forbids zero-size array 
`myFilename'
../../../common/nativecode/jbzipfile.h:69: warning: ANSI C++ forbids zero-size array 
`myExtraField'
jjmachin.cc:54: warning: ANSI C++ forbids using pointer of type `void *' in arithmetic
jjmachin.cc:54: warning: ANSI C++ forbids using pointer of type `void *' in arithmetic
jjramdisk.cc:63: warning: ANSI C++ forbids implicit conversion from `void *' in 
initialization

        None of which look like they'd be a problem* if your compiler
doesn't support these 'extensions'.

-_Quinn

* to get around long-long, just activate jdouble-as-class support




_______________________________________________
Kernel maillist  -  [EMAIL PROTECTED]
http://jos.org/mailman/listinfo/kernel

Reply via email to