[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