53695
+ − 1
#!/bin/sh
+ − 2
#
+ − 3
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ − 4
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ − 5
#
+ − 6
# This code is free software; you can redistribute it and/or modify it
+ − 7
# under the terms of the GNU General Public License version 2 only, as
+ − 8
# published by the Free Software Foundation. Oracle designates this
+ − 9
# particular file as subject to the "Classpath" exception as provided
+ − 10
# by Oracle in the LICENSE file that accompanied this code.
+ − 11
#
+ − 12
# This code is distributed in the hope that it will be useful, but WITHOUT
+ − 13
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 14
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 15
# version 2 for more details (a copy is included in the LICENSE file that
+ − 16
# accompanied this code).
+ − 17
#
+ − 18
# You should have received a copy of the GNU General Public License version
+ − 19
# 2 along with this work; if not, write to the Free Software Foundation,
+ − 20
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ − 21
#
+ − 22
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ − 23
# or visit www.oracle.com if you need additional information or have any
+ − 24
# questions.
+ − 25
#
+ − 26
+ − 27
# This script allows to easily generate (add or update) "--release N" data for JDK N + 1.
+ − 28
# N must be 11 or greater. This script works on Linux. To create new data, or update existing
+ − 29
# data, it is necessary to:
+ − 30
# - download a binary build of OpenJDK N for Linux, API of which will be recorded. It is strongly recommended
+ − 31
# to use an official build, not a custom build, to avoid any chance of including unofficial changes.
+ − 32
# The binary build should never be a build newer than the GA for JDK N. Install the build. The installation
+ − 33
# directory will be denoted as "${JDK_N_INSTALL}" in the further text.
+ − 34
# - have a checkout the JDK to which the data should be added (or in which the data should be updated).
+ − 35
# The checkout directory will be denoted as "${JDK_CHECKOUT}" in the further text.
+ − 36
# The checkout must not have any local changes that could interfere with the new data. In particular,
+ − 37
# there must be absolutely no changed, new or removed files under the ${JDK_CHECKOUT}/make/data/symbols
+ − 38
# directory.
+ − 39
# - open a terminal program and run these commands:
+ − 40
# cd "${JDK_CHECKOUT}"/make/data/symbols
+ − 41
# bash ../../scripts/generate-symbol-data.sh "${JDK_N_INSTALL}"
+ − 42
# - this command will generate or update data for "--release N" into the ${JDK_CHECKOUT}/make/data/symbols
+ − 43
# directory, updating all registration necessary. If the goal was to update the data, and there are no
+ − 44
# new or changed files in the ${JDK_CHECKOUT}/make/data/symbols directory after running this script,
+ − 45
# there were no relevant changes and no further action is necessary. Note that version for N > 9 are encoded
+ − 46
# using capital letters, i.e. A represents version 10, B represents 11, and so on. The version numbers are in
+ − 47
# the names of the files in the ${JDK_CHECKOUT}/make/data/symbols directory, as well as in
+ − 48
# the ${JDK_CHECKOUT}/make/data/symbols/symbols file.
+ − 49
# - if there are any changed/new files in the ${JDK_CHECKOUT}/make/data/symbols directory after running this script,
+ − 50
# then all the changes in this directory, including any new files, need to be sent for review and eventually pushed.
+ − 51
# The commit message should specify which binary build was installed in the ${JDK_N_INSTALL} directory and also
+ − 52
# include the SCM state that was used to build it, which can be found in ${JDK_N_INSTALL}/release,
+ − 53
# in property "SOURCE".
+ − 54
+ − 55
if [ "$1x" = "x" ] ; then
+ − 56
echo "Must provide the target JDK as a parameter:" >&2
+ − 57
echo "$0 <target-jdk>" >&2
+ − 58
exit 1
+ − 59
fi;
+ − 60
+ − 61
if [ ! -f symbols ] ; then
+ − 62
echo "Must run inside the make/data/symbols directory" >&2
+ − 63
exit 1
+ − 64
fi;
+ − 65
+ − 66
if [ "`hg status .`x" != "x" ] ; then
+ − 67
echo "The make/data/symbols directory contains local changes!" >&2
+ − 68
exit 1
+ − 69
fi;
+ − 70
+ − 71
$1/bin/java --add-exports jdk.jdeps/com.sun.tools.classfile=ALL-UNNAMED \
+ − 72
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
+ − 73
--add-exports jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
+ − 74
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
+ − 75
--add-modules jdk.jdeps \
+ − 76
../../../make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java \
+ − 77
build-description-incremental symbols include.list