How to trim some more fat OpenJDK 8
David Holmes
david.holmes at oracle.com
Thu Feb 27 04:45:00 UTC 2014
Hi Medi,
First note that a JDK and a JRE are two different things. A JDK contains
a JRE plus it has development tools like javac, javap etc. So the jre
subdirectory contains everything in the JRE; and everything above that
is for the JDK. So to minimize things you might want a JRE not a JDK:
build "images" target -> images/j2re-image vs. images/j2sd-image
You control whether debuginfo files are generated, and whether if
present they become zipped (.diz files) using the configure arguments:
--disable-debug-symbols
--disable-zip-debug-info
but note that non-product builds will always generate debug symbols as
that is their primary purpose.
You can also save space by only building one VM eg:
--with-jvm-variants=client (or server if you prefer)
Note sure what --disable-headful will actually save you, but if you
don't care about GUI then you can also look at building the compact
profiles (make target "profiles" -> images/j2re-compact[123]-image)
which produce even smaller JRE's. Compact profiles are only supported on
Linux.
Note that the build will typically build everything but the resulting
images only have a subset of what is built.
HTH,
David
On 27/02/2014 1:22 PM, Medi Montaseri wrote:
> Hi,
>
> I am building OpenJDK 8 for a tight environment and would like to have a very small JDK (or I should say JRE) footprint....sort of like headless but even more.
>
> I would like to do this from the configure(1) as much as possible. And then resort to rm(1).
>
> Here is build result on amd64 Debian 7.3 without any trimming
>
> mmontaseri at griffin:~/work/bug-91383/openjdk8> du -sh *
> 168K bin # these are all symlinks to jvm/bin
> 269M jvm
>
> too much...I need to get down to under 30 Meg. So I build again with
> configure --disable-headful --disable-debug-symbols --disable-zip-debug-info
> and I get the following result
>
> mmontaseri at griffin:~/work/bug-91383/depot2> du -sh *
> 168K bin
> 168M jvm # went down from 296M to 168M
>
> That is good, but not good enough....I then looked around and found about 66 Meg of *.diz files. We don't need these.
>
> Q1- is there any configure option to not produce *.diz files (gdb debug info for .so files). If not, then I have to rm(1) them.
>
> Q2- I see two lib directories under jvm/openjdk-1.8.0-internal
> mmontaseri at griffin:~/work/bug-91383/depot2/jvm/openjdk-1.8.0-internal> du -sh jre/*
> 4.0K jre/ASSEMBLY_EXCEPTION
> 272K jre/bin
> 97M jre/lib
> 20K jre/LICENSE
> 180K jre/THIRD_PARTY_README
> mmontaseri at griffin:~/work/bug-91383/depot2/jvm/openjdk-1.8.0-internal> du -sh lib
> 38M lib
> Can you help me understand the difference between lib/* and jre/lib
>
> I see debian has created a set of packages on OpenJDK 7, like so
> ii openjdk-7-jdk:amd64 7u25-2.3.10-1~deb7u1 amd64 OpenJDK Development Kit (JDK)
> ii openjdk-7-jre:amd64 7u25-2.3.10-1~deb7u1 amd64 OpenJDK Java runtime, using Hotspot JIT
> ii openjdk-7-jre-headless:amd64 7u25-2.3.10-1~deb7u1 amd64 OpenJDK Java runtime, using Hotspot JIT (headless)
> ii openjdk-7-jre-lib 7u25-2.3.10-1~deb7u1 all OpenJDK Java runtime (architecture independent libraries)
>
>
>
> thanks
> Medi
>
More information about the build-dev
mailing list