This commit is contained in:
Christian Thalinger 2015-12-22 13:41:06 -08:00
commit 750467efda
36 changed files with 2805 additions and 682 deletions

View File

@ -339,3 +339,4 @@ f242d4332f563648426a1b0fa02d8741beba19ef jdk9-b92
25a2cab05cfbe6034b71d9e72d64c65b0572ce63 jdk9-b94 25a2cab05cfbe6034b71d9e72d64c65b0572ce63 jdk9-b94
5ac6287ec71aafe021cc839d8bc828108d23aaba jdk-9+95 5ac6287ec71aafe021cc839d8bc828108d23aaba jdk-9+95
139f19d70350238e15e107945cea75082b6380b3 jdk-9+96 139f19d70350238e15e107945cea75082b6380b3 jdk-9+96
4edcff1b9a8875eb6380a2165dfec599e8e3f7c0 jdk-9+97

View File

@ -339,3 +339,4 @@ cf1dc4c035fb84693d4ae5ad818785cb4d1465d1 jdk9-b90
349488425abcaf3ff62f580007860b4b56875d10 jdk9-b94 349488425abcaf3ff62f580007860b4b56875d10 jdk9-b94
12a6fb4f070f8ca8fbca219ab9abf5da8908b317 jdk-9+95 12a6fb4f070f8ca8fbca219ab9abf5da8908b317 jdk-9+95
5582a79892596169ebddb3e2c2aa44939e4e3f40 jdk-9+96 5582a79892596169ebddb3e2c2aa44939e4e3f40 jdk-9+96
75c3897541ecb52ee16d001ea605b12971df7303 jdk-9+97

8
README
View File

@ -6,7 +6,7 @@ README:
The root repository can be obtained with something like: The root repository can be obtained with something like:
hg clone http://hg.openjdk.java.net/jdk9/jdk9 openjdk9 hg clone http://hg.openjdk.java.net/jdk9/jdk9 openjdk9
You can run the get_source.sh script located in the root repository to get You can run the get_source.sh script located in the root repository to get
the other needed repositories: the other needed repositories:
cd openjdk9 && sh ./get_source.sh cd openjdk9 && sh ./get_source.sh
@ -17,7 +17,7 @@ README:
See http://openjdk.java.net/ for more information about OpenJDK. See http://openjdk.java.net/ for more information about OpenJDK.
Simple Build Instructions: Simple Build Instructions:
0. Get the necessary system software/packages installed on your system, see 0. Get the necessary system software/packages installed on your system, see
http://hg.openjdk.java.net/jdk9/jdk9/raw-file/tip/README-builds.html http://hg.openjdk.java.net/jdk9/jdk9/raw-file/tip/README-builds.html
@ -28,10 +28,10 @@ Simple Build Instructions:
2. Configure the build: 2. Configure the build:
bash ./configure bash ./configure
3. Build the OpenJDK: 3. Build the OpenJDK:
make all make all
The resulting JDK image should be found in build/*/images/j2sdk-image The resulting JDK image should be found in build/*/images/jdk
where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually
is 3.81 or newer. Note that on Solaris, GNU make is called "gmake". is 3.81 or newer. Note that on Solaris, GNU make is called "gmake".

View File

@ -250,9 +250,7 @@ Compilers</a>, <a href="#freetype">freetype</a>, <a href="#cups">cups</a>, and
</ul></li> </ul></li>
<li><p><strong>Mac OS X</strong></p> <li><p><strong>Mac OS X</strong></p>
<p>Install <a href="https://developer.apple.com/xcode/">XCode 4.5.2</a> and also <p>Install <a href="https://developer.apple.com/xcode/">XCode 6.3</a></p></li>
install the "Command line tools" found under the preferences pane
"Downloads"</p></li>
</ul> </ul>
<p><a name="linux"></a></p> <p><a name="linux"></a></p>
@ -279,39 +277,67 @@ OpenJDK.</p>
<h5>Studio Compilers</h5> <h5>Studio Compilers</h5>
<p>At a minimum, the <a href="http://www.oracle.com/ <p>At a minimum, the <a href="http://www.oracle.com/
technetwork/server-storage/solarisstudio/downloads/index.htm">Studio 12 Update 1 Compilers</a> (containing technetwork/server-storage/solarisstudio/downloads/index.htm">Studio 12 Update 4 Compilers</a> (containing
version 5.10 of the C and C++ compilers) is required, including specific version 5.13 of the C and C++ compilers) is required, including specific
patches.</p> patches.</p>
<p>The Solaris SPARC patch list is:</p> <p>The Solaris Studio installation should contain at least these packages:</p>
<ul> <blockquote>
<li>118683-05: SunOS 5.10: Patch for profiling libraries and assembler</li> <p><table border="1">
<li>119963-21: SunOS 5.10: Shared library patch for C++</li> <thead>
<li>120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch</li> <tr>
<li>128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler</li> <td><strong>Package</strong></td>
<li>141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C <td><strong>Version</strong></td>
C++ F77 F95</li> </tr>
<li>141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler</li> </thead>
<li>142371-01: Sun Studio 12.1 Update 1: Patch for dbx</li> <tbody>
<li>143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling</li> <tr>
<li>143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C <td>developer/solarisstudio-124/backend</td>
C++ F77 F95</li> <td>12.4-1.0.6.0</td>
<li>142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools</li> </tr>
</ul> <tr>
<td>developer/solarisstudio-124/c++</td>
<td>12.4-1.0.10.0</td>
</tr>
<tr>
<td>developer/solarisstudio-124/cc</td>
<td>12.4-1.0.4.0</td>
</tr>
<tr>
<td>developer/solarisstudio-124/library/c++-libs</td>
<td>12.4-1.0.10.0</td>
</tr>
<tr>
<td>developer/solarisstudio-124/library/math-libs</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/library/studio-gccrt</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-common</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-ja</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-legal</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-zhCN</td>
<td>12.4-1.0.0.1</td>
</tr>
</tbody>
</table></p>
</blockquote>
<p>The Solaris X86 patch list is:</p> <p>In particular backend 12.4-1.0.6.0 contains a critical patch for the sparc
version.</p>
<ul>
<li>119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler</li>
<li>119964-21: SunOS 5.10_x86: Shared library patch for C++_x86</li>
<li>120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch</li>
<li>141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86
backend</li>
<li>128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler</li>
<li>142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler</li>
<li>142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools</li>
</ul>
<p>Place the <code>bin</code> directory in <code>PATH</code>.</p> <p>Place the <code>bin</code> directory in <code>PATH</code>.</p>
@ -1144,10 +1170,6 @@ where the resulting bits can be used.</p>
<p>With Linux, it was just a matter of picking a stable distribution that is a <p>With Linux, it was just a matter of picking a stable distribution that is a
good representative for Linux in general.</p> good representative for Linux in general.</p>
<p><strong>NOTE: We expect a change here from Fedora 9 to something else, but it has not
been completely determined yet, possibly Ubuntu 12.04 X64, unbiased community
feedback would be welcome on what a good choice would be here.</strong></p>
<p>It is understood that most developers will NOT be using these specific <p>It is understood that most developers will NOT be using these specific
versions, and in fact creating these specific versions may be difficult due to versions, and in fact creating these specific versions may be difficult due to
the age of some of this software. It is expected that developers are more often the age of some of this software. It is expected that developers are more often
@ -1176,7 +1198,7 @@ so that they can be dealt with accordingly.</p>
<tr> <tr>
<td>Linux X86 (32-bit) and X64 (64-bit)</td> <td>Linux X86 (32-bit) and X64 (64-bit)</td>
<td>Oracle Enterprise Linux 6.4</td> <td>Oracle Enterprise Linux 6.4</td>
<td>gcc 4.8.2 </td> <td>gcc 4.9.2 </td>
<td>JDK 8</td> <td>JDK 8</td>
<td>2 or more</td> <td>2 or more</td>
<td>1 GB</td> <td>1 GB</td>
@ -1184,8 +1206,8 @@ so that they can be dealt with accordingly.</p>
</tr> </tr>
<tr> <tr>
<td>Solaris SPARCV9 (64-bit)</td> <td>Solaris SPARCV9 (64-bit)</td>
<td>Solaris 10 Update 10</td> <td>Solaris 11 Update 1</td>
<td>Studio 12 Update 3 + patches</td> <td>Studio 12 Update 4 + patches</td>
<td>JDK 8</td> <td>JDK 8</td>
<td>4 or more</td> <td>4 or more</td>
<td>4 GB</td> <td>4 GB</td>
@ -1193,8 +1215,8 @@ so that they can be dealt with accordingly.</p>
</tr> </tr>
<tr> <tr>
<td>Solaris X64 (64-bit)</td> <td>Solaris X64 (64-bit)</td>
<td>Solaris 10 Update 10</td> <td>Solaris 11 Update 1</td>
<td>Studio 12 Update 3 + patches</td> <td>Studio 12 Update 4 + patches</td>
<td>JDK 8</td> <td>JDK 8</td>
<td>4 or more</td> <td>4 or more</td>
<td>4 GB</td> <td>4 GB</td>
@ -1221,7 +1243,7 @@ so that they can be dealt with accordingly.</p>
<tr> <tr>
<td>Mac OS X X64 (64-bit)</td> <td>Mac OS X X64 (64-bit)</td>
<td>Mac OS X 10.9 "Mavericks"</td> <td>Mac OS X 10.9 "Mavericks"</td>
<td>XCode 5.1.1 or newer</td> <td>Xcode 6.3 or newer</td>
<td>JDK 8</td> <td>JDK 8</td>
<td>2 or more</td> <td>2 or more</td>
<td>4 GB</td> <td>4 GB</td>

View File

@ -215,9 +215,7 @@ And for specific systems:
* **Mac OS X** * **Mac OS X**
Install [XCode 4.5.2](https://developer.apple.com/xcode/) and also Install [XCode 6.3](https://developer.apple.com/xcode/)
install the "Command line tools" found under the preferences pane
"Downloads"
<a name="linux"></a> <a name="linux"></a>
#### Linux #### Linux
@ -239,36 +237,66 @@ OpenJDK.
<a name="studio"></a> <a name="studio"></a>
##### Studio Compilers ##### Studio Compilers
At a minimum, the [Studio 12 Update 1 Compilers](http://www.oracle.com/ At a minimum, the [Studio 12 Update 4 Compilers](http://www.oracle.com/
technetwork/server-storage/solarisstudio/downloads/index.htm) (containing technetwork/server-storage/solarisstudio/downloads/index.htm) (containing
version 5.10 of the C and C++ compilers) is required, including specific version 5.13 of the C and C++ compilers) is required, including specific
patches. patches.
The Solaris SPARC patch list is: The Solaris Studio installation should contain at least these packages:
* 118683-05: SunOS 5.10: Patch for profiling libraries and assembler > <table border="1">
* 119963-21: SunOS 5.10: Shared library patch for C++ <thead>
* 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch <tr>
* 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler <td>**Package**</td>
* 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C <td>**Version**</td>
C++ F77 F95 </tr>
* 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler </thead>
* 142371-01: Sun Studio 12.1 Update 1: Patch for dbx <tbody>
* 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling <tr>
* 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C <td>developer/solarisstudio-124/backend</td>
C++ F77 F95 <td>12.4-1.0.6.0</td>
* 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools </tr>
<tr>
<td>developer/solarisstudio-124/c++</td>
<td>12.4-1.0.10.0</td>
</tr>
<tr>
<td>developer/solarisstudio-124/cc</td>
<td>12.4-1.0.4.0</td>
</tr>
<tr>
<td>developer/solarisstudio-124/library/c++-libs</td>
<td>12.4-1.0.10.0</td>
</tr>
<tr>
<td>developer/solarisstudio-124/library/math-libs</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/library/studio-gccrt</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-common</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-ja</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-legal</td>
<td>12.4-1.0.0.1</td>
</tr>
<tr>
<td>developer/solarisstudio-124/studio-zhCN</td>
<td>12.4-1.0.0.1</td>
</tr>
</tbody>
</table>
The Solaris X86 patch list is: In particular backend 12.4-1.0.6.0 contains a critical patch for the sparc
version.
* 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
* 119964-21: SunOS 5.10_x86: Shared library patch for C++\_x86
* 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
* 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86
backend
* 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
* 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
* 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
Place the `bin` directory in `PATH`. Place the `bin` directory in `PATH`.
@ -1044,10 +1072,6 @@ where the resulting bits can be used.
With Linux, it was just a matter of picking a stable distribution that is a With Linux, it was just a matter of picking a stable distribution that is a
good representative for Linux in general. good representative for Linux in general.
**NOTE: We expect a change here from Fedora 9 to something else, but it has not
been completely determined yet, possibly Ubuntu 12.04 X64, unbiased community
feedback would be welcome on what a good choice would be here.**
It is understood that most developers will NOT be using these specific It is understood that most developers will NOT be using these specific
versions, and in fact creating these specific versions may be difficult due to versions, and in fact creating these specific versions may be difficult due to
the age of some of this software. It is expected that developers are more often the age of some of this software. It is expected that developers are more often
@ -1075,7 +1099,7 @@ so that they can be dealt with accordingly.
<tr> <tr>
<td>Linux X86 (32-bit) and X64 (64-bit)</td> <td>Linux X86 (32-bit) and X64 (64-bit)</td>
<td>Oracle Enterprise Linux 6.4</td> <td>Oracle Enterprise Linux 6.4</td>
<td>gcc 4.8.2 </td> <td>gcc 4.9.2 </td>
<td>JDK 8</td> <td>JDK 8</td>
<td>2 or more</td> <td>2 or more</td>
<td>1 GB</td> <td>1 GB</td>
@ -1083,8 +1107,8 @@ so that they can be dealt with accordingly.
</tr> </tr>
<tr> <tr>
<td>Solaris SPARCV9 (64-bit)</td> <td>Solaris SPARCV9 (64-bit)</td>
<td>Solaris 10 Update 10</td> <td>Solaris 11 Update 1</td>
<td>Studio 12 Update 3 + patches</td> <td>Studio 12 Update 4 + patches</td>
<td>JDK 8</td> <td>JDK 8</td>
<td>4 or more</td> <td>4 or more</td>
<td>4 GB</td> <td>4 GB</td>
@ -1092,8 +1116,8 @@ so that they can be dealt with accordingly.
</tr> </tr>
<tr> <tr>
<td>Solaris X64 (64-bit)</td> <td>Solaris X64 (64-bit)</td>
<td>Solaris 10 Update 10</td> <td>Solaris 11 Update 1</td>
<td>Studio 12 Update 3 + patches</td> <td>Studio 12 Update 4 + patches</td>
<td>JDK 8</td> <td>JDK 8</td>
<td>4 or more</td> <td>4 or more</td>
<td>4 GB</td> <td>4 GB</td>
@ -1120,7 +1144,7 @@ so that they can be dealt with accordingly.
<tr> <tr>
<td>Mac OS X X64 (64-bit)</td> <td>Mac OS X X64 (64-bit)</td>
<td>Mac OS X 10.9 "Mavericks"</td> <td>Mac OS X 10.9 "Mavericks"</td>
<td>XCode 5.1.1 or newer</td> <td>Xcode 6.3 or newer</td>
<td>JDK 8</td> <td>JDK 8</td>
<td>2 or more</td> <td>2 or more</td>
<td>4 GB</td> <td>4 GB</td>

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -149,6 +149,19 @@ AC_DEFUN_ONCE([BPERF_SETUP_BUILD_JOBS],
AC_SUBST(JOBS) AC_SUBST(JOBS)
]) ])
AC_DEFUN_ONCE([BPERF_SETUP_TEST_JOBS],
[
# The number of test jobs will be chosen automatically if TEST_JOBS is 0
AC_ARG_WITH(test-jobs, [AS_HELP_STRING([--with-test-jobs],
[number of parallel tests jobs to run @<:@based on build jobs@:>@])])
if test "x$with_test_jobs" = x; then
TEST_JOBS=0
else
TEST_JOBS=$with_test_jobs
fi
AC_SUBST(TEST_JOBS)
])
AC_DEFUN([BPERF_SETUP_CCACHE], AC_DEFUN([BPERF_SETUP_CCACHE],
[ [
AC_ARG_ENABLE([ccache], AC_ARG_ENABLE([ccache],

View File

@ -44,6 +44,7 @@ m4_include([boot-jdk.m4])
m4_include([build-performance.m4]) m4_include([build-performance.m4])
m4_include([flags.m4]) m4_include([flags.m4])
m4_include([help.m4]) m4_include([help.m4])
m4_include([hotspot.m4])
m4_include([jdk-options.m4]) m4_include([jdk-options.m4])
m4_include([jdk-version.m4]) m4_include([jdk-version.m4])
m4_include([libraries.m4]) m4_include([libraries.m4])
@ -94,9 +95,10 @@ JDKOPT_SETUP_OPEN_OR_CUSTOM
# These are needed to be able to create a configuration name (and thus the output directory) # These are needed to be able to create a configuration name (and thus the output directory)
JDKOPT_SETUP_JDK_VARIANT JDKOPT_SETUP_JDK_VARIANT
JDKOPT_SETUP_JVM_INTERPRETER HOTSPOT_SETUP_JVM_INTERPRETER
JDKOPT_SETUP_JVM_VARIANTS HOTSPOT_SETUP_JVM_VARIANTS
JDKOPT_SETUP_DEBUG_LEVEL JDKOPT_SETUP_DEBUG_LEVEL
HOTSPOT_SETUP_DEBUG_LEVEL
# With basic setup done, call the custom early hook. # With basic setup done, call the custom early hook.
CUSTOM_EARLY_HOOK CUSTOM_EARLY_HOOK
@ -132,6 +134,7 @@ BASIC_SETUP_DEFAULT_MAKE_TARGET
# We need build & target for this. # We need build & target for this.
JDKOPT_SETUP_JDK_OPTIONS JDKOPT_SETUP_JDK_OPTIONS
HOTSPOT_SETUP_HOTSPOT_OPTIONS
JDKVER_SETUP_JDK_VERSION_NUMBERS JDKVER_SETUP_JDK_VERSION_NUMBERS
############################################################################### ###############################################################################
@ -220,7 +223,7 @@ LIB_SETUP_LIBRARIES
# #
############################################################################### ###############################################################################
JDKOPT_SETUP_BUILD_TWEAKS HOTSPOT_SETUP_BUILD_TWEAKS
JDKOPT_DETECT_INTREE_EC JDKOPT_DETECT_INTREE_EC
############################################################################### ###############################################################################
@ -233,6 +236,7 @@ JDKOPT_DETECT_INTREE_EC
BPERF_SETUP_BUILD_CORES BPERF_SETUP_BUILD_CORES
BPERF_SETUP_BUILD_MEMORY BPERF_SETUP_BUILD_MEMORY
BPERF_SETUP_BUILD_JOBS BPERF_SETUP_BUILD_JOBS
BPERF_SETUP_TEST_JOBS
# Setup arguments for the boot jdk (after cores and memory have been setup) # Setup arguments for the boot jdk (after cores and memory have been setup)
BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS

View File

@ -120,13 +120,17 @@ AC_DEFUN([FLAGS_SETUP_SYSROOT_FLAGS],
AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS], AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
[ [
# Option used to tell the compiler whether to create 32- or 64-bit executables # COMPILER_TARGET_BITS_FLAG : option for selecting 32- or 64-bit output
# COMPILER_COMMAND_FILE_FLAG : option for passing a command file to the compiler
if test "x$TOOLCHAIN_TYPE" = xxlc; then if test "x$TOOLCHAIN_TYPE" = xxlc; then
COMPILER_TARGET_BITS_FLAG="-q" COMPILER_TARGET_BITS_FLAG="-q"
COMPILER_COMMAND_FILE_FLAG="-f"
else else
COMPILER_TARGET_BITS_FLAG="-m" COMPILER_TARGET_BITS_FLAG="-m"
COMPILER_COMMAND_FILE_FLAG="@"
fi fi
AC_SUBST(COMPILER_TARGET_BITS_FLAG) AC_SUBST(COMPILER_TARGET_BITS_FLAG)
AC_SUBST(COMPILER_COMMAND_FILE_FLAG)
# FIXME: figure out if we should select AR flags depending on OS or toolchain. # FIXME: figure out if we should select AR flags depending on OS or toolchain.
if test "x$OPENJDK_TARGET_OS" = xmacosx; then if test "x$OPENJDK_TARGET_OS" = xmacosx; then
@ -226,37 +230,38 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
else else
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG" SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
fi fi
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1' SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
SET_SHARED_LIBRARY_MAPFILE='' SET_SHARED_LIBRARY_MAPFILE=''
else else
# Default works for linux, might work on other platforms as well. # Default works for linux, might work on other platforms as well.
SHARED_LIBRARY_FLAGS='-shared' SHARED_LIBRARY_FLAGS='-shared'
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1' SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN" SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1' SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1' SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
fi fi
elif test "x$TOOLCHAIN_TYPE" = xclang; then elif test "x$TOOLCHAIN_TYPE" = xclang; then
PICFLAG=''
C_FLAG_REORDER='' C_FLAG_REORDER=''
CXX_FLAG_REORDER='' CXX_FLAG_REORDER=''
if test "x$OPENJDK_TARGET_OS" = xmacosx; then if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# Linking is different on MacOSX # Linking is different on MacOSX
PICFLAG=''
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG" SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1' SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
SET_SHARED_LIBRARY_MAPFILE='' SET_SHARED_LIBRARY_MAPFILE=''
else else
# Default works for linux, might work on other platforms as well. # Default works for linux, might work on other platforms as well.
PICFLAG='-fPIC'
SHARED_LIBRARY_FLAGS='-shared' SHARED_LIBRARY_FLAGS='-shared'
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1' SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN" SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1' SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1' SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
fi fi
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
PICFLAG="-KPIC" PICFLAG="-KPIC"
@ -265,7 +270,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
SHARED_LIBRARY_FLAGS="-G" SHARED_LIBRARY_FLAGS="-G"
SET_EXECUTABLE_ORIGIN='-R\$$$$ORIGIN[$]1' SET_EXECUTABLE_ORIGIN='-R\$$$$ORIGIN[$]1'
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='' SET_SHARED_LIBRARY_NAME='-h [$]1'
SET_SHARED_LIBRARY_MAPFILE='-M[$]1' SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
elif test "x$TOOLCHAIN_TYPE" = xxlc; then elif test "x$TOOLCHAIN_TYPE" = xxlc; then
PICFLAG="-qpic=large" PICFLAG="-qpic=large"
@ -280,7 +285,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
PICFLAG="" PICFLAG=""
C_FLAG_REORDER='' C_FLAG_REORDER=''
CXX_FLAG_REORDER='' CXX_FLAG_REORDER=''
SHARED_LIBRARY_FLAGS="-LD" SHARED_LIBRARY_FLAGS="-dll"
SET_EXECUTABLE_ORIGIN='' SET_EXECUTABLE_ORIGIN=''
SET_SHARED_LIBRARY_ORIGIN='' SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME='' SET_SHARED_LIBRARY_NAME=''
@ -293,6 +298,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN) AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
AC_SUBST(SET_SHARED_LIBRARY_NAME) AC_SUBST(SET_SHARED_LIBRARY_NAME)
AC_SUBST(SET_SHARED_LIBRARY_MAPFILE) AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
AC_SUBST(SHARED_LIBRARY_FLAGS)
if test "x$OPENJDK_TARGET_OS" = xsolaris; then if test "x$OPENJDK_TARGET_OS" = xsolaris; then
CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__" CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__"
@ -573,6 +579,25 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
;; ;;
esac esac
elif test "x$TOOLCHAIN_TYPE" = xclang; then
if test "x$OPENJDK_TARGET_OS" = xlinux; then
if test "x$OPENJDK_TARGET_CPU" = xx86; then
# Force compatibility with i586 on 32 bit intel platforms.
COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586"
fi
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
-pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
case $OPENJDK_TARGET_CPU_ARCH in
ppc )
# on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
;;
* )
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
;;
esac
fi
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
@ -748,17 +773,17 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
# If this is a --hash-style=gnu system, use --hash-style=both, why? # If this is a --hash-style=gnu system, use --hash-style=both, why?
# We have previously set HAS_GNU_HASH if this is the case # We have previously set HAS_GNU_HASH if this is the case
if test -n "$HAS_GNU_HASH"; then if test -n "$HAS_GNU_HASH"; then
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker --hash-style=both" LDFLAGS_JDK="${LDFLAGS_JDK} -Wl,--hash-style=both"
fi fi
if test "x$OPENJDK_TARGET_OS" = xlinux; then if test "x$OPENJDK_TARGET_OS" = xlinux; then
# And since we now know that the linker is gnu, then add -z defs, to forbid # And since we now know that the linker is gnu, then add -z defs, to forbid
# undefined symbols in object files. # undefined symbols in object files.
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -z -Xlinker defs" LDFLAGS_JDK="${LDFLAGS_JDK} -Wl,-z,defs"
case $DEBUG_LEVEL in case $DEBUG_LEVEL in
release ) release )
# tell linker to optimize libraries. # tell linker to optimize libraries.
# Should this be supplied to the OSS linker as well? # Should this be supplied to the OSS linker as well?
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -O1" LDFLAGS_JDK="${LDFLAGS_JDK} -Wl,-O1"
;; ;;
slowdebug ) slowdebug )
if test "x$HAS_LINKER_NOW" = "xtrue"; then if test "x$HAS_LINKER_NOW" = "xtrue"; then
@ -785,7 +810,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
esac esac
fi fi
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,defs -xildoff -ztext"
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then elif test "x$TOOLCHAIN_TYPE" = xxlc; then
LDFLAGS_JDK="${LDFLAGS_JDK} -brtl -bnolibpath -bexpall -bernotok" LDFLAGS_JDK="${LDFLAGS_JDK} -brtl -bnolibpath -bexpall -bernotok"
@ -803,17 +828,19 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
fi fi
LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE" LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
elif test "x$OPENJDK_TARGET_OS" = xlinux; then elif test "x$OPENJDK_TARGET_OS" = xlinux; then
LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Xlinker --allow-shlib-undefined" LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
fi fi
# Customize LDFLAGS for libs # Customize LDFLAGS for libs
LDFLAGS_JDKLIB="${LDFLAGS_JDK}" LDFLAGS_JDKLIB="${LDFLAGS_JDK}"
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -dll -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base" LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} \
-libpath:${OUTPUT_ROOT}/support/modules_libs/java.base"
JDKLIB_LIBS="" JDKLIB_LIBS=""
else else
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS} \ LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} \
-L${OUTPUT_ROOT}/support/modules_libs/java.base${OPENJDK_TARGET_CPU_LIBDIR}" -L${OUTPUT_ROOT}/support/modules_libs/java.base${OPENJDK_TARGET_CPU_LIBDIR}"
# On some platforms (mac) the linker warns about non existing -L dirs. # On some platforms (mac) the linker warns about non existing -L dirs.

File diff suppressed because it is too large Load Diff

View File

@ -86,7 +86,11 @@ Then run configure with '--with-freetype-src=<freetype_src>'. This will
automatically build the freetype library into '<freetype_src>/lib64' for 64-bit automatically build the freetype library into '<freetype_src>/lib64' for 64-bit
builds or into '<freetype_src>/lib32' for 32-bit builds. builds or into '<freetype_src>/lib32' for 32-bit builds.
Afterwards you can always use '--with-freetype-include=<freetype_src>/include' Afterwards you can always use '--with-freetype-include=<freetype_src>/include'
and '--with-freetype-lib=<freetype_src>/lib[32|64]' for other builds." and '--with-freetype-lib=<freetype_src>/lib[32|64]' for other builds.
Alternatively you can unpack the sources like this to use the default directory:
tar --one-top-level=$HOME/freetype --strip-components=1 -xzf freetype-2.5.3.tar.gz"
;; ;;
esac esac
} }

279
common/autoconf/hotspot.m4 Normal file
View File

@ -0,0 +1,279 @@
#
# Copyright (c) 2011, 2015, 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.
#
###############################################################################
# Check which interpreter of the JVM we want to build.
# Currently we have:
# template: Template interpreter (the default)
# cpp : C++ interpreter
AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_INTERPRETER],
[
AC_ARG_WITH([jvm-interpreter], [AS_HELP_STRING([--with-jvm-interpreter],
[JVM interpreter to build (template, cpp) @<:@template@:>@])])
AC_MSG_CHECKING([which interpreter of the JVM to build])
if test "x$with_jvm_interpreter" = x; then
JVM_INTERPRETER="template"
else
JVM_INTERPRETER="$with_jvm_interpreter"
fi
AC_MSG_RESULT([$JVM_INTERPRETER])
if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then
AC_MSG_ERROR([The available JVM interpreters are: template, cpp])
fi
AC_SUBST(JVM_INTERPRETER)
])
###############################################################################
# Check which variants of the JVM that we want to build.
# Currently we have:
# server: normal interpreter and a C2 or tiered C1/C2 compiler
# client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms)
# minimal1: reduced form of client with optional VM services and features stripped out
# zero: no machine code interpreter, no compiler
# zeroshark: zero interpreter and shark/llvm compiler backend
# core: interpreter only, no compiler (only works on some platforms)
AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
[
AC_MSG_CHECKING([which variants of the JVM to build])
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
[JVM variants (separated by commas) to build (server, client, minimal1, zero, zeroshark, core) @<:@server@:>@])])
if test "x$with_jvm_variants" = x; then
with_jvm_variants="server"
fi
JVM_VARIANTS=",$with_jvm_variants,"
TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/zero,//' -e 's/zeroshark,//' -e 's/core,//'`
if test "x$TEST_VARIANTS" != "x,"; then
AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, zero, zeroshark, core])
fi
AC_MSG_RESULT([$with_jvm_variants])
JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'`
JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS" | $SED -e '/,minimal1,/!s/.*/false/g' -e '/,minimal1,/s/.*/true/g'`
JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
if test "x$JVM_VARIANT_CLIENT" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
fi
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.])
fi
fi
# Replace the commas with AND for use in the build directory name.
ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'`
COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'`
if test "x$COUNT_VARIANTS" != "x,1"; then
BUILDING_MULTIPLE_JVM_VARIANTS=yes
else
BUILDING_MULTIPLE_JVM_VARIANTS=no
fi
if test "x$JVM_VARIANT_ZERO" = xtrue && test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = xyes; then
AC_MSG_ERROR([You cannot build multiple variants with zero.])
fi
AC_SUBST(JVM_VARIANTS)
AC_SUBST(JVM_VARIANT_SERVER)
AC_SUBST(JVM_VARIANT_CLIENT)
AC_SUBST(JVM_VARIANT_MINIMAL1)
AC_SUBST(JVM_VARIANT_ZERO)
AC_SUBST(JVM_VARIANT_ZEROSHARK)
AC_SUBST(JVM_VARIANT_CORE)
INCLUDE_SA=true
if test "x$JVM_VARIANT_ZERO" = xtrue ; then
INCLUDE_SA=false
fi
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
fi
if test "x$OPENJDK_TARGET_OS" = xaix ; then
INCLUDE_SA=false
fi
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
INCLUDE_SA=false
fi
AC_SUBST(INCLUDE_SA)
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
MACOSX_UNIVERSAL="true"
fi
AC_SUBST(MACOSX_UNIVERSAL)
])
###############################################################################
# Setup legacy vars/targets and new vars to deal with different debug levels.
#
# release: no debug information, all optimizations, no asserts.
# optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'.
# fastdebug: debug information (-g), all optimizations, all asserts
# slowdebug: debug information (-g), no optimizations, all asserts
#
AC_DEFUN_ONCE([HOTSPOT_SETUP_DEBUG_LEVEL],
[
case $DEBUG_LEVEL in
release )
VARIANT="OPT"
FASTDEBUG="false"
DEBUG_CLASSFILES="false"
BUILD_VARIANT_RELEASE=""
HOTSPOT_DEBUG_LEVEL="product"
HOTSPOT_EXPORT="product"
;;
fastdebug )
VARIANT="DBG"
FASTDEBUG="true"
DEBUG_CLASSFILES="true"
BUILD_VARIANT_RELEASE="-fastdebug"
HOTSPOT_DEBUG_LEVEL="fastdebug"
HOTSPOT_EXPORT="fastdebug"
;;
slowdebug )
VARIANT="DBG"
FASTDEBUG="false"
DEBUG_CLASSFILES="true"
BUILD_VARIANT_RELEASE="-debug"
HOTSPOT_DEBUG_LEVEL="debug"
HOTSPOT_EXPORT="debug"
;;
optimized )
VARIANT="OPT"
FASTDEBUG="false"
DEBUG_CLASSFILES="false"
BUILD_VARIANT_RELEASE="-optimized"
HOTSPOT_DEBUG_LEVEL="optimized"
HOTSPOT_EXPORT="optimized"
;;
esac
# The debug level 'optimized' is a little special because it is currently only
# applicable to the HotSpot build where it means to build a completely
# optimized version of the VM without any debugging code (like for the
# 'release' debug level which is called 'product' in the HotSpot build) but
# with the exception that it can contain additional code which is otherwise
# protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
# test new and/or experimental features which are not intended for customer
# shipment. Because these new features need to be tested and benchmarked in
# real world scenarios, we want to build the containing JDK at the 'release'
# debug level.
if test "x$DEBUG_LEVEL" = xoptimized; then
DEBUG_LEVEL="release"
fi
#####
# Generate the legacy makefile targets for hotspot.
# The hotspot api for selecting the build artifacts, really, needs to be improved.
# JDK-7195896 will fix this on the hotspot side by using the JVM_VARIANT_* variables to
# determine what needs to be built. All we will need to set here is all_product, all_fastdebug etc
# But until then ...
HOTSPOT_TARGET=""
if test "x$JVM_VARIANT_SERVER" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
fi
if test "x$JVM_VARIANT_CLIENT" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 "
fi
if test "x$JVM_VARIANT_ZERO" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
fi
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
fi
if test "x$JVM_VARIANT_CORE" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core "
fi
HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT"
# On Macosx universal binaries are produced, but they only contain
# 64 bit intel. This invalidates control of which jvms are built
# from configure, but only server is valid anyway. Fix this
# when hotspot makefiles are rewritten.
if test "x$MACOSX_UNIVERSAL" = xtrue; then
HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT}
fi
#####
AC_SUBST(DEBUG_LEVEL)
AC_SUBST(VARIANT)
AC_SUBST(FASTDEBUG)
AC_SUBST(DEBUG_CLASSFILES)
AC_SUBST(BUILD_VARIANT_RELEASE)
])
AC_DEFUN_ONCE([HOTSPOT_SETUP_HOTSPOT_OPTIONS],
[
# Control wether Hotspot runs Queens test after build.
AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build],
[run the Queens test after Hotspot build @<:@disabled@:>@])],,
[enable_hotspot_test_in_build=no])
if test "x$enable_hotspot_test_in_build" = "xyes"; then
TEST_IN_BUILD=true
else
TEST_IN_BUILD=false
fi
AC_SUBST(TEST_IN_BUILD)
])
AC_DEFUN_ONCE([HOTSPOT_SETUP_BUILD_TWEAKS],
[
HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET"
AC_SUBST(HOTSPOT_MAKE_ARGS)
])
# -g is already added by ENABLE_DEBUG_SYMBOLS and the hotspot makefiles
# will basically do slowdebug builds when DEBUG_BINARIES is set for
# fastdebug builds
DEBUG_BINARIES=false
# Fastdebug builds with this setting will essentially be slowdebug
# in hotspot.
# -g is already added by ENABLE_DEBUG_SYMBOLS and the hotspot makefiles
# will basically do slowdebug builds when DEBUG_BINARIES is set for
# fastdebug builds
DEBUG_BINARIES=false

View File

@ -23,19 +23,16 @@
# questions. # questions.
# #
###############################################################################
# Check which variant of the JDK that we want to build.
# Currently we have:
# normal: standard edition
# but the custom make system may add other variants
#
# Effectively the JDK variant gives a name to a specific set of
# modules to compile into the JDK.
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT], AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
[ [
###############################################################################
#
# Check which variant of the JDK that we want to build.
# Currently we have:
# normal: standard edition
# but the custom make system may add other variants
#
# Effectively the JDK variant gives a name to a specific set of
# modules to compile into the JDK. In the future, these modules
# might even be Jigsaw modules.
#
AC_MSG_CHECKING([which variant of the JDK to build]) AC_MSG_CHECKING([which variant of the JDK to build])
AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant], AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant],
[JDK variant to build (normal) @<:@normal@:>@])]) [JDK variant to build (normal) @<:@normal@:>@])])
@ -51,138 +48,14 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
AC_MSG_RESULT([$JDK_VARIANT]) AC_MSG_RESULT([$JDK_VARIANT])
]) ])
AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_INTERPRETER],
[
############################################################################### ###############################################################################
# # Set the debug level
# Check which interpreter of the JVM we want to build. # release: no debug information, all optimizations, no asserts.
# Currently we have: # optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'.
# template: Template interpreter (the default) # fastdebug: debug information (-g), all optimizations, all asserts
# cpp : C++ interpreter # slowdebug: debug information (-g), no optimizations, all asserts
AC_MSG_CHECKING([which interpreter of the JVM to build])
AC_ARG_WITH([jvm-interpreter], [AS_HELP_STRING([--with-jvm-interpreter],
[JVM interpreter to build (template, cpp) @<:@template@:>@])])
if test "x$with_jvm_interpreter" = x; then
with_jvm_interpreter="template"
fi
JVM_INTERPRETER="$with_jvm_interpreter"
if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then
AC_MSG_ERROR([The available JVM interpreters are: template, cpp])
fi
AC_SUBST(JVM_INTERPRETER)
AC_MSG_RESULT([$with_jvm_interpreter])
])
AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS],
[
###############################################################################
#
# Check which variants of the JVM that we want to build.
# Currently we have:
# server: normal interpreter and a tiered C1/C2 compiler
# client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms)
# minimal1: reduced form of client with optional VM services and features stripped out
# kernel: kernel footprint JVM that passes the TCK without major performance problems,
# ie normal interpreter and C1, only the serial GC, kernel jvmti etc
# zero: no machine code interpreter, no compiler
# zeroshark: zero interpreter and shark/llvm compiler backend
# core: interpreter only, no compiler (only works on some platforms)
AC_MSG_CHECKING([which variants of the JVM to build])
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
[JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark, core) @<:@server@:>@])])
if test "x$with_jvm_variants" = x; then
with_jvm_variants="server"
fi
JVM_VARIANTS=",$with_jvm_variants,"
TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//' -e 's/core,//'`
if test "x$TEST_VARIANTS" != "x,"; then
AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark, core])
fi
AC_MSG_RESULT([$with_jvm_variants])
JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'`
JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS" | $SED -e '/,minimal1,/!s/.*/false/g' -e '/,minimal1,/s/.*/true/g'`
JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'`
JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
if test "x$JVM_VARIANT_CLIENT" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
fi
fi
if test "x$JVM_VARIANT_KERNEL" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
fi
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.])
fi
fi
# Replace the commas with AND for use in the build directory name.
ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'`
COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'`
if test "x$COUNT_VARIANTS" != "x,1"; then
BUILDING_MULTIPLE_JVM_VARIANTS=yes
else
BUILDING_MULTIPLE_JVM_VARIANTS=no
fi
AC_SUBST(JVM_VARIANTS)
AC_SUBST(JVM_VARIANT_SERVER)
AC_SUBST(JVM_VARIANT_CLIENT)
AC_SUBST(JVM_VARIANT_MINIMAL1)
AC_SUBST(JVM_VARIANT_KERNEL)
AC_SUBST(JVM_VARIANT_ZERO)
AC_SUBST(JVM_VARIANT_ZEROSHARK)
AC_SUBST(JVM_VARIANT_CORE)
INCLUDE_SA=true
if test "x$JVM_VARIANT_ZERO" = xtrue ; then
INCLUDE_SA=false
fi
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
fi
if test "x$OPENJDK_TARGET_OS" = xaix ; then
INCLUDE_SA=false
fi
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
INCLUDE_SA=false
fi
AC_SUBST(INCLUDE_SA)
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
MACOSX_UNIVERSAL="true"
fi
AC_SUBST(MACOSX_UNIVERSAL)
])
AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL], AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL],
[ [
###############################################################################
#
# Set the debug level
# release: no debug information, all optimizations, no asserts.
# optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'.
# fastdebug: debug information (-g), all optimizations, all asserts
# slowdebug: debug information (-g), no optimizations, all asserts
#
DEBUG_LEVEL="release" DEBUG_LEVEL="release"
AC_MSG_CHECKING([which debug level to use]) AC_MSG_CHECKING([which debug level to use])
AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],
@ -208,118 +81,8 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL],
test "x$DEBUG_LEVEL" != xslowdebug; then test "x$DEBUG_LEVEL" != xslowdebug; then
AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug]) AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug])
fi fi
###############################################################################
#
# Setup legacy vars/targets and new vars to deal with different debug levels.
#
case $DEBUG_LEVEL in
release )
VARIANT="OPT"
FASTDEBUG="false"
DEBUG_CLASSFILES="false"
BUILD_VARIANT_RELEASE=""
HOTSPOT_DEBUG_LEVEL="product"
HOTSPOT_EXPORT="product"
;;
fastdebug )
VARIANT="DBG"
FASTDEBUG="true"
DEBUG_CLASSFILES="true"
BUILD_VARIANT_RELEASE="-fastdebug"
HOTSPOT_DEBUG_LEVEL="fastdebug"
HOTSPOT_EXPORT="fastdebug"
;;
slowdebug )
VARIANT="DBG"
FASTDEBUG="false"
DEBUG_CLASSFILES="true"
BUILD_VARIANT_RELEASE="-debug"
HOTSPOT_DEBUG_LEVEL="debug"
HOTSPOT_EXPORT="debug"
;;
optimized )
VARIANT="OPT"
FASTDEBUG="false"
DEBUG_CLASSFILES="false"
BUILD_VARIANT_RELEASE="-optimized"
HOTSPOT_DEBUG_LEVEL="optimized"
HOTSPOT_EXPORT="optimized"
;;
esac
# The debug level 'optimized' is a little special because it is currently only
# applicable to the HotSpot build where it means to build a completely
# optimized version of the VM without any debugging code (like for the
# 'release' debug level which is called 'product' in the HotSpot build) but
# with the exception that it can contain additional code which is otherwise
# protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
# test new and/or experimental features which are not intended for customer
# shipment. Because these new features need to be tested and benchmarked in
# real world scenarios, we want to build the containing JDK at the 'release'
# debug level.
if test "x$DEBUG_LEVEL" = xoptimized; then
DEBUG_LEVEL="release"
fi
#####
# Generate the legacy makefile targets for hotspot.
# The hotspot api for selecting the build artifacts, really, needs to be improved.
# JDK-7195896 will fix this on the hotspot side by using the JVM_VARIANT_* variables to
# determine what needs to be built. All we will need to set here is all_product, all_fastdebug etc
# But until then ...
HOTSPOT_TARGET=""
if test "x$JVM_VARIANT_SERVER" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
fi
if test "x$JVM_VARIANT_CLIENT" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
fi
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 "
fi
if test "x$JVM_VARIANT_KERNEL" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel "
fi
if test "x$JVM_VARIANT_ZERO" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
fi
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
fi
if test "x$JVM_VARIANT_CORE" = xtrue; then
HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core "
fi
HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT"
# On Macosx universal binaries are produced, but they only contain
# 64 bit intel. This invalidates control of which jvms are built
# from configure, but only server is valid anyway. Fix this
# when hotspot makefiles are rewritten.
if test "x$MACOSX_UNIVERSAL" = xtrue; then
HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT}
fi
#####
AC_SUBST(DEBUG_LEVEL)
AC_SUBST(VARIANT)
AC_SUBST(FASTDEBUG)
AC_SUBST(DEBUG_CLASSFILES)
AC_SUBST(BUILD_VARIANT_RELEASE)
]) ])
############################################################################### ###############################################################################
# #
# Should we build only OpenJDK even if closed sources are present? # Should we build only OpenJDK even if closed sources are present?
@ -367,12 +130,8 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM],
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS], AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
[ [
###############################################################################
#
# Should we build a JDK/JVM with headful support (ie a graphical ui)? # Should we build a JDK/JVM with headful support (ie a graphical ui)?
# We always build headless support. # We always build headless support.
#
AC_MSG_CHECKING([headful support]) AC_MSG_CHECKING([headful support])
AC_ARG_ENABLE([headful], [AS_HELP_STRING([--disable-headful], AC_ARG_ENABLE([headful], [AS_HELP_STRING([--disable-headful],
[disable building headful support (graphical UI support) @<:@enabled@:>@])], [disable building headful support (graphical UI support) @<:@enabled@:>@])],
@ -398,21 +157,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
AC_SUBST(SUPPORT_HEADFUL) AC_SUBST(SUPPORT_HEADFUL)
AC_SUBST(BUILD_HEADLESS) AC_SUBST(BUILD_HEADLESS)
# Control wether Hotspot runs Queens test after build.
AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build],
[run the Queens test after Hotspot build @<:@disabled@:>@])],,
[enable_hotspot_test_in_build=no])
if test "x$enable_hotspot_test_in_build" = "xyes"; then
TEST_IN_BUILD=true
else
TEST_IN_BUILD=false
fi
AC_SUBST(TEST_IN_BUILD)
###############################################################################
#
# Choose cacerts source file # Choose cacerts source file
#
AC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file], AC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file],
[specify alternative cacerts file])]) [specify alternative cacerts file])])
if test "x$with_cacerts_file" != x; then if test "x$with_cacerts_file" != x; then
@ -420,10 +165,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
fi fi
AC_SUBST(CACERTS_FILE) AC_SUBST(CACERTS_FILE)
###############################################################################
#
# Enable or disable unlimited crypto # Enable or disable unlimited crypto
#
AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto], AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto],
[Enable unlimited crypto policy @<:@disabled@:>@])],, [Enable unlimited crypto policy @<:@disabled@:>@])],,
[enable_unlimited_crypto=no]) [enable_unlimited_crypto=no])
@ -434,10 +176,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
fi fi
AC_SUBST(UNLIMITED_CRYPTO) AC_SUBST(UNLIMITED_CRYPTO)
###############################################################################
#
# Compress jars # Compress jars
#
COMPRESS_JARS=false COMPRESS_JARS=false
AC_SUBST(COMPRESS_JARS) AC_SUBST(COMPRESS_JARS)
@ -455,19 +194,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
AC_SUBST(COPYRIGHT_YEAR) AC_SUBST(COPYRIGHT_YEAR)
]) ])
AC_DEFUN_ONCE([JDKOPT_SETUP_BUILD_TWEAKS],
[
HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET"
AC_SUBST(HOTSPOT_MAKE_ARGS)
# The name of the Service Agent jar.
SALIB_NAME="${LIBRARY_PREFIX}saproc${SHARED_LIBRARY_SUFFIX}"
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
SALIB_NAME="${LIBRARY_PREFIX}sawindbg${SHARED_LIBRARY_SUFFIX}"
fi
AC_SUBST(SALIB_NAME)
])
############################################################################### ###############################################################################
# #
# Enable or disable the elliptic curve crypto implementation # Enable or disable the elliptic curve crypto implementation
@ -487,7 +213,6 @@ AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],
AC_SUBST(ENABLE_INTREE_EC) AC_SUBST(ENABLE_INTREE_EC)
]) ])
AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS], AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
[ [
# #
@ -498,8 +223,21 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
AC_ARG_WITH([native-debug-symbols], AC_ARG_WITH([native-debug-symbols],
[AS_HELP_STRING([--with-native-debug-symbols], [AS_HELP_STRING([--with-native-debug-symbols],
[set the native debug symbol configuration (none, internal, external, zipped) @<:@zipped@:>@])], [set the native debug symbol configuration (none, internal, external, zipped) @<:@zipped@:>@])],
[], [
[with_native_debug_symbols="zipped"]) if test "x$OPENJDK_TARGET_OS" = xaix; then
if test "x$withval" = xexternal || test "x$withval" = xzipped; then
AC_MSG_ERROR([AIX only supports the parameters 'none' and 'internal' for --with-native-debug-symbols])
fi
fi
],
[
if test "x$OPENJDK_TARGET_OS" = xaix; then
# AIX doesn't support 'zipped' so use 'internal' as default
with_native_debug_symbols="internal"
else
with_native_debug_symbols="zipped"
fi
])
NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols
AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS]) AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS])
@ -640,5 +378,3 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_STATIC_BUILD],
AC_SUBST(STATIC_BUILD) AC_SUBST(STATIC_BUILD)
]) ])

View File

@ -321,6 +321,25 @@ AC_DEFUN_ONCE([LIB_SETUP_FREETYPE],
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(FREETYPE_BASE_DIR) BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(FREETYPE_BASE_DIR)
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location]) LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])
fi fi
if test "x$FOUND_FREETYPE" != xyes; then
FREETYPE_BASE_DIR="$HOME/freetype"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(FREETYPE_BASE_DIR)
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib64], [well-known location])
else
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib32], [well-known location])
fi
if test "x$FOUND_FREETYPE" != xyes && test -d $FREETYPE_BASE_DIR \
&& test -s "$FREETYPE_BASE_DIR/builds/windows/vc2010/freetype.vcxproj" && test "x$MSBUILD" != x; then
# Source is available, as a last resort try to build freetype in default location
LIB_BUILD_FREETYPE($FREETYPE_BASE_DIR)
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib64], [well-known location])
else
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib32], [well-known location])
fi
fi
fi
else else
FREETYPE_BASE_DIR="$SYSROOT/usr" FREETYPE_BASE_DIR="$SYSROOT/usr"
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location]) LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])

View File

@ -204,13 +204,12 @@ SUPPORT_HEADLESS:=@SUPPORT_HEADLESS@
# These are the libjvms that we want to build. # These are the libjvms that we want to build.
# The java launcher uses the default. # The java launcher uses the default.
# The others can be selected by specifying -client -server -minimal1 -kernel -zero or -zeroshark # The others can be selected by specifying -client -server -minimal1 -zero or -zeroshark
# on the java launcher command line. # on the java launcher command line.
JVM_VARIANTS:=@JVM_VARIANTS@ JVM_VARIANTS:=@JVM_VARIANTS@
JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@ JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@
JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@ JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@
JVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@ JVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@
JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@
JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@ JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@
JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@ JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@
JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@ JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@
@ -270,6 +269,7 @@ SJAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers
# Number of parallel jobs to use for compilation # Number of parallel jobs to use for compilation
JOBS?=@JOBS@ JOBS?=@JOBS@
TEST_JOBS?=@TEST_JOBS@
# Default make target # Default make target
DEFAULT_MAKE_TARGET:=@DEFAULT_MAKE_TARGET@ DEFAULT_MAKE_TARGET:=@DEFAULT_MAKE_TARGET@
@ -280,6 +280,8 @@ FREETYPE_BUNDLE_LIB_PATH=@FREETYPE_BUNDLE_LIB_PATH@
CUPS_CFLAGS:=@CUPS_CFLAGS@ CUPS_CFLAGS:=@CUPS_CFLAGS@
ALSA_LIBS:=@ALSA_LIBS@ ALSA_LIBS:=@ALSA_LIBS@
ALSA_CFLAGS:=@ALSA_CFLAGS@ ALSA_CFLAGS:=@ALSA_CFLAGS@
LIBFFI_LIBS:=@LIBFFI_LIBS@
LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@
PACKAGE_PATH=@PACKAGE_PATH@ PACKAGE_PATH=@PACKAGE_PATH@
@ -300,11 +302,15 @@ MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
# Toolchain type: gcc, clang, solstudio, lxc, microsoft... # Toolchain type: gcc, clang, solstudio, lxc, microsoft...
TOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@ TOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@
TOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@
# Option used to tell the compiler whether to create 32- or 64-bit executables # Option used to tell the compiler whether to create 32- or 64-bit executables
COMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@ COMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@
COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@ COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@
# Option used to pass a command file to the compiler
COMPILER_COMMAND_FILE_FLAG:=@COMPILER_COMMAND_FILE_FLAG@
CC_OUT_OPTION:=@CC_OUT_OPTION@ CC_OUT_OPTION:=@CC_OUT_OPTION@
EXE_OUT_OPTION:=@EXE_OUT_OPTION@ EXE_OUT_OPTION:=@EXE_OUT_OPTION@
LD_OUT_OPTION:=@LD_OUT_OPTION@ LD_OUT_OPTION:=@LD_OUT_OPTION@
@ -388,6 +394,7 @@ LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@
BUILD_CC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@ BUILD_CC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@
BUILD_CXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@ BUILD_CXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@
BUILD_LD:=@FIXPATH@ @BUILD_LD@ BUILD_LD:=@FIXPATH@ @BUILD_LD@
BUILD_LDCXX:=@FIXPATH@ @BUILD_LDCXX@
BUILD_AS:=@FIXPATH@ @BUILD_AS@ BUILD_AS:=@FIXPATH@ @BUILD_AS@
BUILD_AR:=@FIXPATH@ @BUILD_AR@ BUILD_AR:=@FIXPATH@ @BUILD_AR@
BUILD_NM:=@FIXPATH@ @BUILD_NM@ BUILD_NM:=@FIXPATH@ @BUILD_NM@
@ -433,6 +440,8 @@ COMPRESS_JARS=@COMPRESS_JARS@
# (Note absence of := assignment, because we do not want to evaluate the macro body here) # (Note absence of := assignment, because we do not want to evaluate the macro body here)
SET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@ SET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@
SHARED_LIBRARY_FLAGS=@SHARED_LIBRARY_FLAGS@
# Set origin using the linker, ie use the relative path to the dependent library to find the dependees. # Set origin using the linker, ie use the relative path to the dependent library to find the dependees.
# (Note absence of := assignment, because we do not want to evaluate the macro body here) # (Note absence of := assignment, because we do not want to evaluate the macro body here)
SET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@ SET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@
@ -650,9 +659,6 @@ PNG_CFLAGS:=@PNG_CFLAGS@
# Misc # Misc
# #
# Name of Service Agent library
SALIB_NAME=@SALIB_NAME@
INCLUDE_SA=@INCLUDE_SA@ INCLUDE_SA=@INCLUDE_SA@
OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@ OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@

View File

@ -216,7 +216,11 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
# The microsoft toolchain also requires INCLUDE and LIB to be set. # The microsoft toolchain also requires INCLUDE and LIB to be set.
export INCLUDE="$VS_INCLUDE" export INCLUDE="$VS_INCLUDE"
export LIB="$VS_LIB" export LIB="$VS_LIB"
else
# Currently we do not define this for other toolchains. This might change as the need arise.
TOOLCHAIN_VERSION=
fi fi
AC_SUBST(TOOLCHAIN_VERSION)
# For solaris we really need solaris tools, and not the GNU equivalent. # For solaris we really need solaris tools, and not the GNU equivalent.
# The build tools on Solaris reside in /usr/ccs (C Compilation System), # The build tools on Solaris reside in /usr/ccs (C Compilation System),
@ -731,6 +735,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
BUILD_AS="$BUILD_CC -c" BUILD_AS="$BUILD_CC -c"
# Just like for the target compiler, use the compiler as linker # Just like for the target compiler, use the compiler as linker
BUILD_LD="$BUILD_CC" BUILD_LD="$BUILD_CC"
BUILD_LDCXX="$BUILD_CXX"
PATH="$OLDPATH" PATH="$OLDPATH"
else else
@ -739,6 +744,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
BUILD_CC="$CC" BUILD_CC="$CC"
BUILD_CXX="$CXX" BUILD_CXX="$CXX"
BUILD_LD="$LD" BUILD_LD="$LD"
BUILD_LDCXX="$LDCXX"
BUILD_NM="$NM" BUILD_NM="$NM"
BUILD_AS="$AS" BUILD_AS="$AS"
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS" BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
@ -749,6 +755,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
AC_SUBST(BUILD_CC) AC_SUBST(BUILD_CC)
AC_SUBST(BUILD_CXX) AC_SUBST(BUILD_CXX)
AC_SUBST(BUILD_LD) AC_SUBST(BUILD_LD)
AC_SUBST(BUILD_LDCXX)
AC_SUBST(BUILD_NM) AC_SUBST(BUILD_NM)
AC_SUBST(BUILD_AS) AC_SUBST(BUILD_AS)
AC_SUBST(BUILD_SYSROOT_CFLAGS) AC_SUBST(BUILD_SYSROOT_CFLAGS)
@ -822,13 +829,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
[HAS_CFLAG_OPTIMIZE_DEBUG=false]) [HAS_CFLAG_OPTIMIZE_DEBUG=false])
# "-z relro" supported in GNU binutils 2.17 and later # "-z relro" supported in GNU binutils 2.17 and later
LINKER_RELRO_FLAG="-Xlinker -z -Xlinker relro" LINKER_RELRO_FLAG="-Wl,-z,relro"
FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_RELRO_FLAG], FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_RELRO_FLAG],
[HAS_LINKER_RELRO=true], [HAS_LINKER_RELRO=true],
[HAS_LINKER_RELRO=false]) [HAS_LINKER_RELRO=false])
# "-z now" supported in GNU binutils 2.11 and later # "-z now" supported in GNU binutils 2.11 and later
LINKER_NOW_FLAG="-Xlinker -z -Xlinker now" LINKER_NOW_FLAG="-Wl,-z,now"
FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_NOW_FLAG], FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_NOW_FLAG],
[HAS_LINKER_NOW=true], [HAS_LINKER_NOW=true],
[HAS_LINKER_NOW=false]) [HAS_LINKER_NOW=false])
@ -841,7 +848,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables]) AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables])
$ECHO "SUNWprivate_1.1 { local: *; };" > version-script.map $ECHO "SUNWprivate_1.1 { local: *; };" > version-script.map
$ECHO "int main() { }" > main.c $ECHO "int main() { }" > main.c
if $CXX -Xlinker -version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then if $CXX -Wl,-version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
USING_BROKEN_SUSE_LD=no USING_BROKEN_SUSE_LD=no
else else

View File

@ -37,13 +37,18 @@ fi
if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
FULLDUMP_CMD="$OTOOL -v -V -h -X -d" FULLDUMP_CMD="$OTOOL -v -V -h -X -d"
LDD_CMD="$OTOOL -L" LDD_CMD="$OTOOL -L"
DIS_CMD="$OTOOL -v -t" DIS_CMD="$OTOOL -v -V -t"
STAT_PRINT_SIZE="-f %z" STAT_PRINT_SIZE="-f %z"
elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
FULLDUMP_CMD="$DUMPBIN -all" FULLDUMP_CMD="$DUMPBIN -all"
LDD_CMD="$DUMPBIN -dependants | $GREP .dll" LDD_CMD="$DUMPBIN -dependants | $GREP .dll"
DIS_CMD="$DUMPBIN -disasm:nobytes" DIS_CMD="$DUMPBIN -disasm:nobytes"
STAT_PRINT_SIZE="-c %s" STAT_PRINT_SIZE="-c %s"
elif [ "$OPENJDK_TARGET_OS" = "aix" ]; then
FULLDUMP_CMD="dump -h -r -t -n -X64"
LDD_CMD="$LDD"
DIS_CMD="$OBJDUMP -d"
STAT_PRINT_SIZE="-c %s"
else else
FULLDUMP_CMD="$READELF -a" FULLDUMP_CMD="$READELF -a"
LDD_CMD="$LDD" LDD_CMD="$LDD"
@ -730,6 +735,9 @@ compare_bin_file() {
# Some symbols get seemingly random 15 character prefixes. Filter them out. # Some symbols get seemingly random 15 character prefixes. Filter them out.
$NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other $NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
$NM -a $ORIG_THIS_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this $NM -a $ORIG_THIS_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
elif [ "$OPENJDK_TARGET_OS" = "aix" ]; then
$OBJDUMP -T $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
$OBJDUMP -T $ORIG_THIS_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
else else
$NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other $NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
$NM -a $ORIG_THIS_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this $NM -a $ORIG_THIS_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
@ -796,14 +804,21 @@ compare_bin_file() {
DEP_MSG=" - " DEP_MSG=" - "
fi fi
# Some linux compilers add a unique Build ID
if [ "$OPENJDK_TARGET_OS" = "linux" ]; then
BUILD_ID_FILTER="$SED -r 's/(Build ID:) [0-9a-f]{40}/\1/'"
else
BUILD_ID_FILTER="$CAT"
fi
# Compare fulldump output # Compare fulldump output
if [ -n "$FULLDUMP_CMD" ] && [ -z "$SKIP_FULLDUMP_DIFF" ]; then if [ -n "$FULLDUMP_CMD" ] && [ -z "$SKIP_FULLDUMP_DIFF" ]; then
if [ -z "$FULLDUMP_DIFF_FILTER" ]; then if [ -z "$FULLDUMP_DIFF_FILTER" ]; then
FULLDUMP_DIFF_FILTER="$CAT" FULLDUMP_DIFF_FILTER="$CAT"
fi fi
$FULLDUMP_CMD $OTHER_FILE | eval "$FULLDUMP_DIFF_FILTER" \ $FULLDUMP_CMD $OTHER_FILE | eval "$BUILD_ID_FILTER" | eval "$FULLDUMP_DIFF_FILTER" \
> $WORK_FILE_BASE.fulldump.other 2>&1 > $WORK_FILE_BASE.fulldump.other 2>&1
$FULLDUMP_CMD $THIS_FILE | eval "$FULLDUMP_DIFF_FILTER" \ $FULLDUMP_CMD $THIS_FILE | eval "$BUILD_ID_FILTER" | eval "$FULLDUMP_DIFF_FILTER" \
> $WORK_FILE_BASE.fulldump.this 2>&1 > $WORK_FILE_BASE.fulldump.this 2>&1
LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this \ LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this \

View File

@ -57,14 +57,18 @@ ACCEPTED_BIN_DIFF="
./demo/jvmti/mtrace/lib/libmtrace.so ./demo/jvmti/mtrace/lib/libmtrace.so
./demo/jvmti/versionCheck/lib/libversionCheck.so ./demo/jvmti/versionCheck/lib/libversionCheck.so
./demo/jvmti/waiters/lib/libwaiters.so ./demo/jvmti/waiters/lib/libwaiters.so
./lib/i386/client/libjsig.so
./lib/i386/client/libjvm.so ./lib/i386/client/libjvm.so
./lib/i386/libattach.so ./lib/i386/libattach.so
./lib/i386/libdt_socket.so ./lib/i386/libdt_socket.so
./lib/i386/libinstrument.so ./lib/i386/libinstrument.so
./lib/i386/libjsdt.so ./lib/i386/libjsdt.so
./lib/i386/libjsig.so
./lib/i386/libmanagement.so ./lib/i386/libmanagement.so
./lib/i386/libnet.so
./lib/i386/libnpt.so ./lib/i386/libnpt.so
./lib/i386/libverify.so ./lib/i386/libverify.so
./lib/i386/server/libjsig.so
./lib/i386/server/libjvm.so ./lib/i386/server/libjvm.so
./bin/appletviewer ./bin/appletviewer
./bin/idlj ./bin/idlj
@ -105,6 +109,17 @@ ACCEPTED_BIN_DIFF="
./bin/xjc ./bin/xjc
" "
# Issue with __FILE__ usage in generated header files prevent clean fulldump diff of
# server jvm with old hotspot build.
KNOWN_FULLDUMP_DIFF="
./lib/i386/server/libjvm.so
"
KNOWN_DIS_DIFF="
./lib/i386/server/libjvm.so
"
DIS_DIFF_FILTER="$SED \
-e 's/\(:\t\)\([0-9a-z]\{2,2\} \)\{1,7\}/\1<hex>/g' \
-e 's/0x[0-9a-z]\{2,9\}/<hex>/g'"
fi fi
if [ "$OPENJDK_TARGET_OS" = "linux" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then if [ "$OPENJDK_TARGET_OS" = "linux" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
@ -135,6 +150,7 @@ ACCEPTED_BIN_DIFF="
./lib/amd64/libjsdt.so ./lib/amd64/libjsdt.so
./lib/amd64/libjsig.so ./lib/amd64/libjsig.so
./lib/amd64/libmanagement.so ./lib/amd64/libmanagement.so
./lib/amd64/libnet.so
./lib/amd64/libnpt.so ./lib/amd64/libnpt.so
./lib/amd64/libsaproc.so ./lib/amd64/libsaproc.so
./lib/amd64/libverify.so ./lib/amd64/libverify.so
@ -179,6 +195,12 @@ ACCEPTED_BIN_DIFF="
./bin/xjc ./bin/xjc
" "
# Issue with __FILE__ usage in generated header files prevent clean fulldump diff of
# server jvm with old hotspot build.
KNOWN_FULLDUMP_DIFF="
./lib/amd64/server/libjvm.so
"
fi fi
if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
@ -299,14 +321,13 @@ SKIP_FULLDUMP_DIFF="true"
# Filter random C++ symbol strings. # Filter random C++ symbol strings.
# Some numbers differ randomly. # Some numbers differ randomly.
# Can't use space in these expressions as the shell will mess with them.
DIS_DIFF_FILTER="$SED \ DIS_DIFF_FILTER="$SED \
-e 's/\.[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g' \ -e 's/\.[a-zA-Z0-9_\$]\{15\}/<SYM>/g' \
-e 's/\([0-9a-f][0-9a-f].\)\{2,8\}[0-9a-f][0-9a-f]/<NUMS>/g' \ -e 's/\(\# \)[0-9a-f]*\( <\)/\1<HEX>\2/g' \
-e 's/\(0x\)[0-9a-f]*\([,(>]\)/\1<HEX>\2/g' \ -e 's/0x[0-9a-f]*$/<HEX>/g' \
-e 's/\(0x\)[0-9a-f]*$/\1<HEX>/g' \ -e 's/0x[0-9a-f]*\([,(>]\)/<HEX>\1/g' \
-e 's/\(\#.\)[0-9a-f]*\(.<\)/\1<HEX>\2/g' \ -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: <NUMS>/g' \
-e 's/[\.A-Za-z0-9%]\{16,16\}$/<BIN>/g'" -e 's/ [\.A-Za-z0-9%@]\{16\}$/ <BIN>/g'"
fi fi
@ -425,18 +446,23 @@ ACCEPTED_SMALL_SIZE_DIFF="
./bin/xjc ./bin/xjc
" "
# Filter random C++ symbol strings.
# Some numbers differ randomly. # Some numbers differ randomly.
DIS_DIFF_FILTER="$SED \ DIS_DIFF_FILTER="$SED \
-e 's/\$[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g' \ -e 's/\$[a-zA-Z0-9_\$]\{15\}/<SYM>/g' \
-e 's/[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f]/<NUMS>/g' \ -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: <NUMS>/g' \
-e 's/\(%g1,.0x\)[0-9a-f]*\(,.%g1\)/\1<HEX>\2/g' \ -e 's/, [0-9a-fx\-]\{1,8\}/, <CONST>/g' \
-e 's/\(!.\)[0-9a-f]*\(.<SUNWprivate_1.1+0x\)[0-9a-f]*/\1<NUM>\2<HEX>/g' \ -e 's/call [0-9a-f]\{7\}/call <ADDR>/g' \
-e 's/\!.[0-9a-f]\{1,4\} <_DYNAMIC+0x[0-9a-f]\{1,4\}>/<DYNAMIC>/g'" -e 's/0x[0-9a-f]\{1,8\}/<HEX>/g' \
-e 's/\! [0-9a-f]\{1,8\} /! <ADDR> /g'"
# Some xor instructions end up with different args in the lib but not in the object files. # libjvm.so
ACCEPTED_DIS_DIFF=" # __FILE__ macro usage in debug.hpp causes differences between old and new
./demo/jvmti/waiters/lib/libwaiters.so # hotspot builds in ad_sparc.o and ad_sparc_clone.o. The .o files compare
# equal when stripped, but at link time differences appear. Removing
# __FILE__ from ShouldNotCallThis() and ShouldNotReachHere() removes
# the differences.
KNOWN_DIS_DIFF="
./lib/sparcv9/server/libjvm.so
" "
SKIP_FULLDUMP_DIFF="true" SKIP_FULLDUMP_DIFF="true"
@ -634,11 +660,12 @@ ACCEPTED_BIN_DIFF="
SORT_SYMBOLS=" SORT_SYMBOLS="
./Contents/Home/lib/libsaproc.dylib ./Contents/Home/lib/libsaproc.dylib
./lib/libsaproc.dylib ./lib/libsaproc.dylib
./lib/libjsig.dylib
" "
ACCEPTED_SMALL_SIZE_DIFF="$ACCEPTED_BIN_DIFF" ACCEPTED_SMALL_SIZE_DIFF="$ACCEPTED_BIN_DIFF"
DIS_DIFF_FILTER="$SED \ DIS_DIFF_FILTER="LANG=C $SED \
-e 's/0x[0-9a-f]\{4,16\}/<HEXSTR>/g'" -e 's/0x[0-9a-f]\{3,16\}/<HEXSTR>/g' -e 's/^[0-9a-f]\{12,20\}/<ADDR>/'"
fi fi

View File

@ -357,8 +357,8 @@ var getJibProfilesDependencies = function (input, common) {
var devkit_platform_revisions = { var devkit_platform_revisions = {
linux_x64: "gcc4.9.2-OEL6.4+1.0", linux_x64: "gcc4.9.2-OEL6.4+1.0",
macosx_x64: "Xcode6.3-MacOSX10.9+1.0", macosx_x64: "Xcode6.3-MacOSX10.9+1.0",
solaris_x64: "SS12u3-Solaris10u10+1.0", solaris_x64: "SS12u4-Solaris11u1+1.0",
solaris_sparcv9: "SS12u3-Solaris10u10+1.0", solaris_sparcv9: "SS12u4-Solaris11u1+1.0",
windows_x64: "VS2013SP4+1.0" windows_x64: "VS2013SP4+1.0"
}; };

View File

@ -339,3 +339,4 @@ f7d70caad89ad0c43bb057bca0aad6f17ce05a6a jdk9-b92
61e9f509be0f78f0961477960f372b0533214bb8 jdk9-b94 61e9f509be0f78f0961477960f372b0533214bb8 jdk9-b94
fd038e8a16eec80d0d6b337d74a582790ed4b3ee jdk-9+95 fd038e8a16eec80d0d6b337d74a582790ed4b3ee jdk-9+95
feb1bd85d7990dcf5584ca9e53104269c01db006 jdk-9+96 feb1bd85d7990dcf5584ca9e53104269c01db006 jdk-9+96
10a482b863582376d4ca229090334b23b05159fc jdk-9+97

View File

@ -499,3 +499,4 @@ d8b24776484cc4dfd19f50b23eaa18a80a161371 jdk9-b93
a22b7c80529f5f05c847e932e017456e83c46233 jdk9-b94 a22b7c80529f5f05c847e932e017456e83c46233 jdk9-b94
0c79cf3cdf0904fc4a630b91b32904491e1ae430 jdk-9+95 0c79cf3cdf0904fc4a630b91b32904491e1ae430 jdk-9+95
a94bb7203596dd632486f1e3655fa5f70541dc08 jdk-9+96 a94bb7203596dd632486f1e3655fa5f70541dc08 jdk-9+96
de592ea5f7ba0f8a8c5afc03bd169f7690c72b6f jdk-9+97

View File

@ -339,3 +339,4 @@ b9c50c63305cf1120263f6b7c6993021b53c2c40 jdk9-b93
5e75b8a9c01bca09c56dec7539e44dc82090c7c2 jdk9-b94 5e75b8a9c01bca09c56dec7539e44dc82090c7c2 jdk9-b94
c8d0845877a811ab4350935892f826929359a3ff jdk-9+95 c8d0845877a811ab4350935892f826929359a3ff jdk-9+95
1f3182529f2c474e5506955ccb3820cfa5822265 jdk-9+96 1f3182529f2c474e5506955ccb3820cfa5822265 jdk-9+96
9c107c050335d7ee63b2a8b38ca5d498f19713a2 jdk-9+97

View File

@ -342,3 +342,4 @@ fe772cbc64f4e0418c5bf694e9e7123f02e1808f jdk9-b92
e8d15c61400c1682a7873e053d7b39efde0b79be jdk9-b94 e8d15c61400c1682a7873e053d7b39efde0b79be jdk9-b94
3e03ddaaac6585fa27e91596eb2a9a31e10bdcc9 jdk-9+95 3e03ddaaac6585fa27e91596eb2a9a31e10bdcc9 jdk-9+95
b55cebc47555293cf9c2aefb3bf63c56e847ab19 jdk-9+96 b55cebc47555293cf9c2aefb3bf63c56e847ab19 jdk-9+96
7293db4716ee25b814e14f738b9acfb85700e3fa jdk-9+97

View File

@ -339,3 +339,4 @@ b433e4dfb830fea60e5187e4580791b62cc362d2 jdk9-b90
559b626b01179420a94feb9c3d0f246970d2e3fa jdk9-b94 559b626b01179420a94feb9c3d0f246970d2e3fa jdk9-b94
8581faf0d474472e32f589bbc16db7eec912d83f jdk-9+95 8581faf0d474472e32f589bbc16db7eec912d83f jdk-9+95
c021b855f51e572e63982654b17742cb1f814fb4 jdk-9+96 c021b855f51e572e63982654b17742cb1f814fb4 jdk-9+96
fdd84b2265ddce7f50e084b7c8635189bba6f012 jdk-9+97

View File

@ -339,3 +339,4 @@ a3415b57507c928af8f2ad1c771eebafcd00c6c7 jdk9-b92
8356d7a909a29f321e3eaf9d3c2bbc71648529e2 jdk9-b94 8356d7a909a29f321e3eaf9d3c2bbc71648529e2 jdk9-b94
c35ddcde581676275cfeff33e1a2b90b902593d9 jdk-9+95 c35ddcde581676275cfeff33e1a2b90b902593d9 jdk-9+95
d2a44416cba39957ea231eedc2fb8aad7be1b30c jdk-9+96 d2a44416cba39957ea231eedc2fb8aad7be1b30c jdk-9+96
ae8cdc734bab4f19ef8babd2434dcf024672ad38 jdk-9+97

View File

@ -83,6 +83,7 @@ help:
$(info $(_) # To see executed command lines, use LOG=debug) $(info $(_) # To see executed command lines, use LOG=debug)
$(info $(_) JOBS=<n> # Run <n> parallel make jobs) $(info $(_) JOBS=<n> # Run <n> parallel make jobs)
$(info $(_) # Note that -jN does not work as expected!) $(info $(_) # Note that -jN does not work as expected!)
$(info $(_) TEST_JOBS=<n> # Run <n> parallel test jobs)
$(info $(_) CONF_CHECK=<method> # What to do if spec file is out of date) $(info $(_) CONF_CHECK=<method> # What to do if spec file is out of date)
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default)) $(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
$(info $(_) make test TEST=<test> # Only run the given test or tests, e.g.) $(info $(_) make test TEST=<test> # Only run the given test or tests, e.g.)

View File

@ -40,7 +40,8 @@ ifeq ($(HAS_SPEC),)
############################################################################## ##############################################################################
# Make control variables, handled by Init.gmk # Make control variables, handled by Init.gmk
INIT_CONTROL_VARIABLES := LOG CONF CONF_NAME SPEC JOBS CONF_CHECK COMPARE_BUILD INIT_CONTROL_VARIABLES := LOG CONF CONF_NAME SPEC JOBS TEST_JOBS CONF_CHECK \
COMPARE_BUILD
# All known make control variables # All known make control variables
MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER

View File

@ -35,7 +35,8 @@ define RunTests
($(CD) $(SRC_ROOT)/test && $(MAKE) $(MAKE_ARGS) -j1 -k MAKEFLAGS= \ ($(CD) $(SRC_ROOT)/test && $(MAKE) $(MAKE_ARGS) -j1 -k MAKEFLAGS= \
JT_HOME=$(JT_HOME) PRODUCT_HOME=$(JDK_IMAGE_DIR) \ JT_HOME=$(JT_HOME) PRODUCT_HOME=$(JDK_IMAGE_DIR) \
TEST_IMAGE_DIR=$(TEST_IMAGE_DIR) \ TEST_IMAGE_DIR=$(TEST_IMAGE_DIR) \
ALT_OUTPUTDIR=$(OUTPUT_ROOT) CONCURRENCY=$(JOBS) $1) || true ALT_OUTPUTDIR=$(OUTPUT_ROOT) TEST_JOBS=$(TEST_JOBS) \
JOBS=$(JOBS) $1) || true
endef endef
# Cleans the dir given as $1 # Cleans the dir given as $1

View File

@ -151,16 +151,16 @@ else # HAS_FILE_FUNCTION
$(eval compress_paths = \ $(eval compress_paths = \
$(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-pre-compress.incl))) $(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-pre-compress.incl)))
compress_paths += \ compress_paths += \
$(subst $(SRC_ROOT),X97,\ $(subst $(SRC_ROOT),X97, \
$(subst $(OUTPUT_ROOT),X98,\ $(subst $(OUTPUT_ROOT),X98, \
$(subst X,X00,\ $(subst X,X00, \
$(subst $(SPACE),\n,$(strip $1))))) $(subst $(SPACE),\n,$(strip $1)))))
$(eval compress_paths += \ $(eval compress_paths += \
$(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-post-compress.incl))) $(strip $(shell $(CAT) $(SRC_ROOT)/make/common/support/ListPathsSafely-post-compress.incl)))
decompress_paths=$(SED) -f $(SRC_ROOT)/make/common/support/ListPathsSafely-uncompress.sed \ decompress_paths=$(SED) -f $(SRC_ROOT)/make/common/support/ListPathsSafely-uncompress.sed \
-e 's|X99|\\n|g' \ -e 's|X99|\\n|g' \
-e 's|X98|$(OUTPUT_ROOT)|g' -e 's|X97|$(SRC_ROOT)|g' \ -e 's|X98|$(OUTPUT_ROOT)|g' -e 's|X97|$(SRC_ROOT)|g' \
-e 's|X00|X|g' -e 's|X00|X|g'
ListPathsSafely_IfPrintf = \ ListPathsSafely_IfPrintf = \
@ -172,10 +172,10 @@ $(subst X,X00,\
# Param 1 - Name of variable containing paths/arguments to output # Param 1 - Name of variable containing paths/arguments to output
# Param 2 - File to print to # Param 2 - File to print to
# Param 3 - Set to true to append to file instead of overwriting # Param 3 - Set to true to append to file instead of overwriting
define ListPathsSafely define ListPathsSafely
ifneq (,$$(word 10001,$$($1))) ifneq (,$$(word 10001,$$($1)))
$$(error Cannot list safely more than 10000 paths. $1 has $$(words $$($1)) paths!) $$(error Cannot list safely more than 10000 paths. $1 has $$(words $$($1)) paths!)
endif endif
$$(call MakeDir, $$(dir $2)) $$(call MakeDir, $$(dir $2))
ifneq ($$(strip $3), true) ifneq ($$(strip $3), true)
$$(shell $(RM) $$(strip $2)) $$(shell $(RM) $$(strip $2))
@ -230,7 +230,7 @@ define ListPathsSafely
$$(call ListPathsSafely_IfPrintf,$1,$2,9251,9500) $$(call ListPathsSafely_IfPrintf,$1,$2,9251,9500)
$$(call ListPathsSafely_IfPrintf,$1,$2,9501,9750) $$(call ListPathsSafely_IfPrintf,$1,$2,9501,9750)
$$(call ListPathsSafely_IfPrintf,$1,$2,9751,10000) $$(call ListPathsSafely_IfPrintf,$1,$2,9751,10000)
endef endef
endif # HAS_FILE_FUNCTION endif # HAS_FILE_FUNCTION
# The source tips can come from the Mercurial repository, or in the files # The source tips can come from the Mercurial repository, or in the files
@ -285,18 +285,24 @@ define SetupLogging
# Never remove warning messages; this is just for completeness # Never remove warning messages; this is just for completeness
LOG_WARN := LOG_WARN :=
ifneq ($$(findstring $$(LOG_LEVEL), info debug trace),) ifneq ($$(findstring $$(LOG_LEVEL), info debug trace),)
LogInfo = $$(info $$(strip $$1))
LOG_INFO := LOG_INFO :=
else else
LogInfo =
LOG_INFO := > /dev/null LOG_INFO := > /dev/null
endif endif
ifneq ($$(findstring $$(LOG_LEVEL), debug trace),) ifneq ($$(findstring $$(LOG_LEVEL), debug trace),)
LogDebug = $$(info $$(strip $$1))
LOG_DEBUG := LOG_DEBUG :=
else else
LogDebug =
LOG_DEBUG := > /dev/null LOG_DEBUG := > /dev/null
endif endif
ifneq ($$(findstring $$(LOG_LEVEL), trace),) ifneq ($$(findstring $$(LOG_LEVEL), trace),)
LogTrace = $$(info $$(strip $$1))
LOG_TRACE := LOG_TRACE :=
else else
LogTrace =
LOG_TRACE := > /dev/null LOG_TRACE := > /dev/null
endif endif
endef endef
@ -450,6 +456,23 @@ remove-prefixes = \
$(strip $(if $1,$(patsubst $(firstword $1)%,%,\ $(strip $(if $1,$(patsubst $(firstword $1)%,%,\
$(call remove-prefixes,$(filter-out $(firstword $1),$1),$2)),$2)) $(call remove-prefixes,$(filter-out $(firstword $1),$1),$2)),$2))
# Convert the string given to upper case, without any $(shell)
# Inspired by http://lists.gnu.org/archive/html/help-make/2013-09/msg00009.html
uppercase_table := a,A b,B c,C d,D e,E f,F g,G h,H i,I j,J k,K l,L m,M n,N o,O \
p,P q,Q r,R s,S t,T u,U v,V w,W x,X y,Y z,Z
uppercase_internal = \
$(if $(strip $1), $$(subst $(firstword $1), $(call uppercase_internal, \
$(wordlist 2, $(words $1), $1), $2)), $2)
# Convert a string to upper case. Works only on a-z.
# $1 - The string to convert
uppercase = \
$(strip \
$(eval uppercase_result := $(call uppercase_internal, $(uppercase_table), $1)) \
$(uppercase_result) \
)
################################################################################ ################################################################################
ifneq ($(DISABLE_CACHE_FIND), true) ifneq ($(DISABLE_CACHE_FIND), true)
@ -560,8 +583,9 @@ define SetupCopyFilesBody
$1_NAME_MACRO := identity $1_NAME_MACRO := identity
endif endif
# Remove any trailing slash from SRC # Remove any trailing slash from SRC and DEST
$1_SRC := $$(patsubst %/,%,$$($1_SRC)) $1_SRC := $$(patsubst %/,%,$$($1_SRC))
$1_DEST := $$(patsubst %/,%,$$($1_DEST))
$$(foreach f, $$(patsubst $$($1_SRC)/%,%,$$($1_FILES)), \ $$(foreach f, $$(patsubst $$($1_SRC)/%,%,$$($1_FILES)), \
$$(eval $$(call AddFileToCopy, $$($1_SRC)/$$f, \ $$(eval $$(call AddFileToCopy, $$($1_SRC)/$$f, \
@ -592,9 +616,9 @@ ifeq ($(HAS_FILE_FUNCTION), true)
WriteFile = \ WriteFile = \
$(file >$2,$(strip $1)) $(file >$2,$(strip $1))
else else
# Use printf to get consistent behavior on all platforms. # Use printf to get consistent behavior on all platforms.
WriteFile = \ WriteFile = \
$(shell $(PRINTF) "%s" $(call ShellQuote, $1) > $2) $(shell $(PRINTF) "%s" $(call ShellQuote, $1) > $2)
endif endif
################################################################################ ################################################################################

View File

@ -129,6 +129,12 @@ $(eval $(call DefineNativeToolchain, TOOLCHAIN_BUILD, \
SYSROOT_LDFLAGS := $(BUILD_SYSROOT_LDFLAGS), \ SYSROOT_LDFLAGS := $(BUILD_SYSROOT_LDFLAGS), \
)) ))
# BUILD toolchain with the C++ linker
$(eval $(call DefineNativeToolchain, TOOLCHAIN_BUILD_LINK_CXX, \
EXTENDS := TOOLCHAIN_BUILD, \
LD := $(BUILD_LDCXX), \
))
################################################################################ ################################################################################
# Extensions of files handled by this macro. # Extensions of files handled by this macro.
@ -209,8 +215,8 @@ define add_native_source
$1_$2_OBJ := $3/$$(call replace_with_obj_extension, $$(notdir $2)) $1_$2_OBJ := $3/$$(call replace_with_obj_extension, $$(notdir $2))
# Only continue if this object file hasn't been processed already. This lets the first found # Only continue if this object file hasn't been processed already. This lets the first found
# source file override any other with the same name. # source file override any other with the same name.
ifeq (,$$(findstring $$($1_$2_OBJ),$$($1_ALL_OBJS))) ifeq (,$$(findstring $$($1_$2_OBJ),$$($1_OBJS_SO_FAR)))
$1_ALL_OBJS+=$$($1_$2_OBJ) $1_OBJS_SO_FAR+=$$($1_$2_OBJ)
ifeq (,$$(filter %.s,$2)) ifeq (,$$(filter %.s,$2))
# And this is the dependency file for this obj file. # And this is the dependency file for this obj file.
$1_$2_DEP:=$$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ)) $1_$2_DEP:=$$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ))
@ -223,13 +229,18 @@ define add_native_source
-include $$($1_$2_DEP_TARGETS) -include $$($1_$2_DEP_TARGETS)
ifeq ($(TOOLCHAIN_TYPE), microsoft) ifeq ($(TOOLCHAIN_TYPE), microsoft)
$1_$2_DEBUG_OUT_FLAGS:=-Fd$$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_$2_OBJ)) \ $1_$2_DEBUG_OUT_FLAGS:=-Fd$$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_$2_OBJ))
-Fm$$(patsubst %$(OBJ_SUFFIX),%.map,$$($1_$2_OBJ))
endif endif
endif endif
$$($1_$2_OBJ) : $2 $$($1_COMPILE_VARDEPS_FILE) | $$($1_BUILD_INFO) ifneq ($$($1_$(notdir $2)_CFLAGS)$$($1_$(notdir $2)_CXXFLAGS), )
$(ECHO) $(LOG_INFO) "Compiling $$(notdir $2) (for $$(notdir $$($1_TARGET)))" $1_$2_VARDEPS := $$($1_$(notdir $2)_CFLAGS) $$($1_$(notdir $2)_CXXFLAGS)
$1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS, \
$$(patsubst %$(OBJ_SUFFIX),%.vardeps,$$($1_$2_OBJ)))
endif
$$($1_$2_OBJ) : $2 $$($1_COMPILE_VARDEPS_FILE) $$($1_$2_VARDEPS_FILE) | $$($1_BUILD_INFO)
$$(call LogInfo, Compiling $$(notdir $2) (for $$(notdir $$($1_TARGET))))
ifneq ($(TOOLCHAIN_TYPE), microsoft) ifneq ($(TOOLCHAIN_TYPE), microsoft)
ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s,$2), solstudio) ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s,$2), solstudio)
# The Solaris studio compiler doesn't output the full path to the object file in the # The Solaris studio compiler doesn't output the full path to the object file in the
@ -251,15 +262,17 @@ define add_native_source
# setting -showIncludes, all included files are printed. These are filtered out and # setting -showIncludes, all included files are printed. These are filtered out and
# parsed into make dependences. # parsed into make dependences.
# Keep as much as possible on one execution line for best performance on Windows # Keep as much as possible on one execution line for best performance on Windows
$(RM) $$($1_$2_DEP).exitvalue ; \
($(call LogFailures, $$($1_$2_OBJ).log, $$($1_SAFE_NAME)_$$(notdir $2), \ ($(call LogFailures, $$($1_$2_OBJ).log, $$($1_SAFE_NAME)_$$(notdir $2), \
$$($1_$2_COMP) $$($1_$2_FLAGS) -showIncludes $$($1_$2_DEBUG_OUT_FLAGS) \ $$($1_$2_COMP) $$($1_$2_FLAGS) -showIncludes $$($1_$2_DEBUG_OUT_FLAGS) \
$(CC_OUT_OPTION)$$($1_$2_OBJ) $2) ; echo $$$$? > $$($1_$2_DEP).exitvalue) \ $(CC_OUT_OPTION)$$($1_$2_OBJ) $2) || echo $$$$? > $$($1_$2_DEP).exitvalue ) \
| $(TEE) $$($1_$2_DEP).raw | $(GREP) -v -e "^Note: including file:" \ | $(TEE) $$($1_$2_DEP).raw | $(GREP) -v -e "^Note: including file:" \
-e "^$(notdir $2)$$$$" || test "$$$$?" = "1" ; \ -e "^$(notdir $2)$$$$" || test "$$$$?" = "1" ; \
exit `cat $$($1_$2_DEP).exitvalue` ; \ ( test -s $$($1_$2_DEP).exitvalue \
$(RM) $$($1_$2_DEP).exitvalue ; \\ && exit `$(CAT) $$($1_$2_DEP).exitvalue` || true ) ; \
($(ECHO) $$@: \\ ; \ ($(ECHO) $$@: \\ ; \
$(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_DEP).raw) | $(SORT) -u > $$($1_$2_DEP) ; \ $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_DEP).raw) \
| $(SORT) -u > $$($1_$2_DEP) ; \
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS) $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
endif endif
endif endif
@ -286,7 +299,9 @@ endef
# EXCLUDES do not pick source from these directories # EXCLUDES do not pick source from these directories
# INCLUDE_FILES only compile exactly these files! # INCLUDE_FILES only compile exactly these files!
# EXCLUDE_FILES with these names # EXCLUDE_FILES with these names
# EXCLUDE_PATTERN exclude files matching any of these substrings
# EXTRA_FILES List of extra files not in any of the SRC dirs # EXTRA_FILES List of extra files not in any of the SRC dirs
# EXTRA_OBJECT_FILES List of extra object files to include when linking
# VERSIONINFO_RESOURCE Input file for RC. Setting this implies that RC will be run # VERSIONINFO_RESOURCE Input file for RC. Setting this implies that RC will be run
# RC_FLAGS flags for RC. # RC_FLAGS flags for RC.
# MAPFILE mapfile # MAPFILE mapfile
@ -430,19 +445,29 @@ define SetupNativeCompilationBody
$$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d))) $$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
# Find all files in the source trees. Sort to remove duplicates. # Find all files in the source trees. Sort to remove duplicates.
$1_ALL_SRCS := $$(sort $$(call CacheFind,$$($1_SRC))) $1_SRCS := $$(sort $$(call CacheFind,$$($1_SRC)))
$1_SRCS := $$(filter $$(NATIVE_SOURCE_EXTENSIONS), $$($1_SRCS))
# Extract the C/C++ files. # Extract the C/C++ files.
$1_EXCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_EXCLUDE_FILES))) ifneq ($$($1_EXCLUDE_PATTERNS), )
$1_INCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES))) # We must not match the exclude pattern against the src root(s).
$1_SRCS_WITHOUT_ROOTS := $$($1_SRCS)
$$(foreach i,$$($1_SRC),$$(eval $1_SRCS_WITHOUT_ROOTS := $$(patsubst \
$$i/%,%, $$($1_SRCS_WITHOUT_ROOTS))))
$1_ALL_EXCLUDE_FILES := $$(call containing, $$($1_EXCLUDE_PATTERNS), \
$$($1_SRCS_WITHOUT_ROOTS))
endif
ifneq ($$($1_EXCLUDE_FILES),) ifneq ($$($1_EXCLUDE_FILES),)
$1_EXCLUDE_FILES:=$$(addprefix %,$$($1_EXCLUDE_FILES)) $1_ALL_EXCLUDE_FILES += $$($1_EXCLUDE_FILES)
endif endif
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES),$$(filter $$(NATIVE_SOURCE_EXTENSIONS),$$($1_ALL_SRCS))) ifneq ($$($1_ALL_EXCLUDE_FILES),)
ifneq (,$$(strip $$($1_INCLUDE_FILES))) $1_EXCLUDE_FILES_PAT := $$($1_ALL_EXCLUDE_FILES) \
$1_SRCS := $$(filter $$($1_INCLUDE_FILES),$$($1_SRCS)) $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_ALL_EXCLUDE_FILES)))
$1_EXCLUDE_FILES_PAT := $$(addprefix %,$$($1_EXCLUDE_FILES_PAT))
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES_PAT),$$($1_SRCS))
endif endif
ifeq (,$$($1_SRCS)) ifneq ($$($1_INCLUDE_FILES), )
$$(error No sources found for $1 when looking inside the dirs $$($1_SRC)) $1_INCLUDE_FILES_PAT := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
$1_SRCS := $$(filter $$($1_INCLUDE_FILES_PAT),$$($1_SRCS))
endif endif
# There can be only a single bin dir root, no need to foreach over the roots. # There can be only a single bin dir root, no need to foreach over the roots.
$1_BINS := $$(wildcard $$($1_OBJECT_DIR)/*$(OBJ_SUFFIX)) $1_BINS := $$(wildcard $$($1_OBJECT_DIR)/*$(OBJ_SUFFIX))
@ -466,16 +491,17 @@ define SetupNativeCompilationBody
$$(error No sources found for $1 when looking inside the dirs $$($1_SRC)) $$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
endif endif
# Calculate the expected output from compiling the sources (sort to remove duplicates. Also provides # Calculate the expected output from compiling the sources
# a reproducable order on the input files to the linker).
$1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS))) $1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS)))
$1_EXPECTED_OBJS:=$$(sort $$(addprefix $$($1_OBJECT_DIR)/,$$($1_EXPECTED_OBJS_FILENAMES))) $1_EXPECTED_OBJS := $$(addprefix $$($1_OBJECT_DIR)/,$$($1_EXPECTED_OBJS_FILENAMES))
# Are there too many object files on disk? Perhaps because some source file was removed? # Are there too many object files on disk? Perhaps because some source file was removed?
$1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS))) $1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
# Clean out the superfluous object files. # Clean out the superfluous object files.
ifneq ($$($1_SUPERFLUOUS_OBJS),) ifneq ($$($1_SUPERFLUOUS_OBJS),)
$$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS)) $$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
endif endif
# Sort to remove dupliates and provide a reproducable order on the input files to the linker.
$1_ALL_OBJS := $$(sort $$($1_EXPECTED_OBJS) $$($1_EXTRA_OBJECT_FILES))
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CFLAGS. # Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CFLAGS.
$1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS))
@ -593,9 +619,7 @@ define SetupNativeCompilationBody
# variables used in the call to add_native_source below. # variables used in the call to add_native_source below.
$1_COMPILE_VARDEPS := $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \ $1_COMPILE_VARDEPS := $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
$$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) \ $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) \
$$($1_CC) $$($1_CXX) $$($1_AS) $$($1_ASFLAGS) \ $$($1_CC) $$($1_CXX) $$($1_AS) $$($1_ASFLAGS)
$$(foreach s, $$($1_SRCS), \
$$($1_$$(notdir $$s)_CFLAGS) $$($1_$$(notdir $$s)_CXXFLAGS))
$1_COMPILE_VARDEPS_FILE := $$(call DependOnVariable, $1_COMPILE_VARDEPS, \ $1_COMPILE_VARDEPS_FILE := $$(call DependOnVariable, $1_COMPILE_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).comp.vardeps) $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).comp.vardeps)
@ -675,55 +699,62 @@ define SetupNativeCompilationBody
ifeq ($$($1_STATIC_LIBRARY),) ifeq ($$($1_STATIC_LIBRARY),)
ifeq ($$($1_DEBUG_SYMBOLS), true) ifeq ($$($1_DEBUG_SYMBOLS), true)
ifeq ($(ENABLE_DEBUG_SYMBOLS), true) ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet ifneq ($$($1_OUTPUT_DIR), $$($1_OBJECT_DIR))
ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) # The dependency on TARGET is needed on windows for debuginfo files
# The dependency on TARGET is needed on windows for debuginfo files # to be rebuilt properly.
# to be rebuilt properly. $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% $$($1_TARGET)
$$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% $$($1_TARGET)
$(CP) $$< $$@ $(CP) $$< $$@
endif endif
# Generate debuginfo files. # Generate debuginfo files.
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
$1_EXTRA_LDFLAGS += "-pdb:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb" \ $1_EXTRA_LDFLAGS += "-pdb:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb" \
"-map:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map" "-map:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map"
$1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb \ $1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map
# No separate command is needed for debuginfo on windows, instead # No separate command is needed for debuginfo on windows, instead
# touch target to make sure it has a later time stamp than the debug # touch target to make sure it has a later time stamp than the debug
# symbol files to avoid unnecessary relinking on rebuild. # symbol files to avoid unnecessary relinking on rebuild.
$1_CREATE_DEBUGINFO_CMDS := $(TOUCH) $$($1_TARGET) $1_CREATE_DEBUGINFO_CMDS := $(TOUCH) $$($1_TARGET)
else ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris), ) else ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris), )
$1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).debuginfo $1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).debuginfo
# Setup the command line creating debuginfo files, to be run after linking. # Setup the command line creating debuginfo files, to be run after linking.
# It cannot be run separately since it updates the original target file # It cannot be run separately since it updates the original target file
$1_CREATE_DEBUGINFO_CMDS := \ $1_CREATE_DEBUGINFO_CMDS := \
$(OBJCOPY) --only-keep-debug $$($1_TARGET) $$($1_DEBUGINFO_FILES) $$(NEWLINE) \ $(OBJCOPY) --only-keep-debug $$($1_TARGET) $$($1_DEBUGINFO_FILES) $$(NEWLINE) \
$(CD) $$($1_OUTPUT_DIR) && \ $(CD) $$($1_OUTPUT_DIR) && \
$(OBJCOPY) --add-gnu-debuglink=$$($1_DEBUGINFO_FILES) $$($1_TARGET) $(OBJCOPY) --add-gnu-debuglink=$$($1_DEBUGINFO_FILES) $$($1_TARGET)
endif # No MacOS X support
# This dependency dance ensures that debug info files get rebuilt else ifeq ($(OPENJDK_TARGET_OS), macosx)
# properly if deleted. $1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_BASENAME).dSYM
$$($1_TARGET): $$($1_DEBUGINFO_FILES) # On Macosx, the debuginfo generation doesn't touch the linked binary, but
$$($1_DEBUGINFO_FILES): $$($1_EXPECTED_OBJS) # to avoid always relinking, touch it anyway to force a later timestamp than
# the dSYM files.
$1_CREATE_DEBUGINFO_CMDS := \
$(DSYMUTIL) --out $$($1_DEBUGINFO_FILES) $$($1_TARGET) $$(NEWLINE) \
$(TOUCH) $$($1_TARGET)
endif # OPENJDK_TARGET_OS
ifeq ($(ZIP_DEBUGINFO_FILES), true) # This dependency dance ensures that debug info files get rebuilt
$1_DEBUGINFO_ZIP := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).diz # properly if deleted.
$1 += $$(subst $$($1_OBJECT_DIR),$$($1_OUTPUT_DIR),$$($1_DEBUGINFO_ZIP)) $$($1_TARGET): $$($1_DEBUGINFO_FILES)
$$($1_DEBUGINFO_FILES): $$($1_ALL_OBJS)
# The dependency on TARGET is needed for debuginfo files ifeq ($(ZIP_DEBUGINFO_FILES), true)
# to be rebuilt properly. $1_DEBUGINFO_ZIP := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).diz
$$($1_DEBUGINFO_ZIP): $$($1_DEBUGINFO_FILES) $$($1_TARGET) $1 += $$(subst $$($1_OBJECT_DIR),$$($1_OUTPUT_DIR),$$($1_DEBUGINFO_ZIP))
# The dependency on TARGET is needed for debuginfo files
# to be rebuilt properly.
$$($1_DEBUGINFO_ZIP): $$($1_DEBUGINFO_FILES) $$($1_TARGET)
$(CD) $$($1_OBJECT_DIR) \ $(CD) $$($1_OBJECT_DIR) \
&& $(ZIP) -q $$@ $$(notdir $$($1_DEBUGINFO_FILES)) && $(ZIP) -q $$@ $$(notdir $$($1_DEBUGINFO_FILES))
else else
$1 += $$(subst $$($1_OBJECT_DIR),$$($1_OUTPUT_DIR),$$($1_DEBUGINFO_FILES)) $1 += $$(subst $$($1_OBJECT_DIR),$$($1_OUTPUT_DIR),$$($1_DEBUGINFO_FILES))
endif
endif endif
endif # !MacOS X endif # $(ENABLE_DEBUG_SYMBOLS)
endif # $1_DEBUG_SYMBOLS endif # $1_DEBUG_SYMBOLS
endif # !STATIC_LIBRARY endif # !STATIC_LIBRARY
@ -750,21 +781,34 @@ define SetupNativeCompilationBody
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \ $1_LD_OBJ_ARG := $$($1_ALL_OBJS)
# If there are many object files, use an @-file.
ifneq ($$(word 17, $$($1_ALL_OBJS)), )
$1_OBJ_FILE_LIST := $$($1_OBJECT_DIR)/_$1_objectfilenames.txt
ifneq ($(TOOLCHAIN_TYPE),solstudio)
$1_LD_OBJ_ARG := $(COMPILER_COMMAND_FILE_FLAG)$$($1_OBJ_FILE_LIST)
else
# The solstudio linker does not support @-files.
$1_LD_OBJ_ARG := `cat $$($1_OBJ_FILE_LIST)`
endif
endif
$$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \
$$($1_VARDEPS_FILE) $$($1_VARDEPS_FILE)
ifneq ($$($1_OBJ_FILE_LIST), )
$$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST)))
endif
# Keep as much as possible on one execution line for best performance
# on Windows
$(ECHO) $(LOG_INFO) "Linking $$($1_BASENAME)" ; \ $(ECHO) $(LOG_INFO) "Linking $$($1_BASENAME)" ; \
$(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \ $(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \
$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \
$(LD_OUT_OPTION)$$@ \ $(LD_OUT_OPTION)$$@ \
$$($1_EXPECTED_OBJS) $$($1_RES) \ $$($1_LD_OBJ_ARG) $$($1_RES) \
$$($1_LIBS) $$($1_EXTRA_LIBS)) ; \ $$($1_LIBS) $$($1_EXTRA_LIBS)) ; \
$$($1_CREATE_DEBUGINFO_CMDS) $$($1_CREATE_DEBUGINFO_CMDS)
$$($1_STRIP_CMD) $$($1_STRIP_CMD)
# Touch target to make sure it has a later time stamp than the debug
# symbol files to avoid unnecessary relinking on rebuild.
ifeq ($(OPENJDK_TARGET_OS), windows)
$(TOUCH) $$@
endif
endif endif
@ -775,10 +819,10 @@ define SetupNativeCompilationBody
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
# Generating a static library, ie object file archive. # Generating a static library, ie object file archive.
$$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_VARDEPS_FILE) $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE)
$(ECHO) $(LOG_INFO) "Archiving $$($1_STATIC_LIBRARY)" $(ECHO) $(LOG_INFO) "Archiving $$($1_STATIC_LIBRARY)"
$(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \ $(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \
$$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_EXPECTED_OBJS) \ $$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_ALL_OBJS) \
$$($1_RES)) $$($1_RES))
ifeq ($(STATIC_BUILD), true) ifeq ($(STATIC_BUILD), true)
$(GetSymbols) $(GetSymbols)
@ -796,13 +840,13 @@ define SetupNativeCompilationBody
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
$$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_MANIFEST) \ $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_MANIFEST) \
$$($1_VARDEPS_FILE) $$($1_VARDEPS_FILE)
$(ECHO) $(LOG_INFO) "Linking executable $$($1_BASENAME)" ; \ $(ECHO) $(LOG_INFO) "Linking executable $$($1_BASENAME)" ; \
$(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \ $(call LogFailures, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link.log, $$($1_SAFE_NAME)_link, \
$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \
$(EXE_OUT_OPTION)$$($1_TARGET) \ $(EXE_OUT_OPTION)$$($1_TARGET) \
$$($1_EXPECTED_OBJS) $$($1_RES) \ $$($1_ALL_OBJS) $$($1_RES) \
$$($1_LIBS) $$($1_EXTRA_LIBS)) $$($1_LIBS) $$($1_EXTRA_LIBS))
ifeq ($(OPENJDK_TARGET_OS), windows) ifeq ($(OPENJDK_TARGET_OS), windows)
ifneq ($$($1_MANIFEST), ) ifneq ($$($1_MANIFEST), )
@ -818,11 +862,6 @@ define SetupNativeCompilationBody
endif endif
$$($1_CREATE_DEBUGINFO_CMDS) $$($1_CREATE_DEBUGINFO_CMDS)
$$($1_STRIP_CMD) $$($1_STRIP_CMD)
# Touch target to make sure it has a later time stamp than the debug
# symbol files to avoid unnecessary relinking on rebuild.
ifeq ($(OPENJDK_TARGET_OS), windows)
$(TOUCH) $$@
endif
endif endif
endef endef

View File

@ -82,7 +82,9 @@ RPM_LIST := \
libXi libXi-devel \ libXi libXi-devel \
libXdmcp libXdmcp-devel \ libXdmcp libXdmcp-devel \
libXau libXau-devel \ libXau libXau-devel \
libgcc libgcc \
elfutils elfutils-devel \
elfutils-libelf elfutils-libelf-devel
ifeq ($(ARCH),x86_64) ifeq ($(ARCH),x86_64)

View File

@ -0,0 +1,148 @@
#!/bin/bash
#
# Copyright (c) 2015, 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 creates a devkit for building OpenJDK on Solaris by copying
# part of a Solaris Studio installation and cretaing a sysroot by installing
# a limited set of system packages. It is assumed that a suitable pkg
# publisher is configured for the system where the script is executed.
#
# The Solaris Studio installation must contain at least these packages:
# developer/solarisstudio-124/backend 12.4-1.0.6.0 i--
# developer/solarisstudio-124/c++ 12.4-1.0.10.0 i--
# developer/solarisstudio-124/cc 12.4-1.0.4.0 i--
# developer/solarisstudio-124/library/c++-libs 12.4-1.0.10.0 i--
# developer/solarisstudio-124/library/math-libs 12.4-1.0.0.1 i--
# developer/solarisstudio-124/library/studio-gccrt 12.4-1.0.0.1 i--
# developer/solarisstudio-124/studio-common 12.4-1.0.0.1 i--
# developer/solarisstudio-124/studio-ja 12.4-1.0.0.1 i--
# developer/solarisstudio-124/studio-legal 12.4-1.0.0.1 i--
# developer/solarisstudio-124/studio-zhCN 12.4-1.0.0.1 i--
# In particular backend 12.4-1.0.6.0 contains a critical patch for the sparc
# version.
#
# erik.joelsson@oracle.com
USAGE="$0 <Solaris Studio installation> <Path to gnu make binary>"
if [ "$1" = "" ] || [ "$2" = "" ]; then
echo $USAGE
exit 1
fi
SOLARIS_STUDIO_VERSION=12u4
SOLARIS_VERSION=11u1
case `uname -p` in
i*)
ARCH=x86
;;
sparc*)
ARCH=sparc
;;
esac
SOLARIS_STUDIO_SRC=$1
GNU_MAKE=$2
SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
DEVKIT_NAME=SS${SOLARIS_STUDIO_VERSION}-Solaris${SOLARIS_VERSION}
DEVKIT_ROOT=${BUILD_DIR}/${DEVKIT_NAME}
BUNDLE_NAME=${DEVKIT_NAME}.tar.gz
BUNDLE=${BUILD_DIR}/${BUNDLE_NAME}
INSTALL_ROOT=${BUILD_DIR}/install-root
SYSROOT=${DEVKIT_ROOT}/sysroot
SOLARIS_STUDIO_SUBDIR=SS${SOLARIS_STUDIO_VERSION}
SOLARIS_STUDIO_DIR=${DEVKIT_ROOT}/${SOLARIS_STUDIO_SUBDIR}
# Extract the publisher from the system
if [ -z "${PUBLISHER_URI}" ]; then
PUBLISHER_URI="$(pkg publisher solaris | grep URI | awk '{ print $3 }')"
fi
if [ ! -d $INSTALL_ROOT ]; then
echo "Creating $INSTALL_ROOT and installing packages"
pkg image-create $INSTALL_ROOT
pkg -R $INSTALL_ROOT set-publisher -P -g ${PUBLISHER_URI} solaris
pkg -R $INSTALL_ROOT install --accept $(cat solaris11.1-package-list.txt)
else
echo "Skipping installing packages"
fi
if [ ! -d $SYSROOT ]; then
echo "Copying from $INSTALL_ROOT to $SYSROOT"
mkdir -p $SYSROOT
cp -rH $INSTALL_ROOT/lib $SYSROOT/
mkdir $SYSROOT/usr $DEVKIT_ROOT/gnu
# Some of the tools in sysroot are needed in the OpenJDK build but cannot be
# run from their current location due to relative runtime paths in the
# binaries. Move the sysroot/usr/bin directory to the outer bin and have them
# be runnable from there to force them to link to the system libraries
cp -rH $INSTALL_ROOT/usr/bin $DEVKIT_ROOT
cp -rH $INSTALL_ROOT/usr/gnu/bin $DEVKIT_ROOT/gnu/
cp -rH $INSTALL_ROOT/usr/lib $SYSROOT/usr/
cp -rH $INSTALL_ROOT/usr/include $SYSROOT/usr/
pkg -R $INSTALL_ROOT list > $SYSROOT/pkg-list.txt
else
echo "Skipping copying to $SYSROOT"
fi
if [ ! -d $SOLARIS_STUDIO_DIR ]; then
echo "Copying Solaris Studio from $SOLARIS_STUDIO_SRC"
cp -rH $SOLARIS_STUDIO_SRC ${SOLARIS_STUDIO_DIR%/*}
mv ${SOLARIS_STUDIO_DIR%/*}/${SOLARIS_STUDIO_SRC##*/} $SOLARIS_STUDIO_DIR
# Solaris Studio 12.4 requires /lib/libmmheap.so.1 to run, but this lib is not
# installed by default on all Solaris systems. Sneak it in from the sysroot to
# make it run OOTB on more systems.
cp $SYSROOT/lib/libmmheap.so.1 $SOLARIS_STUDIO_DIR/lib/compilers/sys/
else
echo "Skipping copying of Solaris Studio"
fi
echo "Copying gnu make to $DEVKIT_ROOT/bin"
mkdir -p $DEVKIT_ROOT/bin
cp $GNU_MAKE $DEVKIT_ROOT/bin/
if [ ! -e $DEVKIT_ROOT/bin/gmake ]; then
ln -s make $DEVKIT_ROOT/bin/gmake
fi
# Create the devkit.info file
echo Creating devkit.info
INFO_FILE=$DEVKIT_ROOT/devkit.info
rm -f $INFO_FILE
echo "# This file describes to configure how to interpret the contents of this devkit" >> $INFO_FILE
echo "DEVKIT_NAME=\"Solaris Studio $SOLARIS_STUDIO_VERSION - Solaris $SOLARIS_VERSION - $ARCH\"" >> $INFO_FILE
echo "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/$SOLARIS_STUDIO_SUBDIR/bin:\$DEVKIT_ROOT/bin\"" >> $INFO_FILE
echo "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/bin\"" >> $INFO_FILE
echo "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/sysroot\"" >> $INFO_FILE
if [ ! -e $BUNDLE ]; then
echo "Creating $BUNDLE from $DEVKIT_ROOT"
cd $DEVKIT_ROOT/..
tar zcf $BUNDLE $DEVKIT_NAME
else
echo "Skipping creation of $BUNDLE"
fi

View File

@ -0,0 +1,157 @@
compress/bzip2@1.0.6-0.175.1.0.0.24.0
consolidation/X/X-incorporation@0.5.11-0.175.1.21.0.3.1357
consolidation/desktop/desktop-incorporation@0.5.11-0.175.1.21.0.4.0
consolidation/install/install-incorporation@0.5.11-0.175.2.0.0.5.0
consolidation/ips/ips-incorporation@0.5.11-0.175.1.20.0.3.0
consolidation/l10n/l10n-incorporation@0.5.11-0.175.1.16.0.2.2
consolidation/osnet/osnet-incorporation@0.5.11-0.175.1.21.0.4.2
consolidation/sic_team/sic_team-incorporation@0.5.11-0.175.2.0.0.39.0
consolidation/solaris_re/solaris_re-incorporation@0.5.11-0.175.2.4.0.4.0
consolidation/sunpro/sunpro-incorporation@0.5.11-0.175.1.19.0.4.0
crypto/ca-certificates@0.5.11-0.175.1.0.0.24.2
database/berkeleydb-5@5.1.25-0.175.1.0.0.24.0
database/mysql-51/library@5.1.37-0.175.1.10.0.5.0
database/sqlite-3@3.7.14.1-0.175.1.10.0.4.0
developer/base-developer-utilities@0.5.11-0.175.1.11.0.1.2
developer/gnu-binutils@2.21.1-0.175.1.0.0.24.0
developer/macro/cpp@0.5.11-0.175.1.19.0.4.0
driver/management/bmc@0.5.11-0.175.1.0.0.24.2
driver/management/ipmi@0.5.11-0.175.1.6.0.3.2
driver/serial/usbser@0.5.11-0.175.1.0.0.24.2
driver/storage/mpt@0.5.11-0.175.1.18.0.3.2
image/library/libjpeg@6.0.2-0.175.0.0.0.0.0
image/library/libpng@1.4.11-0.175.1.0.0.16.0
image/library/libtiff@3.9.5-0.175.1.15.0.2.0
library/apr-13@1.3.9-0.175.1.0.0.24.0
library/apr-util-13@1.3.9-0.175.1.0.0.24.0
library/apr-util-13/apr-ldap@1.3.9-0.175.1.0.0.24.0
library/apr-util-13/dbd-mysql@1.3.9-0.175.1.0.0.24.0
library/apr-util-13/dbd-sqlite@1.3.9-0.175.1.0.0.24.0
library/database/gdbm@1.8.3-0.175.1.0.0.24.0
library/expat@2.1.0-0.175.1.0.0.24.0
library/libffi@3.0.9-0.175.0.0.0.0.0
library/libidn@1.19-0.175.1.0.0.24.0
library/libtecla@1.6.1-0.175.1.0.0.24.0
library/libxml2@2.7.6-0.175.1.7.0.3.0
library/libxslt@1.1.26-0.175.1.11.0.4.0
library/ncurses@5.7-0.175.1.0.0.15.0
library/nspr@4.9.5-0.175.2.0.0.39.0
library/perl-5/sun-solaris-512@0.5.11-0.175.1.11.0.1.2
library/print/cups-libs@1.4.5-0.175.1.8.0.3.0
library/python-2/cherrypy@3.1.2-0.175.1.0.0.24.0
library/python-2/cherrypy-26@3.1.2-0.175.1.0.0.24.0
library/python-2/jsonrpclib@0.1.3-0.175.2.0.0.42.1
library/python-2/jsonrpclib-26@0.1.3-0.175.2.0.0.42.1
library/python-2/libxml2-26@2.7.6-0.175.1.7.0.3.0
library/python-2/libxsl-26@1.1.26-0.175.1.11.0.4.0
library/python-2/lxml@2.3.3-0.175.1.0.0.24.0
library/python-2/lxml-26@2.3.3-0.175.1.0.0.24.0
library/python-2/m2crypto@0.21.1-0.175.1.0.0.24.0
library/python-2/m2crypto-26@0.21.1-0.175.1.0.0.24.0
library/python-2/mako@0.4.1-0.175.1.0.0.24.0
library/python-2/mako-26@0.4.1-0.175.1.0.0.24.0
library/python-2/ply@3.1-0.175.1.0.0.24.0
library/python-2/ply-26@3.1-0.175.1.0.0.24.0
library/python-2/pybonjour@1.1.1-0.175.1.0.0.24.0
library/python-2/pybonjour-26@1.1.1-0.175.1.0.0.24.0
library/python-2/pycurl@7.19.0.1-0.175.1.0.0.24.0
library/python-2/pycurl-26@7.19.0.1-0.175.1.0.0.24.0
library/python-2/pyopenssl@0.11-0.175.1.0.0.24.0
library/python-2/pyopenssl-26@0.11-0.175.1.0.0.24.0
library/python-2/python-extra-26@2.6.4-0.175.1.0.0.15.0
library/python-2/simplejson-26@2.1.2-0.175.1.7.0.4.0
library/readline@5.2-0.175.1.0.0.24.0
library/security/nss@4.14.3-0.175.2.0.0.39.0
library/security/openssl@1.0.0.13-0.175.1.21.0.2.0
library/security/trousers@0.3.6-0.175.1.0.0.24.0
library/zlib@1.2.3-0.175.1.0.0.24.0
media/cdrtools@3.0-0.175.1.21.0.4.0
media/xorriso@0.6.0-0.175.1.0.0.24.0
network/bridging@0.5.11-0.175.1.12.0.3.2
package/pkg@0.5.11-0.175.1.20.0.3.0
package/pkg/system-repository@0.5.11-0.175.1.9.0.1.0
package/pkg/zones-proxy@0.5.11-0.175.1.0.0.24.0
package/svr4@0.5.11-0.175.1.7.0.3.2
print/cups@1.4.5-0.175.1.8.0.3.0
release/name@0.5.11-0.175.2.4.0.4.0
runtime/perl-512@5.12.5-0.175.1.8.0.4.0
runtime/python-26@2.6.8-0.175.1.17.0.4.0
service/network/dns/mdns@0.5.11-0.175.1.0.0.24.2
service/network/slp@0.5.11-0.175.1.0.0.24.2
service/security/gss@0.5.11-0.175.1.0.0.24.2
service/security/kerberos-5@0.5.11-0.175.1.18.0.2.2
shell/bash@4.1.9-0.175.1.13.0.1.0
shell/ksh93@93.21.0.20110208-0.175.1.19.0.2.0
system/boot-environment-utilities@0.5.11-0.175.1.9.0.1.2
system/boot/grub@1.99-0.175.1.14.0.2.2
system/boot/wanboot@0.5.11-0.175.1.0.0.24.2
system/core-os@0.5.11-0.175.1.20.0.4.2
system/data/keyboard/keytables@0.5.11-0.175.1.0.0.24.2
system/data/terminfo/terminfo-core@0.5.11-0.175.1.14.0.3.2
system/data/timezone@0.5.11-0.175.2.5.0.2.0
system/device-administration@0.5.11-0.175.1.9.0.2.2
system/dtrace@0.5.11-0.175.1.20.0.4.2
system/dynamic-reconfiguration@0.5.11-0.175.1.13.0.2.2
system/fault-management@0.5.11-0.175.1.18.0.4.2
system/file-system/hsfs@0.5.11-0.175.1.0.0.24.2
system/file-system/pcfs@0.5.11-0.175.1.0.0.24.2
system/file-system/ufs@0.5.11-0.175.1.18.0.3.2
system/file-system/zfs@0.5.11-0.175.1.21.0.3.2
system/header@0.5.11-0.175.1.20.0.4.2
system/install@0.5.11-0.175.1.0.0.24.1736
system/install/auto-install/auto-install-common@0.5.11-0.175.1.18.0.3.1736
system/install/configuration@0.5.11-0.175.1.10.0.3.1736
system/install/locale@0.5.11-0.175.1.0.0.23.1134
system/io/infiniband@0.5.11-0.175.1.20.0.4.2
system/io/ultra-wideband@0.5.11-0.175.1.0.0.24.2
system/io/usb@0.5.11-0.175.1.19.0.2.2
system/kernel@0.5.11-0.175.1.21.0.4.2
system/kernel/cpu-counters@0.5.11-0.175.1.17.0.1.2
system/kernel/platform@0.5.11-0.175.1.21.0.4.2
system/keyboard/keyboard-utilities@0.5.11-0.175.1.0.0.24.2
system/library@0.5.11-0.175.1.20.0.3.2
system/library/boot-management@0.5.11-0.175.1.19.0.1.2
system/library/c++-runtime@0.5.11-0.175.1.19.0.4.0
system/library/freetype-2@2.4.11-0.175.1.18.0.1.1350
system/library/gcc-3-runtime@3.4.3-0.175.1.0.0.24.0
system/library/iconv/utf-8@0.5.11-0.175.1.9.0.1.1150
system/library/install@0.5.11-0.175.1.18.0.3.1736
system/library/libdbus@1.2.28-0.175.1.16.0.2.0
system/library/math@0.5.11-0.175.1.19.0.4.0
system/library/mmheap@0.5.11-0.175.1.19.0.4.0
system/library/security/gss@0.5.11-0.175.1.18.0.3.2
system/library/security/gss/diffie-hellman@0.5.11-0.175.1.0.0.24.2
system/library/security/gss/spnego@0.5.11-0.175.1.16.0.1.2
system/library/security/libsasl@0.5.11-0.175.1.0.0.24.2
system/library/storage/libdiskmgt@0.5.11-0.175.1.5.0.3.2
system/library/storage/scsi-plugins@0.5.11-0.175.1.0.0.24.2
system/library/storage/snia-ima@0.5.11-0.175.1.0.0.24.2
system/library/storage/suri@0.5.11-0.175.1.0.0.24.2
system/linker@0.5.11-0.175.1.20.0.1.2
system/network@0.5.11-0.175.1.20.0.3.2
system/picl@0.5.11-0.175.1.17.0.3.2
system/resource-mgmt/resource-pools@0.5.11-0.175.1.0.0.24.2
system/storage/iscsi/iscsi-initiator@0.5.11-0.175.1.19.0.3.2
system/storage/iscsi/iscsi-iser@0.5.11-0.175.1.20.0.3.2
system/system-events@0.5.11-0.175.1.0.0.24.2
system/xopen/xcu4@0.5.11-0.175.1.13.0.4.2
system/zones@0.5.11-0.175.1.17.0.4.2
system/zones/brand/brand-solaris@0.5.11-0.175.1.17.0.4.2
text/spelling-utilities@0.5.11-0.175.1.0.0.24.2
web/curl@7.21.2-0.175.1.18.0.3.0
web/server/apache-22@2.2.27-0.175.1.19.0.4.0
web/server/apache-22/module/apache-wsgi-26@3.3-0.175.1.0.0.24.0
x11/header/x11-protocols@7.7-0.175.1.0.0.24.1317
x11/library/libice@1.0.8-0.175.1.0.0.24.1317
x11/library/libpthread-stubs@0.3-0.175.1.0.0.24.1317
x11/library/libsm@1.2.1-0.175.1.0.0.24.1317
x11/library/libx11@1.5.0-0.175.1.8.0.4.1336
x11/library/libxau@1.0.7-0.175.1.0.0.24.1317
x11/library/libxcb@1.8.1-0.175.1.8.0.3.1332
x11/library/libxdmcp@1.1.1-0.175.1.0.0.24.1317
x11/library/libxevie@1.0.3-0.175.1.0.0.24.1317
x11/library/libxext@1.3.1-0.175.1.8.0.3.1332
x11/library/libxrender@0.9.7-0.175.1.8.0.3.1332
x11/library/libxscrnsaver@1.2.2-0.175.1.0.0.24.1317
x11/library/libxtst@1.2.1-0.175.1.8.0.3.1332
x11/library/toolkit/libxt@1.1.3-0.175.1.8.0.3.1332

View File

@ -142,6 +142,8 @@ jprt.linux_x64.build.configure.args= \
--with-devkit=$GCC492_OEL64_HOME --with-devkit=$GCC492_OEL64_HOME
jprt.macosx_x64.build.configure.args= \ jprt.macosx_x64.build.configure.args= \
--with-devkit=$XCODE63_MACOSX109_HOME --with-devkit=$XCODE63_MACOSX109_HOME
jprt.solaris.build.configure.args= \
--with-devkit=$SS124_11u1_HOME
jprt.windows_i586.build.configure.args= \ jprt.windows_i586.build.configure.args= \
--with-devkit=$VS2013SP4_HOME \ --with-devkit=$VS2013SP4_HOME \
${jprt.i586.build.configure.args} ${jprt.i586.build.configure.args}

View File

@ -428,6 +428,7 @@
<to>java.naming</to> <to>java.naming</to>
<to>java.rmi</to> <to>java.rmi</to>
<to>java.security.jgss</to> <to>java.security.jgss</to>
<to>java.security.sasl</to>
<to>java.smartcardio</to> <to>java.smartcardio</to>
<to>jdk.crypto.ec</to> <to>jdk.crypto.ec</to>
<to>jdk.crypto.mscapi</to> <to>jdk.crypto.mscapi</to>
@ -437,6 +438,7 @@
<to>jdk.jartool</to> <to>jdk.jartool</to>
<to>jdk.policytool</to> <to>jdk.policytool</to>
<to>jdk.security.auth</to> <to>jdk.security.auth</to>
<to>jdk.security.jgss</to>
</export> </export>
<export> <export>
<name>sun.security.x509</name> <name>sun.security.x509</name>

View File

@ -330,3 +330,4 @@ e13533f7bb78da49bbd909fdf22e13e0e2538146 jdk9-b93
328932975c749ba7ae40cd5b63e3a7983b564936 jdk9-b94 328932975c749ba7ae40cd5b63e3a7983b564936 jdk9-b94
9d52f9bb589c4caa3617fe1cf11c72512ab8e973 jdk-9+95 9d52f9bb589c4caa3617fe1cf11c72512ab8e973 jdk-9+95
d52c09d5d98a81ee6102a25f662ec4b9ae614163 jdk-9+96 d52c09d5d98a81ee6102a25f662ec4b9ae614163 jdk-9+96
2beaef2b6a880c0bff8c9f57ffca33477d647f8b jdk-9+97

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
@ -60,18 +60,28 @@ all: jdk_all langtools_all jaxp_all
# Bring in closed test targets if present # Bring in closed test targets if present
-include $(TOPDIR)/closed/test/Makefile -include $(TOPDIR)/closed/test/Makefile
ifeq ($(TEST_JOBS), 0)
JDK_TEST_JOBS=$(JOBS)
else
JDK_TEST_JOBS=$(TEST_JOBS)
endif
# Test targets # Test targets
langtools_% : langtools_% :
@$(NO_STOPPING)$(call SUBDIR_TEST, $(LANGTOOLS_DIR), JT_JAVA=$(PRODUCT_HOME) JTREG_HOME=$(JT_HOME) TEST="$(subst langtools_,,$@)" $(subst langtools_,,$@)) @$(NO_STOPPING)$(call SUBDIR_TEST, $(LANGTOOLS_DIR), CONCURRENCY=$(JDK_TEST_JOBS) JT_JAVA=$(PRODUCT_HOME) JTREG_HOME=$(JT_HOME) TEST="$(subst langtools_,,$@)" $(subst langtools_,,$@))
jdk_% core_%s svc_%: jdk_% core_%s svc_%:
@$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), TEST="$@" $@) @$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), CONCURRENCY=$(JDK_TEST_JOBS) TEST="$@" $@)
jaxp_%: jaxp_%:
@$(NO_STOPPING)$(call SUBDIR_TEST, $(JAXP_DIR), TEST="$@" $@) @$(NO_STOPPING)$(call SUBDIR_TEST, $(JAXP_DIR), CONCURRENCY=$(JDK_TEST_JOBS) TEST="$@" $@)
ifeq ($(TEST_JOBS), 0)
HOTSPOT_TEST_JOBS=1
else
HOTSPOT_TEST_JOBS=$(TEST_JOBS)
endif
hotspot_%: hotspot_%:
@$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), TEST="$@" $@) @$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), CONCURRENCY=$(HOTSPOT_TEST_JOBS) TEST="$@" $@)
# #
# jtreg_tests # jtreg_tests