forked from I2P_Developers/i2p.i2p
- Replace old non-PIC 62-bit linux libs (GMP 4.1.4 built in 2005) with PIC libs built with GMP 5.0.2. License is LGPLv3. Built by sponge with GCC 4.4.4, downloaded from http://sponge.i2p/files/jbigi/gmp-5.0.2/ For 64-bit processors, both performance testing and the GMP changelog led us to use 5.0.2 for both the 32- and 64-bit versions, even though the files are twice as big. See http://zzz.i2p/topics/306 for discussion and test results. libjbigi-linux-athlon64.so was a 64 bit file; by the new naming standard supported by NativeBigInteger, it is now a 32-bit file and the 64-bit one is libjbigi-linux-athlon64_64.so. All new 64-bit libs will have _64 appended. - Update build docs
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
|
|
Dynamic library build
|
|
=====================
|
|
|
|
If you have a libgmp.so installed on your system already
|
|
(check in /usr/lib), you can build a dynamically linked libjbigi.so as follows:
|
|
cd jbigi
|
|
build.sh dynamic
|
|
You do, of course, need the gmp headers installed.
|
|
On ubuntu, check for libgmp3 and libgmp3-dev packages.
|
|
This is much easier and faster than building GMP from source.
|
|
|
|
|
|
Static library build
|
|
=====================
|
|
|
|
Otherwise, the build script build.sh will download the the GMP source,
|
|
unpack and build it. The GMP version and download location are configured
|
|
in jbigi/build.sh, please review it to ensure you download
|
|
and build the desired version.
|
|
|
|
To build the native jbigi and jcpuid libraries for the current host CPU,
|
|
simply run sh build.sh and the results will be packaged up into jbigi.jar
|
|
and the libjbigi.so library.
|
|
|
|
To build the native jbigi libraries for all supported CPUs (on the current OS),
|
|
go into jbigi/ and run build-all.sh (the results will be under jbigi/lib/)
|
|
|
|
|
|
Installation and testing
|
|
========================
|
|
|
|
To test, copy jbigi/lib/libjbigi.so
|
|
and jcpuid/lib/freenet/support/CPUInformation/libjcpuid-*.so
|
|
to your i2p installation directory ($I2P). You may also copy jbigi.jar to the $I2P/lib/ directory;
|
|
it will be used only if the router fails to load the native library
|
|
from the I2P installation directory.
|
|
|
|
The build.sh script runs two speed tests, one with your existing
|
|
I2P installation and one with the new libjbigi.
|
|
|
|
Alternatively, after copying the files to the i2p/ directory,
|
|
to run a speed test comparing the native library to the java library,
|
|
run the shell script below. Adjust the I2P= line as necessary.
|
|
|
|
-----------------
|
|
|
|
#!/bin/sh
|
|
export I2P=~/i2p
|
|
java -cp $I2P/lib/i2p.jar:$I2P/lib/jbigi.jar net.i2p.util.NativeBigInteger
|