> 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