Skip to content

Commit

Permalink
Merge pull request #14680 from pshipton/build18
Browse files Browse the repository at this point in the history
Add build instructions for jdk18
  • Loading branch information
keithc-ca committed Mar 8, 2022
2 parents 0660567 + 6b81bdb commit e21b7d8
Show file tree
Hide file tree
Showing 5 changed files with 881 additions and 21 deletions.
4 changes: 2 additions & 2 deletions buildenv/aix/jdk17/yum_install_aix-ppc64.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2020, 2021 IBM Corp. and others
# Copyright (c) 2020, 2022 IBM Corp. and others
#
# This program and the accompanying materials are made available under
# the terms of the Eclipse Public License 2.0 which accompanies this
Expand All @@ -18,7 +18,7 @@
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception

# This file installs package dependencies for building OpenJDK V15 with OpenJ9 on AIX 64-bit systems
# This file installs package dependencies for building OpenJDK V17 with OpenJ9 on AIX 64-bit systems
# To use this file, specify `yum shell yum_install_aix-ppc64.txt`

install autoconf-2.69-1.noarch
Expand Down
50 changes: 50 additions & 0 deletions buildenv/aix/jdk18/yum_install_aix-ppc64.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Copyright (c) 2022, 2022 IBM Corp. and others
#
# This program and the accompanying materials are made available under
# the terms of the Eclipse Public License 2.0 which accompanies this
# distribution and is available at https://www.eclipse.org/legal/epl-2.0/
# or the Apache License, Version 2.0 which accompanies this distribution and
# is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# This Source Code may also be made available under the following
# Secondary Licenses when the conditions for such availability set
# forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
# General Public License, version 2 with the GNU Classpath
# Exception [1] and GNU General Public License, version 2 with the
# OpenJDK Assembly Exception [2].
#
# [1] https://www.gnu.org/software/classpath/license.html
# [2] http://openjdk.java.net/legal/assembly-exception.html
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception

# This file installs package dependencies for building OpenJDK V18 with OpenJ9 on AIX 64-bit systems
# To use this file, specify `yum shell yum_install_aix-ppc64.txt`

install autoconf-2.69-1.noarch
install git-2.8.1-1.ppc
install unzip-6.0-3.ppc
install wget-1.17.1-1.ppc
install zip-3.0-2.ppc
install zsh-4.0.4-3.ppc
install gcc-6.3.0-1.ppc
install bc-1.06-2.ppc
install bison-1.875-3.ppc
update bzip2.ppc
install cpio-2.12-2.ppc
update glib2.ppc
install pkg-config-0.19-6.ppc
install freetype2-2.6.3-1.ppc
install gawk-3.1.3-1.ppc
install popt-1.16-3.ppc
update curl.ppc
install pcre-8.33-1.ppc
install wget-1.17.1-1.ppc
install sed-4.1.1-1.ppc
install make-4.1-2.ppc
install libXrender-devel-0.9.8-1waixX11.ppc
install libXft-2.3.2-2waixX11.ppc
install libffi-devel-3.0.12-1.ppc
install cups-devel-2.0.2-2.ppc
install freetype2-devel-2.6.3-1.ppc
run
8 changes: 5 additions & 3 deletions buildenv/docker/mkdocker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

print_license() {
cat <<- EOF
# Copyright (c) 2019, 2021 IBM Corp. and others
# Copyright (c) 2019, 2022 IBM Corp. and others
#
# This program and the accompanying materials are made available under
# the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -200,7 +200,7 @@ validate_options() {
esac
fi

all_versions="8 11 17 next"
all_versions="8 11 17 18 next"
local -A known_version
local version
for version in $all_versions ; do
Expand Down Expand Up @@ -606,7 +606,7 @@ bootjdk_dirs() {
bootjdk_url() {
local jdk_arch=${arch/x86_64/x64}
local jdk_version=$1
if [ $jdk_version -lt 17 ] ; then
if [ $jdk_version -lt 18 ] ; then
echo https://api.adoptopenjdk.net/v3/binary/latest/$jdk_version/ga/linux/$jdk_arch/jdk/openj9/normal/adoptopenjdk
else
echo https://api.adoptium.net/v3/binary/latest/$jdk_version/ga/linux/$jdk_arch/jdk/hotspot/normal/eclipse
Expand All @@ -620,6 +620,8 @@ install_bootjdks() {
for version in $jdk_versions ; do
if [ $version = next ] ; then
wanted[17]=yes
elif [ $version = 18 ] ; then
wanted[17]=yes
else
wanted[$version]=yes
fi
Expand Down
32 changes: 16 additions & 16 deletions doc/build-instructions/Build_Instructions_V17.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,13 +107,13 @@ version used in the build.
export CC=gcc-7 CXX=g++-7
```

3. Download and setup the boot JDK using the latest AdoptOpenJDK v16 build.
3. Download and setup the boot JDK using the latest AdoptOpenJDK v17 build.
```
cd <my_home_dir>
wget -O bootjdk16.tar.gz "https://api.adoptopenjdk.net/v3/binary/latest/16/ga/linux/x64/jdk/openj9/normal/adoptopenjdk"
tar -xzf bootjdk16.tar.gz
rm -f bootjdk16.tar.gz
mv $(ls | grep -i jdk-16) bootjdk16
wget -O bootjdk17.tar.gz "https://api.adoptopenjdk.net/v3/binary/latest/17/ga/linux/x64/jdk/openj9/normal/adoptopenjdk"
tar -xzf bootjdk17.tar.gz
rm -f bootjdk17.tar.gz
mv $(ls | grep -i jdk-17) bootjdk17
```

### 2. Get the source
Expand All @@ -137,9 +137,9 @@ bash get_source.sh
:penguin:
When you have all the source files that you need, run the configure script, which detects how to build in the current build environment.
```
bash configure --with-boot-jdk=/home/jenkins/bootjdks/jdk16
bash configure --with-boot-jdk=/home/jenkins/bootjdks/jdk17
```
:warning: The path in the example `--with-boot-jdk= option` is appropriate for the Docker installation. If you're not using the Docker environment, set the path that's appropriate for your setup, such as `<my_home_dir>/bootjdk16`.
:warning: The path in the example `--with-boot-jdk=` option is appropriate for the Docker installation. If you're not using the Docker environment, set the path that's appropriate for your setup, such as `<my_home_dir>/bootjdk17`.

:pencil: **Mixed and compressed references support:** Different types of 64-bit builds can be created:
- [compressed references](https://www.eclipse.org/openj9/docs/gc_overview/#compressed-references) (only)
Expand Down Expand Up @@ -227,7 +227,7 @@ You must install the following AIX Licensed Program Products (LPPs):
- [xlc/C++ 16](https://www.ibm.com/developerworks/downloads/r/xlcplusaix/)
- x11.adt.ext

You must also install the boot JDK: [Java16_AIX_PPC64](https://api.adoptopenjdk.net/v3/binary/latest/16/ga/aix/ppc64/jdk/openj9/normal/adoptopenjdk).
You must also install the boot JDK: [Java17_AIX_PPC64](https://api.adoptopenjdk.net/v3/binary/latest/17/ga/aix/ppc64/jdk/openj9/normal/adoptopenjdk).

A number of RPM packages are also required. The easiest method for installing these packages is to use `yum`, because `yum` takes care of any additional dependent packages for you.

Expand Down Expand Up @@ -272,7 +272,7 @@ bash get_source.sh
When you have all the source files that you need, run the configure script, which detects how to build in the current build environment.
```
bash configure \
--with-boot-jdk=<path_to_boot_JDK16> \
--with-boot-jdk=<path_to_boot_JDK17> \
--with-cups-include=<cups_include_path> \
--disable-warnings-as-errors
```
Expand Down Expand Up @@ -359,7 +359,7 @@ The following instructions guide you through the process of building a Windows *
You must install a number of software dependencies to create a suitable build environment on your system:

- [Cygwin](https://cygwin.com/install.html), which provides a Unix-style command line interface. Install all packages in the `Devel` category. In the `Archive` category, install the packages `zip` and `unzip`. In the `Utils` category, install the `cpio` package. Install any further package dependencies that are identified by the installer. More information about using Cygwin can be found [here](https://cygwin.com/docs.html).
- [Windows JDK 16](https://api.adoptopenjdk.net/v3/binary/latest/16/ga/windows/x64/jdk/openj9/normal/adoptopenjdk), which is used as the boot JDK.
- [Windows JDK 17](https://api.adoptopenjdk.net/v3/binary/latest/17/ga/windows/x64/jdk/openj9/normal/adoptopenjdk), which is used as the boot JDK.
- [Microsoft Visual Studio 2019](https://aka.ms/vs/16/release/vs_community.exe), which is the default compiler level used by OpenJDK17.
- [Freemarker V2.3.8](https://sourceforge.net/projects/freemarker/files/freemarker/2.3.8/freemarker-2.3.8.tar.gz/download) - only when building with `--with-cmake=no`
- [LLVM/Clang](http://releases.llvm.org/7.0.0/LLVM-7.0.0-win64.exe)
Expand Down Expand Up @@ -438,7 +438,7 @@ bash get_source.sh
When you have all the source files that you need, run the configure script, which detects how to build in the current build environment.
```
bash configure \
--with-boot-jdk=<path_to_boot_JDK16> \
--with-boot-jdk=<path_to_boot_JDK17> \
--disable-warnings-as-errors
```
Note: If you have multiple versions of Visual Studio installed, you can enforce a specific version to be used by setting `--with-toolchain-version`, i.e., by including `--with-toolchain-version=2019` option in the configure command.
Expand Down Expand Up @@ -523,7 +523,7 @@ The following instructions guide you through the process of building a macOS **O
You must install a number of software dependencies to create a suitable build environment on your system (the specified versions are minimums):

- [Xcode 10.3, use >= 11.4.1 to support code signing](https://developer.apple.com/download/more/) (requires an Apple account to log in).
- [macOS JDK 16](https://api.adoptopenjdk.net/v3/binary/latest/16/ga/mac/x64/jdk/openj9/normal/adoptopenjdk), which is used as the boot JDK.
- [macOS JDK 17](https://api.adoptopenjdk.net/v3/binary/latest/17/ga/mac/x64/jdk/openj9/normal/adoptopenjdk), which is used as the boot JDK.

The following dependencies can be installed by using [Homebrew](https://brew.sh/) (the specified versions are minimums):

Expand Down Expand Up @@ -584,7 +584,7 @@ bash get_source.sh
When you have all the source files that you need, run the configure script, which detects how to build in the current build environment.

```
bash configure --with-boot-jdk=<path_to_boot_JDK16>
bash configure --with-boot-jdk=<path_to_boot_JDK17>
```

:pencil: Modify the path for the macOS boot JDK that you installed in step 1. If `configure` is unable to detect Freetype, add the option `--with-freetype=<path to freetype>`, where `<path to freetype>` is typically `/usr/local/Cellar/freetype/2.9.1/`.
Expand Down Expand Up @@ -685,7 +685,7 @@ bash get_source.sh
You must install a number of software dependencies to create a suitable build environment on your AArch64 Linux system:

- GNU C/C++ compiler (The Docker image uses GCC 7.5)
- [AArch64 Linux JDK](https://api.adoptopenjdk.net/v3/binary/latest/16/ga/linux/aarch64/jdk/openj9/normal/adoptopenjdk), which is used as the boot JDK.
- [AArch64 Linux JDK](https://api.adoptopenjdk.net/v3/binary/latest/17/ga/linux/aarch64/jdk/openj9/normal/adoptopenjdk), which is used as the boot JDK.
- [Freemarker V2.3.8](https://sourceforge.net/projects/freemarker/files/freemarker/2.3.8/freemarker-2.3.8.tar.gz/download) - Only when building with `--with-cmake=no`

See [Setting up your build environment without Docker](#setting-up-your-build-environment-without-docker) in [Linux section](#linux) for other dependencies to be installed.
Expand Down Expand Up @@ -725,8 +725,8 @@ bash configure --openjdk-target=${OPENJ9_CC_PREFIX} \
--with-freetype-include=${OPENJ9_CC_DIR}/${OPENJ9_CC_PREFIX}/libc/usr/include/freetype2 \
--with-freetype-lib=${OPENJ9_CC_DIR}/${OPENJ9_CC_PREFIX}/libc/usr/lib \
--with-freemarker-jar=/root/freemarker.jar \
--with-boot-jdk=/root/bootjdk11 \
--with-build-jdk=/root/bootjdk11 \
--with-boot-jdk=/root/bootjdk17 \
--with-build-jdk=/root/bootjdk17 \
--with-cmake=no \
--disable-warnings-as-errors \
--disable-ddr
Expand Down

0 comments on commit e21b7d8

Please sign in to comment.