On Monday 29 May 2006 15:21, Matthew Toseland wrote:
> Immediate priorities:
> ...
> 4. Work on GCJ/Kaffe/whatever support.
If this is still necessary / relevant after today's changes, I did quite a bit
of work on GCJ building over the weekend. Attached is a modified
build_binary.xml buildfile form the one in svn. The old one tried to link
against gnu-crypto libraries, but I'm guessing not many people have them
(although it did still download gnu-crypto and then not use it...)
The GCJ build seems to max out the CPU for a good few seconds before returning
any document, whereas on Sun Java I can browse between pages on my site
pretty much instantly (same delay happens with GIJ, but longer). I'm guessing
it's severely un-optimised crypto or FEC.
Dave
> --
> Matthew J Toseland - [EMAIL PROTECTED]
> Freenet Project Official Codemonkey - http://freenetproject.org/
> ICTHUS - Nothing is impossible. Our Boss says so.
>
<?xml version="1.0"?>
<project name="Freenet_binary" default="dist_gcj" basedir=".">
<description>
This file builds freenet... as a binary :p
</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="lib" location="lib"/>
<property name="bin" location="bin"/>
<property name="freenet-cvs-snapshot.location" location="${lib}/freenet-cvs-snapshot.jar"/>
<property name="freenet-ext.location" location="${lib}/freenet-ext.jar"/>
<property name="gnu-crypto.location" location="${lib}/gnu-crypto.jar"/>
<property name="compiler_optim" value="-O3"/>
<property name="compiler_arch" value="-march=pentium2"/>
<target name="env_gcj" description="Learn about the environment">
<mkdir dir="${bin}"/>
<mkdir dir="${build}"/>
<mkdir dir="${lib}"/>
<mkdir dir="misc"/>
<available file="${lib}/gnu-crypto.jar" property="gnu-crypto.present"/>
<available file="${lib}/freenet-cvs-snapshot.jar" property="freenet.present"/>
<available file="${lib}/freenet-ext.jar" property="freenet-ext.present"/>
<available file="${bin}/gnu-crypto.o" property="gnu-crypto-bin.present"/>
<available file="${bin}/freenet-ext.o" property="freenet-ext-bin.present"/>
</target>
<target name="get-gnu-crypto" depends="env_gcj" unless="gnu-crypto.present">
<get src="ftp://ftp.gnu.org/gnu/gnu-crypto/gnu-crypto-2.1.0-bin.zip"
dest="misc/gnu-crypto-2.1.0-bin.zip"
verbose="true"
usetimestamp="true"/>
<unzip src="misc/gnu-crypto-2.1.0-bin.zip" dest="misc"/>
<move todir="lib">
<fileset dir="misc/gnu-crypto-2.1.0-bin/lib/">
<include name="gnu-crypto.jar"/>
</fileset>
</move>
<property name="gnu-crypto.present" value="true"/>
<property name="javax-crypto.present" value="true"/>
<property name="javax-security.present" value="true"/>
</target>
<target name="get-release" depends="env_gcj" unless="freenet.present"
description="Download FRED">
<exec executable="ant" failonerror="true"/>
<property name="freenet.present" value="true"/>
<property name="freenet-ext.present" value="true"/>
</target>
<target name="get-extjar" depends="env_gcj" unless="freenet-ext.present"
description="Download some external libraries which Freenet relies on">
<get src="http://downloads.freenetproject.org/alpha/freenet-ext.jar"
dest="${freenet-ext.location}"
verbose="true"
usetimestamp="true"/>
<property name="freenet-ext.present" value="true"/>
</target>
<!-- ================================================== -->
<target name="compile_ext" depends="get-release,get-extjar,get-gnu-crypto" unless="freenet-ext-bin.present">
<!-- Create the time stamp -->
<tstamp/>
<echo message="Compiling freenet-ext.jar"/>
<exec executable="gcj" failonerror="true">
<arg value="-c"/>
<arg value="${compiler_optim}"/>
<arg value="${compiler_arch}"/>
<arg value="-fno-bounds-check"/>
<arg value="-fno-store-check"/>
<arg value="-fjni"/>
<arg value="-o"/>
<arg value="${bin}/freenet-ext.o"/>
<arg value="-I${lib}/freenet-cvs-snapshot.jar"/>
<arg value="-I${lib}/freenet-ext.jar"/>
<arg value="-I${gnu-crypto.location}"/>
<arg value="-I${javax-crypto.location}"/>
<arg value="-I${javax-security.location}"/>
<arg value="${lib}/freenet-ext.jar"/>
</exec>
</target>
<target name="compile_freenet" depends="get-release,get-extjar,get-gnu-crypto">
<tstamp/>
<echo message="Compiling freenet-cvs-snapshot.jar"/>
<exec executable="gcj" failonerror="true">
<arg value="-c"/>
<arg value="${compiler_optim}"/>
<arg value="${compiler_arch}"/>
<arg value="-fno-bounds-check"/>
<arg value="-fno-store-check"/>
<arg value="-fjni"/>
<arg value="-o"/>
<arg value="${bin}/freenet-cvs-snapshot.o"/>
<arg value="-I${lib}/freenet-cvs-snapshot.jar"/>
<arg value="-I${lib}/freenet-ext.jar"/>
<arg value="-I${gnu-crypto.location}"/>
<arg value="-I${javax-crypto.location}"/>
<arg value="-I${javax-security.location}"/>
<arg value="${lib}/freenet-cvs-snapshot.jar"/>
</exec>
</target>
<target name="compile_gnu_crypto" depends="get-gnu-crypto" unless="gnu-crypto-bin.present">
<tstamp/>
<echo message="Compiling gnu-crypto.jar"/>
<exec executable="gcj" failonerror="true">
<arg value="-c"/>
<arg value="${compiler_optim}"/>
<arg value="${compiler_arch}"/>
<arg value="-fno-bounds-check"/>
<arg value="-fno-store-check"/>
<arg value="-fjni"/>
<arg value="-o"/>
<arg value="${bin}/gnu-crypto.o"/>
<arg value="-I${gnu-crypto.location}"/>
<arg value="${lib}/gnu-crypto.jar"/>
</exec>
</target>
<!-- ================================================== -->
<target name="link_gcj" depends="compile_ext,compile_freenet,compile_gnu_crypto"
description="generate the distribution" >
<!-- <echo message="Extracting libs from freenet-ext.jar"/> -->
<!-- <unzip src="${lib}/freenet-ext.jar" dest="${bin}"/> -->
<echo message="Linking"/>
<exec executable="gcj" failonerror="true">
<arg value="-combine"/>
<arg value="${compiler_optim}"/>
<arg value="${compiler_arch}"/>
<arg value="-fno-bounds-check"/>
<arg value="-fno-store-check"/>
<arg value="-fjni"/>
<arg value="-o"/>
<arg value="freenet"/>
<arg value="--main=freenet.node.Node"/>
<arg value="-I${lib}/freenet-cvs-snapshot.jar"/>
<arg value="-I${lib}/freenet-ext.jar"/>
<arg value="-I${gnu-crypto.location}"/>
<!-- <arg value="-L${bin}/lib/linux/x86/"/> -->
<!-- <arg value="-L${bin}/net/i2p/util/"/> -->
<!-- <arg value="-lfec16"/> -->
<!-- <arg value="-lfec8"/> -->
<!-- <arg value="-ljbigi-linux-athlon"/> -->
<arg value="${bin}/gnu-crypto.o"/>
<arg value="${bin}/freenet-ext.o"/>
<arg value="${bin}/freenet-cvs-snapshot.o"/>
</exec>
</target>
<target name="dist_gcj" depends="link_gcj"
description="generate the distribution" />
<!-- ================================================== -->
<target name="clean" description="Delete class files and docs dir.">
<delete dir="${build}"/>
<delete dir="${bin}"/>
<delete file="freenet"/>
<delete file="*.o"/>
</target>
<target name="distclean" description="Delete class files, lib dir and docs dir.">
<delete dir="${build}"/>
<delete dir="${bin}"/>
<delete dir="${lib}"/>
<delete dir="misc"/>
<delete file="freenet"/>
<delete file="*.o"/>
</target>
</project>
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl