* JBigI:
- 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
This commit is contained in:
@ -1,27 +1,41 @@
|
|||||||
|
|
||||||
|
Dynamic library build
|
||||||
|
=====================
|
||||||
|
|
||||||
If you have a libgmp.so installed on your system already
|
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:
|
(check in /usr/lib), you can build a dynamically linked libjbigi.so as follows:
|
||||||
cd jbigi
|
cd jbigi
|
||||||
build.sh dynamic
|
build.sh dynamic
|
||||||
The built library is jbigi/lib/libjbigi.so .
|
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.
|
||||||
|
|
||||||
Otherwise, prior to building the jbigi library, you will need to fetch the GMP source
|
|
||||||
from http://www.swox.com/gmp/, saving it to jbigi/gmp-4.2.2.tar.bz2 (it will
|
|
||||||
be unpacked and built as necessary).
|
|
||||||
|
|
||||||
Version 4.2.2 has not been extensively tested with I2P. If you would like
|
Static library build
|
||||||
to use a well-tested version, get gmp-4.1.4.tar.bz2, and edit jbigi/build.sh
|
=====================
|
||||||
to change the version number.
|
|
||||||
|
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,
|
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
|
simply run sh build.sh and the results will be packaged up into jbigi.jar
|
||||||
and the libjbigi.so library. To test, copy jbigi/lib/libjbigi.so
|
and the libjbigi.so library.
|
||||||
and jcpuid/lib/freenet/support/CPUInformation/libjcpuid-*.so
|
|
||||||
to your i2p/ directory. You can also copy jbigi.jar to the i2p/lib/ directory;
|
|
||||||
it will be used only if the router fails to load the native library.
|
|
||||||
|
|
||||||
To build the native jbigi libraries for all supported CPUs (on the current OS),
|
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/)
|
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
|
The build.sh script runs two speed tests, one with your existing
|
||||||
I2P installation and one with the new libjbigi.
|
I2P installation and one with the new libjbigi.
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Execute the build.sh script to produce jbigi library files optimized for a numbe
|
|||||||
|
|
||||||
TODO: What is jbigi
|
TODO: What is jbigi
|
||||||
TODO: Document generated folder structure
|
TODO: Document generated folder structure
|
||||||
TODO: Instructions for adding the libraries to a jar
|
|
||||||
|
|
||||||
Linux-specific information:
|
Linux-specific information:
|
||||||
===========================
|
===========================
|
||||||
@ -18,7 +18,7 @@ Then do 'build.sh dynamic'. This will do a quick build using your installed libg
|
|||||||
and then test it and the jbigi in your I2P installation to see which is faster.
|
and then test it and the jbigi in your I2P installation to see which is faster.
|
||||||
|
|
||||||
If the new jbigi is slower, then run 'build.sh' (without the 'dynamic'), which will download
|
If the new jbigi is slower, then run 'build.sh' (without the 'dynamic'), which will download
|
||||||
the 4.3.1 libgmp library, build, and test that.
|
the libgmp library, build, and test that.
|
||||||
|
|
||||||
|
|
||||||
Windows-specific information:
|
Windows-specific information:
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
NOTE: This file may not be maintained.
|
||||||
|
See history.txt, checkin comments, javadoc, and code in
|
||||||
|
NativeBigInteger.java and CPUID.java for additional information.
|
||||||
|
See NativeBigInteger.java for naming rules and algorithms for
|
||||||
|
generating an ordered list of names to load.
|
||||||
|
|
||||||
|
================================
|
||||||
|
|
||||||
jbigi.jar was built by jrandom on Aug 21, 2004 with the jbigi and jcpuid
|
jbigi.jar was built by jrandom on Aug 21, 2004 with the jbigi and jcpuid
|
||||||
native libraries compiled on linux, winXP (w/ MinGW), and freebsd (4.8).
|
native libraries compiled on linux, winXP (w/ MinGW), and freebsd (4.8).
|
||||||
The GMP code in jbigi is from GMP-4.1.3 (http://www.swox.com/gmp/), and
|
The GMP code in jbigi is from GMP-4.1.3 (http://www.swox.com/gmp/), and
|
||||||
@ -23,3 +31,29 @@ being compiled by jrandom on linux/p4 (cross compiled to --host=viac3)
|
|||||||
On Feb 27, 2006, jbigi-win-athlon.dll was copied to jbigi-win-athlon64.dll,
|
On Feb 27, 2006, jbigi-win-athlon.dll was copied to jbigi-win-athlon64.dll,
|
||||||
as it should offer amd64 users better performance than jbigi-win-none.dll
|
as it should offer amd64 users better performance than jbigi-win-none.dll
|
||||||
until we get a full amd64 build.
|
until we get a full amd64 build.
|
||||||
|
|
||||||
|
================================
|
||||||
|
|
||||||
|
Updates May/June 2011:
|
||||||
|
jcpuid:
|
||||||
|
- jcpuid.c updated to be compatible with -fPIC
|
||||||
|
- 32 bit libjcpuid-linux-x86.so updated, compiled with -fPIC.
|
||||||
|
- 64 bit libjcpuid-linux-x86_64.so added, compiled with -fPIC.
|
||||||
|
- See also javadoc and code in CPUID.java
|
||||||
|
jbigi:
|
||||||
|
- k62 and k63 are identical for all except windows; exception added to
|
||||||
|
NativeBigInteger to use k62 for k63. k63 files deleted.
|
||||||
|
- All 32 bit linux files updated with GMP 4.3.2, compiled with -fPIC,
|
||||||
|
except for athlon64 and pentium4, which use GMP 5.0.2.
|
||||||
|
- All 64 bit linux files updated with GMP 5.0.2.
|
||||||
|
- libjbigi-windows-athlon64.dll deleted, it was a duplicate of
|
||||||
|
libjbigi-windows-athlon.dll. NativeBigInteger now uses athlon as
|
||||||
|
a fallback for all 64-bit processors.
|
||||||
|
- Note that all new 64 bit files will use the _64 suffix. For example,
|
||||||
|
the old libjbigi-linux-athlon64.so file was 64 bit; now it is 32 bit
|
||||||
|
and the 64 bit file is libjbigi-linux-athlon64_64.so.
|
||||||
|
- The 4.3.2 files are half the size of the 5.0.2 files, and there was
|
||||||
|
little or no performance difference for 32 bit, so we are using
|
||||||
|
4.3.2 for 32 bit. 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.
|
||||||
|
- See also checkin comments, javadoc and code in NativeBigInteger.java
|
||||||
|
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-athlon64_64.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-athlon64_64.so
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-none_64.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-none_64.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
installer/lib/jbigi/libjbigi-linux-pentium4_64.so
Normal file
BIN
installer/lib/jbigi/libjbigi-linux-pentium4_64.so
Normal file
Binary file not shown.
Reference in New Issue
Block a user