f8878cb0cc
Reviewed-by: jjg, weijun, naoto, erikj, prr, alanb, mchung
78 lines
4.5 KiB
Bash
78 lines
4.5 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License version 2 only, as
|
|
# published by the Free Software Foundation. Oracle designates this
|
|
# particular file as subject to the "Classpath" exception as provided
|
|
# by Oracle in the LICENSE file that accompanied this code.
|
|
#
|
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
# version 2 for more details (a copy is included in the LICENSE file that
|
|
# accompanied this code).
|
|
#
|
|
# You should have received a copy of the GNU General Public License version
|
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
#
|
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
# or visit www.oracle.com if you need additional information or have any
|
|
# questions.
|
|
#
|
|
|
|
# This script allows to easily generate (add or update) "--release N" data for JDK N + 1.
|
|
# N must be 11 or greater. This script works on Linux. To create new data, or update existing
|
|
# data, it is necessary to:
|
|
# - download a binary build of OpenJDK N for Linux, API of which will be recorded. It is strongly recommended
|
|
# to use an official build, not a custom build, to avoid any chance of including unofficial changes.
|
|
# The binary build should never be a build newer than the GA for JDK N. Install the build. The installation
|
|
# directory will be denoted as "${JDK_N_INSTALL}" in the further text.
|
|
# - have a checkout the JDK to which the data should be added (or in which the data should be updated).
|
|
# The checkout directory will be denoted as "${JDK_CHECKOUT}" in the further text.
|
|
# The checkout must not have any local changes that could interfere with the new data. In particular,
|
|
# there must be absolutely no changed, new or removed files under the ${JDK_CHECKOUT}/src/jdk.compiler/share/data/symbols
|
|
# directory.
|
|
# - open a terminal program and run these commands:
|
|
# cd "${JDK_CHECKOUT}"/src/jdk.compiler/share/data/symbols
|
|
# bash ../../scripts/generate-symbol-data.sh "${JDK_N_INSTALL}"
|
|
# - this command will generate or update data for "--release N" into the ${JDK_CHECKOUT}/src/jdk.compiler/share/data/symbols
|
|
# directory, updating all registration necessary. If the goal was to update the data, and there are no
|
|
# new or changed files in the ${JDK_CHECKOUT}/src/jdk.compiler/share/data/symbols directory after running this script,
|
|
# there were no relevant changes and no further action is necessary. Note that version for N > 9 are encoded
|
|
# using capital letters, i.e. A represents version 10, B represents 11, and so on. The version numbers are in
|
|
# the names of the files in the ${JDK_CHECKOUT}/src/jdk.compiler/share/data/symbols directory, as well as in
|
|
# the ${JDK_CHECKOUT}/src/jdk.compiler/share/data/symbols/symbols file.
|
|
# - if there are any changed/new files in the ${JDK_CHECKOUT}/src/jdk.compiler/share/data/symbols directory after running this script,
|
|
# then all the changes in this directory, including any new files, need to be sent for review and eventually pushed.
|
|
# The commit message should specify which binary build was installed in the ${JDK_N_INSTALL} directory and also
|
|
# include the SCM state that was used to build it, which can be found in ${JDK_N_INSTALL}/release,
|
|
# in property "SOURCE".
|
|
|
|
if [ "$1x" = "x" ] ; then
|
|
echo "Must provide the target JDK as a parameter:" >&2
|
|
echo "$0 <target-jdk>" >&2
|
|
exit 1
|
|
fi;
|
|
|
|
if [ ! -f symbols ] ; then
|
|
echo "Must run inside the src/jdk.compiler/share/data/symbols directory" >&2
|
|
exit 1
|
|
fi;
|
|
|
|
if [ "`git status --porcelain=v1 .`x" != "x" ] ; then
|
|
echo "The src/jdk.compiler/share/data/symbols directory contains local changes!" >&2
|
|
exit 1
|
|
fi;
|
|
|
|
$1/bin/java --add-exports jdk.jdeps/com.sun.tools.classfile=ALL-UNNAMED \
|
|
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
|
|
--add-exports jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
|
|
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
|
--add-modules jdk.jdeps \
|
|
../../../make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java \
|
|
build-description-incremental symbols include.list
|