Gentoo overlay to bootstrap OpenJDK/Rust/Go
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Andrius Štikonas 66ea9d7e13 rust: add 1.44.1. 2 weeks ago
dev-java java: yet another musl patch. 2 months ago
dev-lang rust: add 1.44.1. 2 weeks ago
metadata Add openjdk:9 and openjdk:10 ebuilds for bootstrapping openjdk:11 10 months ago
profiles Change repository name to comply with PMS. 3 months ago
virtual dev-java/jamvm: add aarch64 patches. 2 months ago Update README. 2 months ago
bootstrap.conf rename the repo to gentoo-bootstrap. 4 months ago

Bootstrapping OpenJDK 8

# If you are on arm64, you first need to unmask app-arch/fastjar
sudo emerge -a1v =dev-java/icedtea-3.7.0
sudo emerge -av dev-java/openjdk:8
sudo emerge -a --depclean # Remove old software that was used for bootstrapping

Note: you need to do it in two steps as currently ant-core:bootstrap is not co-installable with ant-core:0 from the Gentoo tree.

Bootstrapping OpenJDK 11

sudo emerge -a1v =dev-java/openjdk-11.0.5_p10

At this point you can remove this overlay and install OpenJDK from main tree:

sudo emerge -a dev-java/openjdk:11

Bootstrapping story

We first compile fastjar and jikes java compiler both of which are written in C++. This is enough to compile an old version of GNU Classpath 0.93. Then we compile an old version of JamVM 1.5.1. This serves as our initial Java Runtime Environment.

We use this to compile ant 1.8.1 which then allows us to build ecj-3.2. This allows us to compile GNU Classpath 0.99 which comes with more java tools (e.g. javah). Then we compile JamVM 2.0.0. This serves as our second Java environment.

Finally, we compile git snapshot of GNU Classpath which has a much better support for Java 1.6. Then we compile a slightly patched ecj-4.2. Together with JamVM 2.0.0 this will serve as Java environment that can bootstrap Icedtea 2 (Java 7). Unfortunately, I was only able to build Java 7 with JamVM as VM (which is slower), Hotspot build failed. JamVM with OpenJDK 7 classes can build Icedtea 3 with Hotspot VM.