[kaffe] build no-awt no-sound

Dalibor Topic robilad at kaffe.org
Tue Feb 1 10:30:02 PST 2005


Nektarios K. Papadopoulos wrote:
> Hi Dalibor,
> 
> Thanks a lot. All works fine now.
> Please find attached a patch for FAQ/FAQ.classlibrary-compile to add a 
> simple note about this.

Great! Thank you very much for the patch, patches to improve the 
documentation are very appreciated.

> BTW, a long time ago kaffe used to have a more convenient way to define 
> class library profiles. You had groups of associated classes organized 
> in sub-profiles (e.g. awt.files, xml.files, security.files etc) which 
> one could include in the top level profile file. Some months ago this 
> functionality disappeared.

Yeah. I found myself spending a lot of time updating the profiles, and 
shuffling filenames around to make things work, for what I percieved as 
rather small benefit: the main benefit for me was being able to build 
the class library in several passes for machines with little memory, 
like my old developement box.

I eventually guessed that most people working on embedded devices can 
pre-compile rt.jar on a fast box with enough memory, so that they then 
can just use the pre-built rt.jar in the cross-compilation step. So I 
radically simplified the profile setup, while keeping it still useful, I 
hope.

> Additionally, I am having a hard time tracking of new class files added 
> and old class files removed during the (most welcomed) resync with 
> classpath process.

What worked for me to quickly generate a profile was to take the handful 
of classes I was really interested in having in my profile was this:

cd kaffe-source/libraries/javalib
jikes -d /tmp/topic/mimimal-profile/ java/lang/Object.java
cd /tmp/topic/mimimal-profile/
find [cgjko]*/ -name "*.class" | grep -v "\\$" | sed 
's/\.class/\.java/g' > minimal.profile

Then one needs to weed out the badly named inner classes from the 
profile, as some classes that should be in separate files because they 
are not inner classes are not (and patches to make them so would be cool 
for GNU Classpath).

The list I get is

*** Semantic Error: The input file "gnu/regexp/CharUnit.java" was not found.
*** Semantic Error: The input file "gnu/regexp/IntPair.java" was not found.
*** Semantic Error: The input file "java/lang/SecurityContext.java" was 
not found.
*** Semantic Error: The input file "java/lang/MathRandom.java" was not 
found.
*** Semantic Error: The input file "java/io/ValidatorAndPriority.java" 
was not found.
*** Semantic Error: The input file "java/io/MemberComparator.java" was 
not found.
*** Semantic Error: The input file "java/io/InterfaceComparator.java" 
was not found.
*** Semantic Error: The input file "java/util/SubList.java" was not found.
*** Semantic Error: The input file "java/util/RandomAccessSubList.java" 
was not found.
*** Semantic Error: The input file "java/security/PermissionsHash.java" 
was not found.
*** Semantic Error: The input file 
"java/security/AllPermissionCollection.java" was not found.
*** Semantic Error: The input file 
"java/security/BasicPermissionCollection.java" was not found.
*** Semantic Error: The input file "java/text/MessageFormatElement.java" 
was not found.

I think we should just make them static inner classes in classpath, or 
move them to the appropriate gnu.* utility packages. We should discuss 
this on the classpath mailing list.

Once one removes those annoying non-existant file names from 
minimal.profile it compiles with jikes into the 'interdepenant set' of 
classes in the profile.

You may have to add

java/lang/OutOfMemoryError.java
java/lang/ref/PhantomReference.java
java/lang/StackOverflowError.java
java/lang/ref/SoftReference.java

to your minimal.profile, because these classes are not in the 
inter-dependant set of java.lang.Object atm, but are nevertheless 
explicitely loaded by Kaffe on startup.

cheers,
dalibor topic




More information about the kaffe mailing list