Paradoxically, building OpenJDK requires a pre-existing JDK. This is called the "boot JDK". The boot JDK does not have to be OpenJDK, though. If you are porting OpenJDK to a new platform, chances are that there already exists another JDK for that platform that is usable as boot JDK.
-
The rule of thumb is that the boot JDK for building JDK major version N should be an JDK of major version N-1, so for building JDK 9 a JDK 8 would be suitable as boot JDK. However, OpenJDK should be able to "build itself", so an up-to-date build of the current OpenJDK source is an acceptable alternative. If you are following the N-1 rule, make sure you got the latest update version, since JDK 8 GA might not be able to build JDK 9 on all platforms.
+
The rule of thumb is that the boot JDK for building JDK major version N should be a JDK of major version N-1, so for building JDK 9 a JDK 8 would be suitable as boot JDK. However, OpenJDK should be able to "build itself", so an up-to-date build of the current OpenJDK source is an acceptable alternative. If you are following the N-1 rule, make sure you've got the latest update version, since JDK 8 GA might not be able to build JDK 9 on all platforms.
+
Early in the release cycle, version N-1 may not yet have been released. In that case, the preferred boot JDK will be version N-2 until version N-1 is available.
If the Boot JDK is not automatically detected, or the wrong JDK is picked, use --with-boot-jdk to point to the JDK to use.
-
JDK 8 on Linux
-
On apt-based distros (like Debian and Ubuntu), sudo apt-get install openjdk-8-jdk is typically enough to install OpenJDK 8. On rpm-based distros (like Fedora and Red Hat), try sudo yum install java-1.8.0-openjdk-devel.
-
JDK 8 on Windows
-
No pre-compiled binaries of OpenJDK 8 are readily available for Windows at the time of writing. An alternative is to download the Oracle JDK. Another is the Adopt OpenJDK Project, which publishes experimental prebuilt binaries for Windows.
-
JDK 8 on macOS
-
No pre-compiled binaries of OpenJDK 8 are readily available for macOS at the time of writing. An alternative is to download the Oracle JDK, or to install it using brew cask install java. Another option is the Adopt OpenJDK Project, which publishes experimental prebuilt binaries for macOS.
-
JDK 8 on AIX
-
No pre-compiled binaries of OpenJDK 8 are readily available for AIX at the time of writing. A starting point for working with OpenJDK on AIX is the PowerPC/AIX Port Project.
+
Getting JDK binaries
+
OpenJDK binaries for Linux, Windows and macOS can be downloaded from jdk.java.net. An alternative is to download the Oracle JDK. Another is the Adopt OpenJDK Project, which publishes experimental prebuilt binaries for various platforms.
+
On Linux you can also get OpenJDK from the Linux distribution. On apt-based distros (like Debian and Ubuntu), sudo apt-get install openjdk-<VERSION>-jdk is typically enough to install OpenJDK <VERSION>. On rpm-based distros (like Fedora and Red Hat), try sudo yum install java-<VERSION>-openjdk-devel.
External Library Requirements
Different platforms require different external libraries. In general, libraries are not optional - that is, they are either required or not used.
If a required library is not detected by configure, you need to provide the path to it. There are two forms of the configure arguments to point to an external library: --with-<LIB>=<path> or --with-<LIB>-include=<path to include> --with-<LIB>-lib=<path to lib>. The first variant is more concise, but require the include files an library files to reside in a default hierarchy under this directory. In most cases, it works fine.
@@ -758,12 +751,7 @@
spawn failed
This can be a sign of a Cygwin problem. See the information about solving problems in the Cygwin section. Rebooting the computer might help temporarily.
Getting Help
-
If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to . Please include the relevant parts of the configure and/or build log.
+
If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to build-dev@openjdk.java.net. Please include the relevant parts of the configure and/or build log.
If you need general help or advice about developing for OpenJDK, you can also contact the Adoption Group. See the section on Contributing to OpenJDK for more information.
Hints and Suggestions for Advanced Users
Setting Up a Forest for Pushing Changes (defpath)
diff -r c3ec048aad63 -r ece10494786c doc/building.md
--- a/doc/building.md Thu Mar 01 16:35:36 2018 -0500
+++ b/doc/building.md Fri Mar 02 21:00:12 2018 +0100
@@ -401,43 +401,31 @@
another JDK for that platform that is usable as boot JDK.
The rule of thumb is that the boot JDK for building JDK major version *N*
-should be an JDK of major version *N-1*, so for building JDK 9 a JDK 8 would be
+should be a JDK of major version *N-1*, so for building JDK 9 a JDK 8 would be
suitable as boot JDK. However, OpenJDK should be able to "build itself", so an
up-to-date build of the current OpenJDK source is an acceptable alternative. If
-you are following the *N-1* rule, make sure you got the latest update version,
-since JDK 8 GA might not be able to build JDK 9 on all platforms.
+you are following the *N-1* rule, make sure you've got the latest update
+version, since JDK 8 GA might not be able to build JDK 9 on all platforms.
+
+Early in the release cycle, version *N-1* may not yet have been released. In
+that case, the preferred boot JDK will be version *N-2* until version *N-1*
+is available.
If the Boot JDK is not automatically detected, or the wrong JDK is picked, use
`--with-boot-jdk` to point to the JDK to use.
-### JDK 8 on Linux
-
-On apt-based distros (like Debian and Ubuntu), `sudo apt-get install
-openjdk-8-jdk` is typically enough to install OpenJDK 8. On rpm-based distros
-(like Fedora and Red Hat), try `sudo yum install java-1.8.0-openjdk-devel`.
-
-### JDK 8 on Windows
-
-No pre-compiled binaries of OpenJDK 8 are readily available for Windows at the
-time of writing. An alternative is to download the [Oracle JDK](
-http://www.oracle.com/technetwork/java/javase/downloads). Another is the [Adopt
-OpenJDK Project](https://adoptopenjdk.net/), which publishes experimental
-prebuilt binaries for Windows.
+### Getting JDK binaries
-### JDK 8 on macOS
+OpenJDK binaries for Linux, Windows and macOS can be downloaded from
+[jdk.java.net](http://jdk.java.net). An alternative is to download the
+[Oracle JDK](http://www.oracle.com/technetwork/java/javase/downloads). Another
+is the [Adopt OpenJDK Project](https://adoptopenjdk.net/), which publishes
+experimental prebuilt binaries for various platforms.
-No pre-compiled binaries of OpenJDK 8 are readily available for macOS at the
-time of writing. An alternative is to download the [Oracle JDK](
-http://www.oracle.com/technetwork/java/javase/downloads), or to install it
-using `brew cask install java`. Another option is the [Adopt OpenJDK Project](
-https://adoptopenjdk.net/), which publishes experimental prebuilt binaries for
-macOS.
-
-### JDK 8 on AIX
-
-No pre-compiled binaries of OpenJDK 8 are readily available for AIX at the
-time of writing. A starting point for working with OpenJDK on AIX is
-the [PowerPC/AIX Port Project](http://openjdk.java.net/projects/ppc-aix-port/).
+On Linux you can also get OpenJDK from the Linux distribution. On apt-based
+distros (like Debian and Ubuntu), `sudo apt-get install openjdk--jdk`
+is typically enough to install OpenJDK \. On rpm-based distros (like
+Fedora and Red Hat), try `sudo yum install java--openjdk-devel`.
## External Library Requirements
diff -r c3ec048aad63 -r ece10494786c make/CompileJavaModules.gmk
--- a/make/CompileJavaModules.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/CompileJavaModules.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -252,6 +252,10 @@
################################################################################
+java.transaction.xa_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:javax.*'
+
+################################################################################
+
java.sql_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*'
java.sql_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS
diff -r c3ec048aad63 -r ece10494786c make/Docs.gmk
--- a/make/Docs.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/Docs.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -61,7 +61,7 @@
$(SUPPORT_OUTPUTDIR)/rmic/* $(TOPDIR)/src/*/share/doc/stub)
# URLs
-JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase9&id=homepage
+JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase10&id=homepage
BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
COPYRIGHT_URL := {@docroot}/../legal/copyright.html
LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java10speclicense.html
diff -r c3ec048aad63 -r ece10494786c make/InitSupport.gmk
--- a/make/InitSupport.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/InitSupport.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -435,7 +435,7 @@
define PrepareCompareBuild
$(ECHO) "Preparing for comparison rebuild"
# Apply patch, if any
- $(if $(COMPARE_BUILD_PATCH), $(PATCH) -p1 < $(COMPARE_BUILD_PATCH))
+ $(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -p1 < $(COMPARE_BUILD_PATCH))
# Move the first build away temporarily
$(RM) -r $(topdir)/build/.compare-build-temp
$(MKDIR) -p $(topdir)/build/.compare-build-temp
@@ -455,7 +455,7 @@
# Cleanup after a compare build
define CleanupCompareBuild
# If running with a COMPARE_BUILD patch, reverse-apply it
- $(if $(COMPARE_BUILD_PATCH), $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH))
+ $(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH))
# Move this build away and restore the original build
$(MKDIR) -p $(topdir)/build/compare-build
$(MV) $(OUTPUTDIR) $(COMPARE_BUILD_OUTPUTDIR)
diff -r c3ec048aad63 -r ece10494786c make/Main.gmk
--- a/make/Main.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/Main.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -399,10 +399,13 @@
update-build-docs:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateBuildDocs.gmk)
+update-x11wrappers:
+ +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateX11Wrappers.gmk)
+
ALL_TARGETS += docs-jdk-api-javadoc docs-jdk-api-modulegraph \
docs-javase-api-javadoc docs-javase-api-modulegraph \
docs-reference-api-javadoc docs-reference-api-modulegraph docs-jdk-specs \
- docs-jdk-index docs-zip update-build-docs
+ docs-jdk-index docs-zip update-build-docs update-x11wrappers
################################################################################
# Cross compilation support
@@ -724,9 +727,9 @@
# If not already set, set the JVM target so that the JVM will be built.
JVM_MAIN_TARGETS ?= hotspot
-
+
# Building java.base-jmod requires all of VM (ie hotspot) to be built.
- java.base-jmod: $(JVM_MAIN_TARGETS)
+ java.base-jmod: $(JVM_MAIN_TARGETS)
# Declare dependencies from -jmod to all other module targets
# When creating a BUILDJDK, the java compilation has already been done by the
@@ -830,7 +833,7 @@
# If not already set, then set the JVM specific docs targets
JVM_DOCS_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-gensrc
-
+
# The gensrc steps for hotspot and jdk.jdi create html spec files.
docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \
docs-jdk-index
@@ -894,6 +897,8 @@
generate-summary: jmods buildtools-modules
+ update-x11wrappers: java.base-copy buildtools-jdk
+
endif
################################################################################
diff -r c3ec048aad63 -r ece10494786c make/RunTests.gmk
--- a/make/RunTests.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/RunTests.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -60,6 +60,18 @@
endif
endef
+# Setup _NT_SYMBOL_PATH on Windows
+ifeq ($(OPENJDK_TARGET_OS), windows)
+ ifndef _NT_SYMBOL_PATH
+ # Can't use PathList here as it adds quotes around the value.
+ _NT_SYMBOL_PATH := \
+ $(subst $(SPACE),;, $(foreach p, $(sort $(dir $(wildcard \
+ $(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), $(call FixPath, $p)))
+ export _NT_SYMBOL_PATH
+ $(info _NT_SYMBOL_PATH $(_NT_SYMBOL_PATH))
+ endif
+endif
+
################################################################################
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, RunTests.gmk))
@@ -496,6 +508,11 @@
$1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
# Some tests needs to find a boot JDK using the JDK8_HOME variable.
$1_JTREG_BASIC_OPTIONS += -e:JDK8_HOME=$$(BOOT_JDK)
+ # If running on Windows, propagate the _NT_SYMBOL_PATH to enable
+ # symbol lookup in hserr files
+ ifeq ($$(OPENJDK_TARGET_OS), windows)
+ $1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
+ endif
$1_JTREG_BASIC_OPTIONS += \
$$(addprefix -javaoption:, $$(JTREG_JAVA_OPTIONS)) \
diff -r c3ec048aad63 -r ece10494786c make/RunTestsPrebuilt.gmk
--- a/make/RunTestsPrebuilt.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/RunTestsPrebuilt.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -113,6 +113,7 @@
# These can have default values based on the ones above
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
+$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols))
# Provide default values for tools that we need
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
@@ -245,6 +246,7 @@
JT_HOME := $(JT_HOME), \
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
TEST_IMAGE_DIR := $(TEST_IMAGE_DIR), \
+ SYMBOLS_IMAGE_DIR := $(SYMBOLS_IMAGE_DIR), \
MAKE := $(MAKE), \
BASH := $(BASH), \
JIB_JAR := $(JIB_JAR), \
diff -r c3ec048aad63 -r ece10494786c make/UpdateX11Wrappers.gmk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/UpdateX11Wrappers.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -0,0 +1,101 @@
+#
+# Copyright (c) 2012, 2018, 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.
+#
+
+################################################################################
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include NativeCompilation.gmk
+include ToolsJdk.gmk
+
+################################################################################
+# This file is responsible for extracting the x11 native struct offsets to
+# the xawt Java library. The tool needs to be run on the os/arch that
+# will host the final jvm, thus the tool cannot be used when cross compiling.
+#
+# Two versions of the generated offset file, sizes-32.txt and sizes-64.txt are
+# committed into the source code repository. These are the ones used in
+# GensrcX11Wrappers.gmk to generate the Java code during the build.
+################################################################################
+
+ifeq ($(COMPILE_TYPE), cross)
+ $(error It is not possible to update the x11wrappers when cross-compiling)
+endif
+
+X11WRAPPERS_OUTPUT := $(SUPPORT_OUTPUTDIR)/x11wrappers
+
+GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen
+
+BITS := $(OPENJDK_TARGET_CPU_BITS)
+
+# Generate the C code for the program that will output the offset file.
+$(X11WRAPPERS_OUTPUT)/src/data_generator.c: $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BUILD_TOOLS_JDK)
+ $(call LogInfo, Generating X11 wrapper data generator source code)
+ $(call MakeDir, $(@D))
+ $(call ExecuteWithLog, $@, \
+ $(TOOL_WRAPPERGENERATOR) gen_c_source $@ $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BITS))
+
+DATA_GENERATOR_INCLUDES := \
+ -I$(TOPDIR)/src/hotspot/share/include \
+ -I$(TOPDIR)/src/hotspot/os/$(HOTSPOT_TARGET_OS_TYPE)/include \
+ -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
+ -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
+ -I$(TOPDIR)/src/java.base/share/native/libjava \
+ -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
+ -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
+ -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
+ -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
+ #
+
+# Compile the generated C code into an executable.
+$(eval $(call SetupNativeCompilation, BUILD_DATA_GENERATOR, \
+ PROGRAM := data_generator, \
+ OUTPUT_DIR := $(X11WRAPPERS_OUTPUT)/bin, \
+ EXTRA_FILES := $(X11WRAPPERS_OUTPUT)/src/data_generator.c, \
+ CFLAGS := $(X_CFLAGS) $(DATA_GENERATOR_INCLUDES) $(CFLAGS_JDKEXE), \
+ LDFLAGS := $(LDFLAGS_JDKEXE), \
+ LIBS := $(X_LIBS) -lc, \
+ OBJECT_DIR := $(X11WRAPPERS_OUTPUT)/objs, \
+))
+
+# Run the executable to create the data file.
+$(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt: $(BUILD_DATA_GENERATOR_TARGET)
+ $(call LogInfo, Generating X11 wrapper data files)
+ $(call MakeDir, $(@D))
+ $(call ExecuteWithLog, $(X11WRAPPERS_OUTPUT)/generation, \
+ $(BUILD_DATA_GENERATOR_TARGET) | $(SORT) > $@)
+ $(ECHO) IMPORTANT: If you update the X11 wrapper data files, they most certainly
+ $(ECHO) need to be updated for both 32 and 64 bit platforms. You have now
+ $(ECHO) updated them for $(BITS) bit platforms only.
+
+TARGETS += $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt
+
+################################################################################
+
+all: $(TARGETS)
+
+.PHONY: all default
diff -r c3ec048aad63 -r ece10494786c make/autoconf/basics.m4
--- a/make/autoconf/basics.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/basics.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -1127,6 +1127,8 @@
fi
fi
BASIC_REQUIRE_PROGS(SETFILE, SetFile)
+ elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
+ BASIC_REQUIRE_PROGS(ELFEDIT, elfedit)
fi
])
diff -r c3ec048aad63 -r ece10494786c make/autoconf/boot-jdk.m4
--- a/make/autoconf/boot-jdk.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/boot-jdk.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -77,10 +77,11 @@
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $HEAD -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- [FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION | $EGREP '\"10([\.+-].*)?\"|\"9([\.+-].*)?\"'`]
+ [FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
+ | $EGREP "\"(${DEFAULT_ACCEPTABLE_BOOT_VERSIONS// /|})([\.+-].*)?\""`]
if test "x$FOUND_CORRECT_VERSION" = x; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring])
- AC_MSG_NOTICE([(Your Boot JDK must be version 9 or 10)])
+ AC_MSG_NOTICE([(Your Boot JDK version must be one of: $DEFAULT_ACCEPTABLE_BOOT_VERSIONS)])
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -510,10 +511,10 @@
BUILD_JDK_VERSION=`"$BUILD_JDK/bin/java" -version 2>&1 | $HEAD -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- [FOUND_CORRECT_VERSION=`echo $BUILD_JDK_VERSION | $EGREP '\"10([\.+-].*)?\"'`]
+ [FOUND_CORRECT_VERSION=`echo $BUILD_JDK_VERSION | $EGREP "\"$VERSION_FEATURE([\.+-].*)?\""`]
if test "x$FOUND_CORRECT_VERSION" = x; then
AC_MSG_NOTICE([Potential Build JDK found at $BUILD_JDK is incorrect JDK version ($BUILD_JDK_VERSION); ignoring])
- AC_MSG_NOTICE([(Your Build JDK must be version 10)])
+ AC_MSG_NOTICE([(Your Build JDK must be version $VERSION_FEATURE)])
BUILD_JDK_FOUND=no
else
# We're done!
diff -r c3ec048aad63 -r ece10494786c make/autoconf/configure.ac
--- a/make/autoconf/configure.ac Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/configure.ac Fri Mar 02 21:00:12 2018 +0100
@@ -163,10 +163,9 @@
# First determine the toolchain type (compiler family)
TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE
-# User supplied flags should be used when configure detects compilers
-FLAGS_SETUP_USER_SUPPLIED_FLAGS
-# The sysroot cflags are needed for configure to be able to run the compilers
-FLAGS_SETUP_SYSROOT_FLAGS
+# The global flags are needed for configure to be able to run the compilers
+# correctly.
+FLAGS_PRE_TOOLCHAIN
# Then detect the actual binaries needed
TOOLCHAIN_PRE_DETECTION
@@ -184,17 +183,15 @@
# Setup Jib dependency tool
TOOLCHAIN_SETUP_JIB
-FLAGS_SETUP_INIT_FLAGS
+# After toolchain setup, we need to process some flags to be able to continue.
+FLAGS_POST_TOOLCHAIN
# Now we can test some aspects on the target using configure macros.
PLATFORM_SETUP_OPENJDK_TARGET_BITS
PLATFORM_SETUP_OPENJDK_TARGET_ENDIANNESS
# Configure flags for the tools
-FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS
-FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION
-FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK
-FLAGS_SETUP_COMPILER_FLAGS_MISC
+FLAGS_SETUP_FLAGS
# Setup debug symbols (need objcopy from the toolchain for that)
JDKOPT_SETUP_DEBUG_SYMBOLS
diff -r c3ec048aad63 -r ece10494786c make/autoconf/flags-cflags.m4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/autoconf/flags-cflags.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -0,0 +1,878 @@
+#
+# Copyright (c) 2011, 2018, 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.
+#
+
+################################################################################
+#
+# Setup flags for C/C++ compiler
+#
+
+###############################################################################
+#
+# How to compile shared libraries.
+#
+AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
+[
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ C_FLAG_REORDER=''
+
+ # Default works for linux, might work on other platforms as well.
+ SHARED_LIBRARY_FLAGS='-shared'
+ SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
+ SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
+ SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
+ SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
+
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ C_FLAG_REORDER=''
+
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # Linking is different on MacOSX
+ SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0"
+ SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
+ SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+ SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
+ SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
+
+ else
+ # Default works for linux, might work on other platforms as well.
+ SHARED_LIBRARY_FLAGS='-shared'
+ SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
+ SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
+ SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
+
+ # arm specific settings
+ if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
+ # '-Wl,-z,origin' isn't used on arm.
+ SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
+ else
+ SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
+ fi
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ C_FLAG_REORDER='-xF'
+ SHARED_LIBRARY_FLAGS="-G"
+ SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1'
+ SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+ SET_SHARED_LIBRARY_NAME='-h [$]1'
+ SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
+
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ C_FLAG_REORDER=''
+ SHARED_LIBRARY_FLAGS="-qmkshrobj -bM:SRE -bnoentry"
+ SET_EXECUTABLE_ORIGIN=""
+ SET_SHARED_LIBRARY_ORIGIN=''
+ SET_SHARED_LIBRARY_NAME=''
+ SET_SHARED_LIBRARY_MAPFILE=''
+
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ C_FLAG_REORDER=''
+ SHARED_LIBRARY_FLAGS="-dll"
+ SET_EXECUTABLE_ORIGIN=''
+ SET_SHARED_LIBRARY_ORIGIN=''
+ SET_SHARED_LIBRARY_NAME=''
+ SET_SHARED_LIBRARY_MAPFILE='-def:[$]1'
+ fi
+
+ AC_SUBST(C_FLAG_REORDER)
+ AC_SUBST(SET_EXECUTABLE_ORIGIN)
+ AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
+ AC_SUBST(SET_SHARED_LIBRARY_NAME)
+ AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
+ AC_SUBST(SHARED_LIBRARY_FLAGS)
+])
+
+AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
+[
+ # Debug symbols
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ CFLAGS_DEBUG_SYMBOLS="-g"
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ CFLAGS_DEBUG_SYMBOLS="-g"
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ # -g0 enables debug symbols without disabling inlining.
+ CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ CFLAGS_DEBUG_SYMBOLS="-g"
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ CFLAGS_DEBUG_SYMBOLS="-Z7 -d2Zi+"
+ fi
+
+ AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
+
+ # FIXME: This was never used in the old build. What to do with it?
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ # "-Og" suppported for GCC 4.8 and later
+ CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CFLAG_OPTIMIZE_DEBUG_FLAG],
+ IF_TRUE: [HAS_CFLAG_OPTIMIZE_DEBUG=true],
+ IF_FALSE: [HAS_CFLAG_OPTIMIZE_DEBUG=false])
+ fi
+])
+
+AC_DEFUN([FLAGS_SETUP_WARNINGS],
+[
+ AC_ARG_ENABLE([warnings-as-errors], [AS_HELP_STRING([--disable-warnings-as-errors],
+ [do not consider native warnings to be an error @<:@enabled@:>@])])
+
+ AC_MSG_CHECKING([if native warnings are errors])
+ if test "x$enable_warnings_as_errors" = "xyes"; then
+ AC_MSG_RESULT([yes (explicitly set)])
+ WARNINGS_AS_ERRORS=true
+ elif test "x$enable_warnings_as_errors" = "xno"; then
+ AC_MSG_RESULT([no])
+ WARNINGS_AS_ERRORS=false
+ elif test "x$enable_warnings_as_errors" = "x"; then
+ AC_MSG_RESULT([yes (default)])
+ WARNINGS_AS_ERRORS=true
+ else
+ AC_MSG_ERROR([--enable-warnings-as-errors accepts no argument])
+ fi
+
+ AC_SUBST(WARNINGS_AS_ERRORS)
+
+ case "${TOOLCHAIN_TYPE}" in
+ microsoft)
+ DISABLE_WARNING_PREFIX="-wd"
+ CFLAGS_WARNINGS_ARE_ERRORS="-WX"
+ ;;
+ solstudio)
+ DISABLE_WARNING_PREFIX="-erroff="
+ CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
+ ;;
+ gcc)
+ # Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
+ IF_TRUE: [GCC_CAN_DISABLE_WARNINGS=true],
+ IF_FALSE: [GCC_CAN_DISABLE_WARNINGS=false]
+ )
+ if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then
+ DISABLE_WARNING_PREFIX="-Wno-"
+ else
+ DISABLE_WARNING_PREFIX=
+ fi
+ CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+ # Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
+ # CFLAGS since any target specific flags will likely not work with the
+ # build compiler
+ CC_OLD="$CC"
+ CXX_OLD="$CXX"
+ CC="$BUILD_CC"
+ CXX="$BUILD_CXX"
+ CFLAGS_OLD="$CFLAGS"
+ CFLAGS=""
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
+ IF_TRUE: [BUILD_CC_CAN_DISABLE_WARNINGS=true],
+ IF_FALSE: [BUILD_CC_CAN_DISABLE_WARNINGS=false]
+ )
+ if test "x$BUILD_CC_CAN_DISABLE_WARNINGS" = "xtrue"; then
+ BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
+ else
+ BUILD_CC_DISABLE_WARNING_PREFIX=
+ fi
+ CC="$CC_OLD"
+ CXX="$CXX_OLD"
+ CFLAGS="$CFLAGS_OLD"
+ ;;
+ clang)
+ DISABLE_WARNING_PREFIX="-Wno-"
+ CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+ ;;
+ xlc)
+ DISABLE_WARNING_PREFIX="-qsuppress="
+ CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
+ ;;
+ esac
+ AC_SUBST(DISABLE_WARNING_PREFIX)
+ AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
+ AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
+])
+
+AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
+[
+ # bounds, memory and behavior checking options
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ case $DEBUG_LEVEL in
+ release )
+ # no adjustment
+ ;;
+ fastdebug )
+ # no adjustment
+ ;;
+ slowdebug )
+ # FIXME: By adding this to C(XX)FLAGS_DEBUG_OPTIONS/JVM_CFLAGS_SYMBOLS it
+ # get's added conditionally on whether we produce debug symbols or not.
+ # This is most likely not really correct.
+
+ # Add runtime stack smashing and undefined behavior checks.
+ # Not all versions of gcc support -fstack-protector
+ STACK_PROTECTOR_CFLAG="-fstack-protector-all"
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG -Werror],
+ IF_FALSE: [STACK_PROTECTOR_CFLAG=""])
+
+ CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
+ CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
+
+ if test "x$STACK_PROTECTOR_CFLAG" != x; then
+ JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS $STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
+ fi
+ ;;
+ esac
+ fi
+])
+
+AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
+[
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ CC_HIGHEST="-fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
+
+ C_O_FLAG_HIGHEST_JVM="-xO4"
+ C_O_FLAG_DEBUG_JVM=""
+ C_O_FLAG_SIZE=""
+ C_O_FLAG_DEBUG=""
+ C_O_FLAG_NONE=""
+ if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
+ C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST"
+ C_O_FLAG_HI="-xO4 -Wu,-O4~yz"
+ C_O_FLAG_NORM="-xO2 -Wu,-O2~yz"
+ elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
+ C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 \
+ -xprefetch=auto,explicit -xchip=ultra $CC_HIGHEST"
+ C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
+ C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xgcc; then
+ C_O_FLAG_HIGHEST_JVM="-O3"
+ C_O_FLAG_HIGHEST="-O3"
+ C_O_FLAG_HI="-O3"
+ C_O_FLAG_NORM="-O2"
+ C_O_FLAG_SIZE="-Os"
+ C_O_FLAG_DEBUG="-O0"
+ C_O_FLAG_DEBUG_JVM="-O0"
+ C_O_FLAG_NONE="-O0"
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # On MacOSX we optimize for size, something
+ # we should do for all platforms?
+ C_O_FLAG_HIGHEST_JVM="-Os"
+ C_O_FLAG_HIGHEST="-Os"
+ C_O_FLAG_HI="-Os"
+ C_O_FLAG_NORM="-Os"
+ C_O_FLAG_DEBUG_JVM=""
+ else
+ C_O_FLAG_HIGHEST_JVM="-O3"
+ C_O_FLAG_HIGHEST="-O3"
+ C_O_FLAG_HI="-O3"
+ C_O_FLAG_NORM="-O2"
+ C_O_FLAG_DEBUG_JVM="-O0"
+ fi
+ C_O_FLAG_SIZE="-Os"
+ C_O_FLAG_DEBUG="-O0"
+ C_O_FLAG_NONE="-O0"
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue"
+ C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue"
+ C_O_FLAG_HI="-O3 -qinline -qinlglue"
+ C_O_FLAG_NORM="-O2"
+ C_O_FLAG_DEBUG="-qnoopt"
+ # FIXME: Value below not verified.
+ C_O_FLAG_DEBUG_JVM=""
+ C_O_FLAG_NONE="-qnoopt"
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ C_O_FLAG_HIGHEST_JVM="-O2 -Oy-"
+ C_O_FLAG_HIGHEST="-O2"
+ C_O_FLAG_HI="-O1"
+ C_O_FLAG_NORM="-O1"
+ C_O_FLAG_DEBUG="-Od"
+ C_O_FLAG_DEBUG_JVM=""
+ C_O_FLAG_NONE="-Od"
+ C_O_FLAG_SIZE="-Os"
+ fi
+
+ # Now copy to C++ flags
+ CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM"
+ CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
+ CXX_O_FLAG_HI="$C_O_FLAG_HI"
+ CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
+ CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG"
+ CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM"
+ CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
+ CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE"
+
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ # In solstudio, also add this to C (but not C++) flags...
+ C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xalias_level=basic"
+ fi
+
+ # Adjust optimization flags according to debug level.
+ case $DEBUG_LEVEL in
+ release )
+ # no adjustment
+ ;;
+ fastdebug )
+ # Not quite so much optimization
+ C_O_FLAG_HI="$C_O_FLAG_NORM"
+ CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
+ ;;
+ slowdebug )
+ # Disable optimization
+ C_O_FLAG_HIGHEST_JVM="$C_O_FLAG_DEBUG_JVM"
+ C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG"
+ C_O_FLAG_HI="$C_O_FLAG_DEBUG"
+ C_O_FLAG_NORM="$C_O_FLAG_DEBUG"
+ C_O_FLAG_SIZE="$C_O_FLAG_DEBUG"
+ CXX_O_FLAG_HIGHEST_JVM="$CXX_O_FLAG_DEBUG_JVM"
+ CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG"
+ CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG"
+ CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG"
+ CXX_O_FLAG_SIZE="$CXX_O_FLAG_DEBUG"
+ ;;
+ esac
+
+ AC_SUBST(C_O_FLAG_HIGHEST_JVM)
+ AC_SUBST(C_O_FLAG_HIGHEST)
+ AC_SUBST(C_O_FLAG_HI)
+ AC_SUBST(C_O_FLAG_NORM)
+ AC_SUBST(C_O_FLAG_NONE)
+ AC_SUBST(C_O_FLAG_SIZE)
+ AC_SUBST(CXX_O_FLAG_HIGHEST_JVM)
+ AC_SUBST(CXX_O_FLAG_HIGHEST)
+ AC_SUBST(CXX_O_FLAG_HI)
+ AC_SUBST(CXX_O_FLAG_NORM)
+ AC_SUBST(CXX_O_FLAG_NONE)
+ AC_SUBST(CXX_O_FLAG_SIZE)
+])
+
+AC_DEFUN([FLAGS_SETUP_CFLAGS],
+[
+ ### CFLAGS
+
+ FLAGS_SETUP_CFLAGS_HELPER
+
+ FLAGS_OS=$OPENJDK_TARGET_OS
+ FLAGS_OS_TYPE=$OPENJDK_TARGET_OS_TYPE
+ FLAGS_CPU=$OPENJDK_TARGET_CPU
+ FLAGS_CPU_ARCH=$OPENJDK_TARGET_CPU_ARCH
+ FLAGS_CPU_BITS=$OPENJDK_TARGET_CPU_BITS
+ FLAGS_CPU_ENDIAN=$OPENJDK_TARGET_CPU_ENDIAN
+ FLAGS_CPU_LEGACY=$OPENJDK_TARGET_CPU_LEGACY
+ FLAGS_CPU_LEGACY_LIB=$OPENJDK_TARGET_CPU_LEGACY_LIB
+
+ FLAGS_SETUP_CFLAGS_CPU_DEP([TARGET])
+
+ FLAGS_OS=$OPENJDK_BUILD_OS
+ FLAGS_OS_TYPE=$OPENJDK_BUILD_OS_TYPE
+ FLAGS_CPU=$OPENJDK_BUILD_CPU
+ FLAGS_CPU_ARCH=$OPENJDK_BUILD_CPU_ARCH
+ FLAGS_CPU_BITS=$OPENJDK_BUILD_CPU_BITS
+ FLAGS_CPU_ENDIAN=$OPENJDK_BUILD_CPU_ENDIAN
+ FLAGS_CPU_LEGACY=$OPENJDK_BUILD_CPU_LEGACY
+ FLAGS_CPU_LEGACY_LIB=$OPENJDK_BUILD_CPU_LEGACY_LIB
+
+ FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
+
+ # Tests are only ever compiled for TARGET
+ CFLAGS_TESTLIB="$CFLAGS_JDKLIB"
+ CXXFLAGS_TESTLIB="$CXXFLAGS_JDKLIB"
+ CFLAGS_TESTEXE="$CFLAGS_JDKEXE"
+ CXXFLAGS_TESTEXE="$CXXFLAGS_JDKEXE"
+
+ AC_SUBST(CFLAGS_TESTLIB)
+ AC_SUBST(CFLAGS_TESTEXE)
+ AC_SUBST(CXXFLAGS_TESTLIB)
+ AC_SUBST(CXXFLAGS_TESTEXE)
+])
+
+################################################################################
+# platform independent
+AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
+[
+ #### OS DEFINES, these should be independent on toolchain
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ CFLAGS_OS_DEF_JVM="-DLINUX"
+ CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
+ elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ CFLAGS_OS_DEF_JVM="-DSOLARIS"
+ CFLAGS_OS_DEF_JDK="-D__solaris__"
+ elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
+ CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
+ elif test "x$OPENJDK_TARGET_OS" = xaix; then
+ CFLAGS_OS_DEF_JVM="-DAIX"
+ elif test "x$OPENJDK_TARGET_OS" = xbsd; then
+ CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE"
+ elif test "x$OPENJDK_TARGET_OS" = xwindows; then
+ CFLAGS_OS_DEF_JVM="-D_WINDOWS -DWIN32 -D_JNI_IMPLEMENTATION_"
+ fi
+
+ # Setup target OS define. Use OS target name but in upper case.
+ OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ CFLAGS_OS_DEF_JDK="$CFLAGS_OS_DEF_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
+
+ #### GLOBAL DEFINES
+ # Set some common defines. These works for all compilers, but assume
+ # -D is universally accepted.
+
+ # Always enable optional macros for VM.
+ ALWAYS_CFLAGS_JVM="-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS"
+
+ # Setup some hard coded includes
+ ALWAYS_CFLAGS_JDK=" \
+ -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
+ -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base/\$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
+ -I${TOPDIR}/src/java.base/share/native/libjava \
+ -I${TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/libjava \
+ -I${TOPDIR}/src/hotspot/share/include \
+ -I${TOPDIR}/src/hotspot/os/${HOTSPOT_TARGET_OS_TYPE}/include"
+
+ ###############################################################################
+
+ # Adjust flags according to debug level.
+ # Setup debug/release defines
+ if test "x$DEBUG_LEVEL" = xrelease; then
+ DEBUG_CFLAGS_JDK="-DNDEBUG"
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ DEBUG_CFLAGS_JDK="$DEBUG_CFLAGS_JDK -DTRIMMED"
+ fi
+ else
+ DEBUG_CFLAGS_JDK="-DDEBUG"
+
+ if test "x$TOOLCHAIN_TYPE" = xxlc; then
+ # We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
+ # Hotspot now overflows its 64K TOC (currently only for debug),
+ # so for debug we build with '-qpic=large -bbigtoc'.
+ DEBUG_CFLAGS_JVM="-qpic=large"
+ fi
+ fi
+
+ if test "x$DEBUG_LEVEL" != xrelease; then
+ DEBUG_OPTIONS_FLAGS_JDK="$CFLAGS_DEBUG_OPTIONS"
+ DEBUG_SYMBOLS_CFLAGS_JDK="$CFLAGS_DEBUG_SYMBOLS"
+ fi
+
+ #### TOOLCHAIN DEFINES
+
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT"
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ ALWAYS_DEFINES_JVM="-DSPARC_WORKS -D_Crun_inline_placement"
+ ALWAYS_DEFINES_JDK="-DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
+ ALWAYS_DEFINES_JDK_CXXONLY="-DCC_NOEX"
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ ALWAYS_DEFINES_JVM="-D_REENTRANT"
+ ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE \
+ -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
+ fi
+
+ ###############################################################################
+ #
+ #
+ # CFLAGS BASIC
+ if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
+ # COMMON to gcc and clang
+ TOOLCHAIN_CFLAGS_JVM="-pipe -fno-rtti -fno-exceptions \
+ -fvisibility=hidden -fno-strict-aliasing -fno-omit-frame-pointer"
+ fi
+
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new"
+ TOOLCHAIN_CFLAGS_JDK="-pipe"
+ TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX (but since this gives *worse* performance, use no-strict-aliasing everywhere!)
+
+ CXXSTD_CXXFLAG="-std=gnu++98"
+ FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CXXSTD_CXXFLAG -Werror],
+ IF_FALSE: [CXXSTD_CXXFLAG=""])
+ TOOLCHAIN_CFLAGS_JDK_CXXONLY="$CXXSTD_CXXFLAG"
+ TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $CXXSTD_CXXFLAG"
+ ADLC_CXXFLAG="$CXXSTD_CXXFLAG"
+
+
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ # Restrict the debug information created by Clang to avoid
+ # too big object files and speed the build up a little bit
+ # (see http://llvm.org/bugs/show_bug.cgi?id=7554)
+ TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -flimit-debug-info"
+
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ TOOLCHAIN_CFLAGS_JDK="-pipe"
+ TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ TOOLCHAIN_CFLAGS_JDK="-mt"
+ TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -v -W0,-noglobal" # C only
+ TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
+ TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
+ -library=stlport4 -mt -features=no%except"
+ if test "x$DEBUG_LEVEL" = xslowdebug; then
+ # Previously -g was used instead of -g0 for slowdebug; this is equivalent
+ # to setting +d.
+ TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM +d"
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS
+ TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
+ -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
+ -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP"
+ TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-"
+ fi
+
+ # CFLAGS WARNINGS STUFF
+ # Set JVM_CFLAGS warning handling
+ if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
+ # COMMON to gcc and clang
+ WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function"
+ if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
+ # Non-zero builds have stricter warnings
+ WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wundef -Wformat=2"
+ fi
+
+ fi
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
+ WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wunused-value -Woverloaded-virtual"
+
+ if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
+ # Non-zero builds have stricter warnings
+ WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wreturn-type"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-deprecated"
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
+ WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ WARNING_CFLAGS_JDK_CONLY="-errshort=tags"
+ WARNING_CFLAGS_JDK_CXXONLY="+w"
+ WARNING_CFLAGS_JDK="-errtags=yes -errfmt"
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ WARNING_CFLAGS="-W3"
+ WARNING_CFLAGS_JDK="-wd4800"
+ fi
+
+ # Set some additional per-OS defines.
+
+ # Additional macosx handling
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ OS_CFLAGS="-DMAC_OS_X_VERSION_MIN_REQUIRED=$MACOSX_VERSION_MIN_NODOTS \
+ -mmacosx-version-min=$MACOSX_VERSION_MIN"
+
+ if test -n "$MACOSX_VERSION_MAX"; then
+ OS_CFLAGS="$OS_CFLAGS \
+ -DMAC_OS_X_VERSION_MAX_ALLOWED=$MACOSX_VERSION_MAX_NODOTS"
+ fi
+ fi
+
+ # Where does this really belong??
+ if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
+ PICFLAG="-fPIC"
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ PICFLAG="-KPIC"
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
+ # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
+ # will have to patch this single instruction with a call to some out-of-order code which
+ # does the load from the TOC. This is of course slow. But in that case we also would have
+ # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
+ # With 'qpic=large' the compiler will by default generate a two-instruction sequence which
+ # can be patched directly by the linker and does not require a jump to out-of-order code.
+ # Another alternative instead of using 'qpic=large -bbigtoc' may be to use '-qminimaltoc'
+ # instead. This creates a distinct TOC for every compilation unit (and thus requires two
+ # loads for accessing a global variable). But there are rumors that this may be seen as a
+ # 'performance feature' because of improved code locality of the symbols used in a
+ # compilation unit.
+ PICFLAG="-qpic"
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ PICFLAG=""
+ fi
+
+ JVM_PICFLAG="$PICFLAG"
+ JDK_PICFLAG="$PICFLAG"
+
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # Linking is different on MacOSX
+ JDK_PICFLAG=''
+ if test "x$STATIC_BUILD" = xtrue; then
+ JVM_PICFLAG=""
+ fi
+ fi
+
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ OS_CFLAGS_JVM="$OS_CFLAGS_JVM -mno-omit-leaf-frame-pointer -mstack-alignment=16"
+ fi
+
+ # Optional POSIX functionality needed by the JVM
+ #
+ # Check if clock_gettime is available and in which library. This indicates
+ # availability of CLOCK_MONOTONIC for hotspot. But we don't need to link, so
+ # don't let it update LIBS.
+ save_LIBS="$LIBS"
+ AC_SEARCH_LIBS(clock_gettime, rt, [HAS_CLOCK_GETTIME=true], [])
+ if test "x$LIBS" = "x-lrt "; then
+ CLOCK_GETTIME_IN_LIBRT=true
+ fi
+ LIBS="$save_LIBS"
+
+ if test "x$HAS_CLOCK_GETTIME" = "xtrue"; then
+ OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DSUPPORTS_CLOCK_MONOTONIC"
+ if test "x$CLOCK_GETTIME_IN_LIBRT" = "xtrue"; then
+ OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DNEEDS_LIBRT"
+ fi
+ fi
+
+ # EXPORT
+ AC_SUBST(ADLC_CXXFLAG)
+])
+
+################################################################################
+# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
+# conditionals against.
+# $2 - Optional prefix for each variable defined.
+AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
+[
+ #### CPU DEFINES, these should (in theory) be independent on toolchain
+
+ # Setup target CPU
+ # Setup endianness
+ if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
+ $1_DEFINES_CPU_JVM="-DVM_LITTLE_ENDIAN"
+ fi
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
+ # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
+ if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
+ $1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN="
+ else
+ $1_DEFINES_CPU_JDK="-D_BIG_ENDIAN="
+ fi
+ else
+ if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
+ $1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN"
+ else
+ $1_DEFINES_CPU_JDK="-D_BIG_ENDIAN"
+ fi
+ fi
+
+ # setup CPU bit size
+ $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
+ -D$FLAGS_CPU_LEGACY"
+
+ if test "x$FLAGS_CPU_BITS" = x64; then
+ # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
+ # unpack200.exe.
+ if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
+ $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
+ fi
+ if test "x$FLAGS_OS" != xsolaris && test "x$FLAGS_OS" != xaix; then
+ # Solaris does not have _LP64=1 in the old build.
+ # xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
+ $1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
+ fi
+ fi
+
+ # toolchain dependend, per-cpu
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ if test "x$FLAGS_CPU_ARCH" = xx86; then
+ $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DcpuIntel -Di586 -D$FLAGS_CPU_LEGACY_LIB"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ if test "x$FLAGS_CPU" = xx86_64; then
+ $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
+ else
+ $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
+ fi
+ fi
+
+ # CFLAGS PER CPU
+ if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
+ # COMMON to gcc and clang
+ if test "x$FLAGS_CPU" = xx86; then
+ # Force compatibility with i586 on 32 bit intel platforms.
+ $1_CFLAGS_CPU="-march=i586"
+ fi
+ fi
+
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ if test "x$FLAGS_CPU" = xarm; then
+ # -Wno-psabi to get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
+ $1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
+ $1_CFLAGS_CPU_JVM="-DARM"
+ elif test "x$FLAGS_CPU" = xaarch64; then
+ if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
+ $1_CFLAGS_CPU_JVM="-fsigned-char -DARM"
+ fi
+ elif test "x$FLAGS_CPU_ARCH" = xppc; then
+ $1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
+ if test "x$FLAGS_CPU" = xppc64; then
+ # -mminimal-toc fixes `relocation truncated to fit' error for gcc 4.1.
+ # Use ppc64 instructions, but schedule for power5
+ $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -mminimal-toc -mcpu=powerpc64 -mtune=power5"
+ elif test "x$FLAGS_CPU" = xppc64le; then
+ # Little endian machine uses ELFv2 ABI.
+ # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
+ $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power8"
+ fi
+ elif test "x$FLAGS_CPU" = xs390x; then
+ $1_CFLAGS_CPU="-mbackchain -march=z10"
+ fi
+
+ if test "x$FLAGS_CPU_ARCH" != xarm && test "x$FLAGS_CPU_ARCH" != xppc; then
+ # for all archs except arm and ppc, prevent gcc to omit frame pointer
+ $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ if test "x$FLAGS_OS" = xlinux; then
+ # ppc test not really needed for clang
+ if test "x$FLAGS_CPU_ARCH" != xarm && test "x$FLAGS_CPU_ARCH" != xppc; then
+ # for all archs except arm and ppc, prevent gcc to omit frame pointer
+ $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
+ fi
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ if test "x$FLAGS_CPU" = xx86_64; then
+ # NOTE: -xregs=no%frameptr is supposed to be default on x64
+ $1_CFLAGS_CPU_JDK="-xregs=no%frameptr"
+ elif test "x$FLAGS_CPU" = xsparcv9; then
+ $1_CFLAGS_CPU_JVM="-xarch=sparc"
+ $1_CFLAGS_CPU_JDK_LIBONLY="-xregs=no%appl"
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ if test "x$FLAGS_CPU" = xppc64; then
+ $1_CFLAGS_CPU_JVM="-qarch=ppc64"
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ if test "x$FLAGS_CPU" = xx86; then
+ $1_CFLAGS_CPU_JVM="-arch:IA32"
+ elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
+ if test "x$DEBUG_LEVEL" != xrelease; then
+ # NOTE: This is probably redundant; -homeparams is default on
+ # non-release builds.
+ $1_CFLAGS_CPU_JVM="-homeparams"
+ fi
+ fi
+ fi
+
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($1))
+ $1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
+
+ TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: [4.8], PREFIX: $2,
+ IF_AT_LEAST: [
+ # These flags either do not work or give spurious warnings prior to gcc 4.8.
+ $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
+ ]
+ )
+ fi
+
+ # EXPORT to API
+ CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \
+ $OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
+ $WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG"
+
+ CFLAGS_JDK_COMMON="$ALWAYS_CFLAGS_JDK $ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \
+ $OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \
+ $WARNING_CFLAGS $WARNING_CFLAGS_JDK $DEBUG_SYMBOLS_CFLAGS_JDK"
+
+ # Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags.
+ # (Currently we don't have any OPENJDK_BUILD_EXTRA_CFLAGS, but that might
+ # change in the future.)
+
+ CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY \
+ $WARNING_CFLAGS_JDK_CONLY ${$2EXTRA_CFLAGS}"
+ CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \
+ $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}"
+
+ $1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}"
+ $1_CFLAGS_JDK="${$1_DEFINES_CPU_JDK} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JDK} ${$1_TOOLCHAIN_CFLAGS}"
+
+ $2JVM_CFLAGS="$CFLAGS_JVM_COMMON ${$1_CFLAGS_JVM} ${$2EXTRA_CXXFLAGS}"
+
+ $2CFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CONLY ${$1_CFLAGS_JDK}"
+ $2CXXFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CXXONLY ${$1_CFLAGS_JDK}"
+ $2CFLAGS_JDKLIB="${$2CFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
+ $2CXXFLAGS_JDKLIB="${$2CXXFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
+
+ AC_SUBST($2JVM_CFLAGS)
+ AC_SUBST($2CFLAGS_JDKLIB)
+ AC_SUBST($2CFLAGS_JDKEXE)
+ AC_SUBST($2CXXFLAGS_JDKLIB)
+ AC_SUBST($2CXXFLAGS_JDKEXE)
+])
+
+# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX])
+# Arguments:
+# $1 - Prefix for each variable defined.
+AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
+[
+ # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code
+ # runs afoul of the more aggressive versions of these optimisations.
+ # Notably, value range propagation now assumes that the this pointer of C++
+ # member functions is non-null.
+ NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
+ dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
+ dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
+ dnl IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
+ NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
+ dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
+ dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
+ dnl IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
+ AC_MSG_NOTICE([GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}])
+ $1_GCC6_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
+])
+
+# Documentation on common flags used for solstudio in HIGHEST.
+#
+# WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
+# done with care, there are some assumptions below that need to
+# be understood about the use of pointers, and IEEE behavior.
+#
+# -fns: Use non-standard floating point mode (not IEEE 754)
+# -fsimple: Do some simplification of floating point arithmetic (not IEEE 754)
+# -fsingle: Use single precision floating point with 'float'
+# -xalias_level=basic: Assume memory references via basic pointer types do not alias
+# (Source with excessing pointer casting and data access with mixed
+# pointer types are not recommended)
+# -xbuiltin=%all: Use intrinsic or inline versions for math/std functions
+# (If you expect perfect errno behavior, do not use this)
+# -xdepend: Loop data dependency optimizations (need -xO3 or higher)
+# -xrestrict: Pointer parameters to functions do not overlap
+# (Similar to -xalias_level=basic usage, but less obvious sometimes.
+# If you pass in multiple pointers to the same data, do not use this)
+# -xlibmil: Inline some library routines
+# (If you expect perfect errno behavior, do not use this)
+# -xlibmopt: Use optimized math routines (CURRENTLY DISABLED)
+# (If you expect perfect errno behavior, do not use this)
+# Can cause undefined external on Solaris 8 X86 on __sincos, removing for now
diff -r c3ec048aad63 -r ece10494786c make/autoconf/flags-ldflags.m4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/autoconf/flags-ldflags.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -0,0 +1,234 @@
+#
+# Copyright (c) 2011, 2018, 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.
+#
+
+################################################################################
+#
+
+AC_DEFUN([FLAGS_SETUP_LDFLAGS],
+[
+ FLAGS_SETUP_LDFLAGS_HELPER
+
+ # Setup the target toolchain
+
+ # On some platforms (mac) the linker warns about non existing -L dirs.
+ # For any of the variants server, client or minimal, the dir matches the
+ # variant name. The "main" variant should be used for linking. For the
+ # rest, the dir is just server.
+ if HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) \
+ || HOTSPOT_CHECK_JVM_VARIANT(minimal); then
+ TARGET_JVM_VARIANT_PATH=$JVM_VARIANT_MAIN
+ else
+ TARGET_JVM_VARIANT_PATH=server
+ fi
+ FLAGS_SETUP_LDFLAGS_CPU_DEP([TARGET])
+
+ # Setup the build toolchain
+
+ # When building a buildjdk, it's always only the server variant
+ BUILD_JVM_VARIANT_PATH=server
+
+ FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
+
+ LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
+ LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE ${TARGET_LDFLAGS_JDK_LIBPATH}"
+ AC_SUBST(LDFLAGS_TESTLIB)
+ AC_SUBST(LDFLAGS_TESTEXE)
+])
+
+################################################################################
+
+# CPU independent LDFLAGS setup, used for both target and build toolchain.
+AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
+[
+ # Setup basic LDFLAGS
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ # "-z relro" supported in GNU binutils 2.17 and later
+ LINKER_RELRO_FLAG="-Wl,-z,relro"
+ FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [$LINKER_RELRO_FLAG],
+ IF_TRUE: [HAS_LINKER_RELRO=true],
+ IF_FALSE: [HAS_LINKER_RELRO=false])
+
+ # "-z now" supported in GNU binutils 2.11 and later
+ LINKER_NOW_FLAG="-Wl,-z,now"
+ FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [$LINKER_NOW_FLAG],
+ IF_TRUE: [HAS_LINKER_NOW=true],
+ IF_FALSE: [HAS_LINKER_NOW=false])
+
+ # 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
+ if test -n "$HAS_GNU_HASH"; then
+ BASIC_LDFLAGS="-Wl,--hash-style=both"
+ LIBJSIG_HASHSTYLE_LDFLAGS="-Wl,--hash-style=both"
+ fi
+
+ # And since we now know that the linker is gnu, then add -z defs, to forbid
+ # undefined symbols in object files.
+ BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
+
+ BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1"
+
+ BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack"
+ LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack"
+
+
+ if test "x$HAS_LINKER_RELRO" = "xtrue"; then
+ BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY $LINKER_RELRO_FLAG"
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
+ -stdlib=libstdc++ -fPIC"
+
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ BASIC_LDFLAGS="-Wl,-z,defs"
+ BASIC_LDFLAGS_ONLYCXX="-norunpath"
+ BASIC_LDFLAGS_ONLYCXX_JDK_ONLY="-xnolib"
+
+ BASIC_LDFLAGS_JDK_ONLY="-ztext"
+ BASIC_LDFLAGS_JVM_ONLY="-library=%none -mt -z noversion"
+
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ BASIC_LDFLAGS="-b64 -brtl -bnolibpath -bexpall -bernotok -btextpsize:64K \
+ -bdatapsize:64K -bstackpsize:64K"
+ BASIC_LDFLAGS_JVM_ONLY="-Wl,-lC_r"
+
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ BASIC_LDFLAGS="-nologo -opt:ref"
+ BASIC_LDFLAGS_JDK_ONLY="-incremental:no"
+ BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows -base:0x8000000"
+ fi
+
+ # Setup OS-dependent LDFLAGS
+ if test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xgcc; then
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # Assume clang or gcc.
+ # FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
+ OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
+ OS_LDFLAGS_JDK_ONLY="-mmacosx-version-min=$MACOSX_VERSION_MIN"
+ fi
+ fi
+
+ # Setup debug level-dependent LDFLAGS
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ if test x$DEBUG_LEVEL = xrelease; then
+ DEBUGLEVEL_LDFLAGS_JDK_ONLY="$DEBUGLEVEL_LDFLAGS_JDK_ONLY -Wl,-O1"
+ else
+ # mark relocations read only on (fast/slow) debug builds
+ if test "x$HAS_LINKER_RELRO" = "xtrue"; then
+ DEBUGLEVEL_LDFLAGS_JDK_ONLY="$LINKER_RELRO_FLAG"
+ fi
+ fi
+ if test x$DEBUG_LEVEL = xslowdebug; then
+ if test "x$HAS_LINKER_NOW" = "xtrue"; then
+ # do relocations at load
+ DEBUGLEVEL_LDFLAGS="$LINKER_NOW_FLAG"
+ fi
+ fi
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ # We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
+ # Hotspot now overflows its 64K TOC (currently only for debug),
+ # so we build with '-qpic=large -bbigtoc'.
+ if test "x$DEBUG_LEVEL" != xrelease; then
+ DEBUGLEVEL_LDFLAGS_JVM_ONLY="$DEBUGLEVEL_LDFLAGS_JVM_ONLY -bbigtoc"
+ fi
+ fi
+
+ # Setup LDFLAGS for linking executables
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -Wl,--allow-shlib-undefined"
+ fi
+
+ # Export some intermediate variables for compatibility
+ LDFLAGS_CXX_JDK="$BASIC_LDFLAGS_ONLYCXX $BASIC_LDFLAGS_ONLYCXX_JDK_ONLY $DEBUGLEVEL_LDFLAGS_JDK_ONLY"
+ AC_SUBST(LDFLAGS_CXX_JDK)
+ AC_SUBST(LIBJSIG_HASHSTYLE_LDFLAGS)
+ AC_SUBST(LIBJSIG_NOEXECSTACK_LDFLAGS)
+])
+
+################################################################################
+# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
+# conditionals against.
+# $2 - Optional prefix for each variable defined.
+AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
+[
+ # Setup CPU-dependent basic LDFLAGS. These can differ between the target and
+ # build toolchain.
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ if test "x${OPENJDK_$1_CPU}" = xx86; then
+ $1_CPU_LDFLAGS_JVM_ONLY="-march=i586"
+ elif test "x$OPENJDK_$1_CPU" = xarm; then
+ $1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
+ $1_CPU_LDFLAGS="$ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
+ elif test "x$FLAGS_CPU" = xaarch64; then
+ if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
+ $1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
+ fi
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ if test "x${OPENJDK_$1_CPU}" = "xsparcv9"; then
+ $1_CPU_LDFLAGS_JVM_ONLY="-xarch=sparc"
+ fi
+
+ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ if test "x${OPENJDK_$1_CPU}" = "xx86"; then
+ $1_CPU_LDFLAGS="-safeseh"
+ # NOTE: Old build added -machine. Probably not needed.
+ $1_CPU_LDFLAGS_JVM_ONLY="-machine:I386"
+ $1_CPU_EXECUTABLE_LDFLAGS="-stack:327680"
+ else
+ $1_CPU_LDFLAGS_JVM_ONLY="-machine:AMD64"
+ $1_CPU_EXECUTABLE_LDFLAGS="-stack:1048576"
+ fi
+ fi
+
+ # JVM_VARIANT_PATH depends on if this is build or target...
+ if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ $1_LDFLAGS_JDK_LIBPATH="-libpath:${OUTPUTDIR}/support/modules_libs/java.base"
+ else
+ $1_LDFLAGS_JDK_LIBPATH="-L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base \
+ -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/${$1_JVM_VARIANT_PATH}"
+ fi
+
+ # Export variables according to old definitions, prefix with $2 if present.
+ LDFLAGS_JDK_COMMON="$BASIC_LDFLAGS $BASIC_LDFLAGS_JDK_ONLY \
+ $OS_LDFLAGS_JDK_ONLY $DEBUGLEVEL_LDFLAGS_JDK_ONLY ${$2EXTRA_LDFLAGS}"
+ $2LDFLAGS_JDKLIB="$LDFLAGS_JDK_COMMON $BASIC_LDFLAGS_JDK_LIB_ONLY \
+ ${$1_LDFLAGS_JDK_LIBPATH} $SHARED_LIBRARY_FLAGS"
+ $2LDFLAGS_JDKEXE="$LDFLAGS_JDK_COMMON $EXECUTABLE_LDFLAGS \
+ ${$1_CPU_EXECUTABLE_LDFLAGS}"
+
+ $2JVM_LDFLAGS="$BASIC_LDFLAGS $BASIC_LDFLAGS_JVM_ONLY $OS_LDFLAGS_JVM_ONLY \
+ $DEBUGLEVEL_LDFLAGS $DEBUGLEVEL_LDFLAGS_JVM_ONLY $BASIC_LDFLAGS_ONLYCXX \
+ ${$1_CPU_LDFLAGS} ${$1_CPU_LDFLAGS_JVM_ONLY} ${$2EXTRA_LDFLAGS}"
+
+ AC_SUBST($2LDFLAGS_JDKLIB)
+ AC_SUBST($2LDFLAGS_JDKEXE)
+
+ AC_SUBST($2JVM_LDFLAGS)
+])
diff -r c3ec048aad63 -r ece10494786c make/autoconf/flags-other.m4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/autoconf/flags-other.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -0,0 +1,126 @@
+#
+# Copyright (c) 2011, 2018, 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.
+#
+
+################################################################################
+#
+# Setup flags for other tools than C/C++ compiler
+#
+
+AC_DEFUN([FLAGS_SETUP_ARFLAGS],
+[
+ # FIXME: figure out if we should select AR flags depending on OS or toolchain.
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ ARFLAGS="-r -mmacosx-version-min=$MACOSX_VERSION_MIN"
+ elif test "x$OPENJDK_TARGET_OS" = xaix; then
+ ARFLAGS="-X64"
+ elif test "x$OPENJDK_TARGET_OS" = xwindows; then
+ # lib.exe is used as AR to create static libraries.
+ ARFLAGS="-nologo -NODEFAULTLIB:MSVCRT"
+ else
+ ARFLAGS=""
+ fi
+
+ AC_SUBST(ARFLAGS)
+])
+
+AC_DEFUN([FLAGS_SETUP_STRIPFLAGS],
+[
+ ## Setup strip.
+ # FIXME: should this really be per platform, or should it be per toolchain type?
+ # strip is not provided by clang or solstudio; so guessing platform makes most sense.
+ # FIXME: we should really only export STRIPFLAGS from here, not POST_STRIP_CMD.
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ STRIPFLAGS="-g"
+ elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ STRIPFLAGS="-x"
+ elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ STRIPFLAGS="-S"
+ elif test "x$OPENJDK_TARGET_OS" = xaix; then
+ STRIPFLAGS="-X32_64"
+ fi
+
+ AC_SUBST(STRIPFLAGS)
+])
+
+AC_DEFUN([FLAGS_SETUP_RCFLAGS],
+[
+ # On Windows, we need to set RC flags.
+ if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+ RC_FLAGS="-nologo -l0x409"
+ JVM_RCFLAGS="-nologo"
+ if test "x$DEBUG_LEVEL" = xrelease; then
+ RC_FLAGS="$RC_FLAGS -DNDEBUG"
+ JVM_RCFLAGS="$JVM_RCFLAGS -DNDEBUG"
+ fi
+
+ # The version variables used to create RC_FLAGS may be overridden
+ # in a custom configure script, or possibly the command line.
+ # Let those variables be expanded at make time in spec.gmk.
+ # The \$ are escaped to the shell, and the $(...) variables
+ # are evaluated by make.
+ RC_FLAGS="$RC_FLAGS \
+ -D\"JDK_VERSION_STRING=\$(VERSION_STRING)\" \
+ -D\"JDK_COMPANY=\$(COMPANY_NAME)\" \
+ -D\"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
+ -D\"JDK_VER=\$(VERSION_NUMBER)\" \
+ -D\"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
+ -D\"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(VERSION_FEATURE)\" \
+ -D\"JDK_FVER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\""
+
+ JVM_RCFLAGS="$JVM_RCFLAGS \
+ -D\"HS_BUILD_ID=\$(VERSION_STRING)\" \
+ -D\"HS_COMPANY=\$(COMPANY_NAME)\" \
+ -D\"JDK_DOTVER=\$(VERSION_NUMBER_FOUR_POSITIONS)\" \
+ -D\"HS_COPYRIGHT=Copyright $COPYRIGHT_YEAR\" \
+ -D\"HS_NAME=\$(PRODUCT_NAME) \$(VERSION_SHORT)\" \
+ -D\"JDK_VER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\" \
+ -D\"HS_FNAME=jvm.dll\" \
+ -D\"HS_INTERNAL_NAME=jvm\""
+ fi
+ AC_SUBST(RC_FLAGS)
+ AC_SUBST(JVM_RCFLAGS)
+])
+
+################################################################################
+# platform independent
+AC_DEFUN([FLAGS_SETUP_ASFLAGS],
+[
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ JVM_BASIC_ASFLAGS="-x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16"
+ fi
+])
+
+################################################################################
+# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
+# conditionals against.
+# $2 - Optional prefix for each variable defined.
+AC_DEFUN([FLAGS_SETUP_ASFLAGS_CPU_DEP],
+[
+ # Misuse EXTRA_CFLAGS to mimic old behavior
+ $2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS ${$2EXTRA_CFLAGS}"
+
+ AC_SUBST($2JVM_ASFLAGS)
+])
+
diff -r c3ec048aad63 -r ece10494786c make/autoconf/flags.m4
--- a/make/autoconf/flags.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/flags.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -23,6 +23,10 @@
# questions.
#
+m4_include([flags-cflags.m4])
+m4_include([flags-ldflags.m4])
+m4_include([flags-other.m4])
+
################################################################################
#
# Setup ABI profile (for arm)
@@ -94,21 +98,6 @@
AC_MSG_CHECKING([for ABI property name])
AC_MSG_RESULT([$JDK_ARCH_ABI_PROP_NAME])
AC_SUBST(JDK_ARCH_ABI_PROP_NAME)
-
- # Pass these on to the open part of configure as if they were set using
- # --with-extra-c[xx]flags.
- EXTRA_CFLAGS="$EXTRA_CFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
- # Get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
- # FIXME: This should not really be set using extra_cflags.
- if test "x$OPENJDK_TARGET_CPU" = xarm; then
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-psabi"
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -Wno-psabi"
- fi
- # Also add JDK_ARCH_ABI_PROP_NAME define, but only to CFLAGS.
- EXTRA_CFLAGS="$EXTRA_CFLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
- # And pass the architecture flags to the linker as well
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
fi
# When building with an abi profile, the name of that profile is appended on the
@@ -118,19 +107,58 @@
fi
])
+AC_DEFUN([FLAGS_SETUP_MACOSX_VERSION],
+[
+ # Additional macosx handling
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # MACOSX_VERSION_MIN specifies the lowest version of Macosx that the built
+ # binaries should be compatible with, even if compiled on a newer version
+ # of the OS. It currently has a hard coded value. Setting this also limits
+ # exposure to API changes in header files. Bumping this is likely to
+ # require code changes to build.
+ MACOSX_VERSION_MIN=10.7.0
+ MACOSX_VERSION_MIN_NODOTS=${MACOSX_VERSION_MIN//\./}
+
+ AC_SUBST(MACOSX_VERSION_MIN)
+
+ # Setting --with-macosx-version-max= makes it an error to build or
+ # link to macosx APIs that are newer than the given OS version. The expected
+ # format for is either nn.n.n or nn.nn.nn. See /usr/include/AvailabilityMacros.h.
+ AC_ARG_WITH([macosx-version-max], [AS_HELP_STRING([--with-macosx-version-max],
+ [error on use of newer functionality. @<:@macosx@:>@])],
+ [
+ if echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]]\.[[0-9]]\$"; then
+ MACOSX_VERSION_MAX=$with_macosx_version_max
+ elif echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]][[0-9]]\.[[0-9]][[0-9]]\$"; then
+ MACOSX_VERSION_MAX=$with_macosx_version_max
+ elif test "x$with_macosx_version_max" = "xno"; then
+ # Use build system default
+ MACOSX_VERSION_MAX=
+ else
+ AC_MSG_ERROR([osx version format must be nn.n.n or nn.nn.nn])
+ fi
+ ],
+ [MACOSX_VERSION_MAX=]
+ )
+ MACOSX_VERSION_MAX_NODOTS=${MACOSX_VERSION_MAX//\./}
+
+ AC_SUBST(MACOSX_VERSION_MAX)
+ fi
+])
+
# Reset the global CFLAGS/LDFLAGS variables and initialize them with the
# corresponding configure arguments instead
AC_DEFUN_ONCE([FLAGS_SETUP_USER_SUPPLIED_FLAGS],
[
- if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
+ if test "x$CFLAGS" != "x"; then
AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
fi
- if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
+ if test "x$CXXFLAGS" != "x"; then
AC_MSG_WARN([Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags])
fi
- if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
+ if test "x$LDFLAGS" != "x"; then
AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
fi
@@ -143,20 +171,9 @@
AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
[extra flags to be used when linking jdk])])
- EXTRA_CFLAGS="$with_extra_cflags"
- EXTRA_CXXFLAGS="$with_extra_cxxflags"
- EXTRA_LDFLAGS="$with_extra_ldflags"
-
- AC_SUBST(EXTRA_CFLAGS)
- AC_SUBST(EXTRA_CXXFLAGS)
- AC_SUBST(EXTRA_LDFLAGS)
-
- # The global CFLAGS and LDLAGS variables are used by configure tests and
- # should include the extra parameters
- CFLAGS="$EXTRA_CFLAGS"
- CXXFLAGS="$EXTRA_CXXFLAGS"
- LDFLAGS="$EXTRA_LDFLAGS"
- CPPFLAGS=""
+ USER_CFLAGS="$with_extra_cflags"
+ USER_CXXFLAGS="$with_extra_cxxflags"
+ USER_LDFLAGS="$with_extra_ldflags"
])
# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
@@ -193,11 +210,6 @@
$1SYSROOT_CFLAGS="-isysroot [$]$1SYSROOT"
$1SYSROOT_LDFLAGS="-isysroot [$]$1SYSROOT"
fi
- # The global CFLAGS and LDFLAGS variables need these for configure to function
- $1CFLAGS="[$]$1CFLAGS [$]$1SYSROOT_CFLAGS"
- $1CPPFLAGS="[$]$1CPPFLAGS [$]$1SYSROOT_CFLAGS"
- $1CXXFLAGS="[$]$1CXXFLAGS [$]$1SYSROOT_CFLAGS"
- $1LDFLAGS="[$]$1LDFLAGS [$]$1SYSROOT_LDFLAGS"
fi
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
@@ -214,7 +226,53 @@
AC_SUBST($1SYSROOT_LDFLAGS)
])
-AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
+AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
+[
+ # We should always include user supplied flags
+ FLAGS_SETUP_USER_SUPPLIED_FLAGS
+ # The sysroot flags are needed for configure to be able to run the compilers
+ FLAGS_SETUP_SYSROOT_FLAGS
+
+ if test "x$TOOLCHAIN_TYPE" = xxlc; then
+ MACHINE_FLAG="-q${OPENJDK_TARGET_CPU_BITS}"
+ elif test "x$TOOLCHAIN_TYPE" != xmicrosoft; then
+ if test "x$OPENJDK_TARGET_CPU" != xaarch64 &&
+ test "x$OPENJDK_TARGET_CPU" != xarm; then
+ MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+ fi
+ fi
+
+ # FIXME: global flags are not used yet...
+ # The "global" flags will *always* be set. Without them, it is not possible to
+ # get a working compilation.
+ GLOBAL_CFLAGS="$MACHINE_FLAG $SYSROOT_CFLAGS $USER_CFLAGS"
+ GLOBAL_CXXFLAGS="$MACHINE_FLAG $SYSROOT_CFLAGS $USER_CXXFLAGS"
+ GLOBAL_LDFLAGS="$MACHINE_FLAG $SYSROOT_LDFLAGS $USER_LDFLAGS"
+ # FIXME: Don't really know how to do with this, but this was the old behavior
+ GLOBAL_CPPFLAGS="$SYSROOT_CFLAGS"
+ AC_SUBST(GLOBAL_CFLAGS)
+ AC_SUBST(GLOBAL_CXXFLAGS)
+ AC_SUBST(GLOBAL_LDFLAGS)
+ AC_SUBST(GLOBAL_CPPFLAGS)
+
+ # FIXME: For compatilibity, export this as EXTRA_CFLAGS for now.
+ EXTRA_CFLAGS="$MACHINE_FLAG $USER_CFLAGS"
+ EXTRA_CXXFLAGS="$MACHINE_FLAG $USER_CXXFLAGS"
+ EXTRA_LDFLAGS="$MACHINE_FLAG $USER_LDFLAGS"
+
+ AC_SUBST(EXTRA_CFLAGS)
+ AC_SUBST(EXTRA_CXXFLAGS)
+ AC_SUBST(EXTRA_LDFLAGS)
+
+ # For autoconf testing to work, the global flags must also be stored in the
+ # "unnamed" CFLAGS etc.
+ CFLAGS="$GLOBAL_CFLAGS"
+ CXXFLAGS="$GLOBAL_CXXFLAGS"
+ LDFLAGS="$GLOBAL_LDFLAGS"
+ CPPFLAGS="$GLOBAL_CPPFLAGS"
+])
+
+AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
[
# 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
@@ -249,38 +307,17 @@
$RM command.file
fi
fi
+
AC_SUBST(COMPILER_TARGET_BITS_FLAG)
AC_SUBST(COMPILER_COMMAND_FILE_FLAG)
AC_SUBST(COMPILER_BINDCMD_FILE_FLAG)
- # FIXME: figure out if we should select AR flags depending on OS or toolchain.
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- ARFLAGS="-r"
- elif test "x$OPENJDK_TARGET_OS" = xaix; then
- ARFLAGS="-X64"
- elif test "x$OPENJDK_TARGET_OS" = xwindows; then
- # lib.exe is used as AR to create static libraries.
- ARFLAGS="-nologo -NODEFAULTLIB:MSVCRT"
- else
- ARFLAGS=""
- fi
- AC_SUBST(ARFLAGS)
-
- ## Setup strip.
- # FIXME: should this really be per platform, or should it be per toolchain type?
- # strip is not provided by clang or solstudio; so guessing platform makes most sense.
- # FIXME: we should really only export STRIPFLAGS from here, not POST_STRIP_CMD.
- if test "x$OPENJDK_TARGET_OS" = xlinux; then
- STRIPFLAGS="-g"
- elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
- STRIPFLAGS="-x"
- elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
- STRIPFLAGS="-S"
- elif test "x$OPENJDK_TARGET_OS" = xaix; then
- STRIPFLAGS="-X32_64"
- fi
-
- AC_SUBST(STRIPFLAGS)
+ # Check that the compiler supports -mX (or -qX on AIX) flags
+ # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}],
+ IF_TRUE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
+ IF_FALSE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
+ AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
CC_OUT_OPTION=-Fo
@@ -303,216 +340,6 @@
AC_SUBST(LD_OUT_OPTION)
AC_SUBST(AR_OUT_OPTION)
- # On Windows, we need to set RC flags.
- if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- RC_FLAGS="-nologo -l0x409"
- JVM_RCFLAGS="-nologo"
- if test "x$DEBUG_LEVEL" = xrelease; then
- RC_FLAGS="$RC_FLAGS -DNDEBUG"
- JVM_RCFLAGS="$JVM_RCFLAGS -DNDEBUG"
- fi
-
- # The version variables used to create RC_FLAGS may be overridden
- # in a custom configure script, or possibly the command line.
- # Let those variables be expanded at make time in spec.gmk.
- # The \$ are escaped to the shell, and the $(...) variables
- # are evaluated by make.
- RC_FLAGS="$RC_FLAGS \
- -D\"JDK_VERSION_STRING=\$(VERSION_STRING)\" \
- -D\"JDK_COMPANY=\$(COMPANY_NAME)\" \
- -D\"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
- -D\"JDK_VER=\$(VERSION_NUMBER)\" \
- -D\"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
- -D\"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(VERSION_FEATURE)\" \
- -D\"JDK_FVER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\""
-
- JVM_RCFLAGS="$JVM_RCFLAGS \
- -D\"HS_BUILD_ID=\$(VERSION_STRING)\" \
- -D\"HS_COMPANY=\$(COMPANY_NAME)\" \
- -D\"JDK_DOTVER=\$(VERSION_NUMBER_FOUR_POSITIONS)\" \
- -D\"HS_COPYRIGHT=Copyright $COPYRIGHT_YEAR\" \
- -D\"HS_NAME=\$(PRODUCT_NAME) \$(VERSION_SHORT)\" \
- -D\"JDK_VER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\" \
- -D\"HS_FNAME=jvm.dll\" \
- -D\"HS_INTERNAL_NAME=jvm\""
- fi
- AC_SUBST(RC_FLAGS)
- AC_SUBST(JVM_RCFLAGS)
-
- if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- # silence copyright notice and other headers.
- COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
- fi
-])
-
-AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
-[
- ###############################################################################
- #
- # How to compile shared libraries.
- #
-
- if test "x$TOOLCHAIN_TYPE" = xgcc; then
- PICFLAG="-fPIC"
- C_FLAG_REORDER=''
- CXX_FLAG_REORDER=''
-
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- # Linking is different on MacOSX
- if test "x$STATIC_BUILD" = xtrue; then
- SHARED_LIBRARY_FLAGS ='-undefined dynamic_lookup'
- else
- SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
- JVM_CFLAGS="$JVM_CFLAGS $PICFLAG"
- fi
- SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
- SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
- SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
- SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
- else
- # Default works for linux, might work on other platforms as well.
- SHARED_LIBRARY_FLAGS='-shared'
- SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
- SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
- SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
- SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
- fi
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- C_FLAG_REORDER=''
- CXX_FLAG_REORDER=''
-
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- # Linking is different on MacOSX
- PICFLAG=''
- SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
- SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
- SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
- SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
- SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
-
- if test "x$STATIC_BUILD" = xfalse; then
- JVM_CFLAGS="$JVM_CFLAGS -fPIC"
- fi
- else
- # Default works for linux, might work on other platforms as well.
- PICFLAG='-fPIC'
- SHARED_LIBRARY_FLAGS='-shared'
- SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
- SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
- SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
-
- # arm specific settings
- if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
- # '-Wl,-z,origin' isn't used on arm.
- SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
- else
- SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
- fi
-
- fi
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- if test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
- PICFLAG="-xcode=pic32"
- else
- PICFLAG="-KPIC"
- fi
- C_FLAG_REORDER='-xF'
- CXX_FLAG_REORDER='-xF'
- SHARED_LIBRARY_FLAGS="-G"
- SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1'
- SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
- SET_SHARED_LIBRARY_NAME='-h [$]1'
- SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
- elif test "x$TOOLCHAIN_TYPE" = xxlc; then
- # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
- # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
- # will have to patch this single instruction with a call to some out-of-order code which
- # does the load from the TOC. This is of course slow. But in that case we also would have
- # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
- # With 'qpic=large' the compiler will by default generate a two-instruction sequence which
- # can be patched directly by the linker and does not require a jump to out-of-order code.
- # Another alternative instead of using 'qpic=large -bbigtoc' may be to use '-qminimaltoc'
- # instead. This creates a distinct TOC for every compilation unit (and thus requires two
- # loads for accessing a global variable). But there are rumors that this may be seen as a
- # 'performance feature' because of improved code locality of the symbols used in a
- # compilation unit.
- PICFLAG="-qpic"
- JVM_CFLAGS="$JVM_CFLAGS $PICFLAG"
- C_FLAG_REORDER=''
- CXX_FLAG_REORDER=''
- SHARED_LIBRARY_FLAGS="-qmkshrobj -bM:SRE -bnoentry"
- SET_EXECUTABLE_ORIGIN=""
- SET_SHARED_LIBRARY_ORIGIN=''
- SET_SHARED_LIBRARY_NAME=''
- SET_SHARED_LIBRARY_MAPFILE=''
- elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- PICFLAG=""
- C_FLAG_REORDER=''
- CXX_FLAG_REORDER=''
- SHARED_LIBRARY_FLAGS="-dll"
- SET_EXECUTABLE_ORIGIN=''
- SET_SHARED_LIBRARY_ORIGIN=''
- SET_SHARED_LIBRARY_NAME=''
- SET_SHARED_LIBRARY_MAPFILE='-def:[$]1'
- fi
-
- AC_SUBST(C_FLAG_REORDER)
- AC_SUBST(CXX_FLAG_REORDER)
- AC_SUBST(SET_EXECUTABLE_ORIGIN)
- AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
- AC_SUBST(SET_SHARED_LIBRARY_NAME)
- AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
- AC_SUBST(SHARED_LIBRARY_FLAGS)
-
- # The (cross) compiler is now configured, we can now test capabilities
- # of the target platform.
-])
-
-# Documentation on common flags used for solstudio in HIGHEST.
-#
-# WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
-# done with care, there are some assumptions below that need to
-# be understood about the use of pointers, and IEEE behavior.
-#
-# -fns: Use non-standard floating point mode (not IEEE 754)
-# -fsimple: Do some simplification of floating point arithmetic (not IEEE 754)
-# -fsingle: Use single precision floating point with 'float'
-# -xalias_level=basic: Assume memory references via basic pointer types do not alias
-# (Source with excessing pointer casting and data access with mixed
-# pointer types are not recommended)
-# -xbuiltin=%all: Use intrinsic or inline versions for math/std functions
-# (If you expect perfect errno behavior, do not use this)
-# -xdepend: Loop data dependency optimizations (need -xO3 or higher)
-# -xrestrict: Pointer parameters to functions do not overlap
-# (Similar to -xalias_level=basic usage, but less obvious sometimes.
-# If you pass in multiple pointers to the same data, do not use this)
-# -xlibmil: Inline some library routines
-# (If you expect perfect errno behavior, do not use this)
-# -xlibmopt: Use optimized math routines (CURRENTLY DISABLED)
-# (If you expect perfect errno behavior, do not use this)
-# Can cause undefined external on Solaris 8 X86 on __sincos, removing for now
-
- # FIXME: this will never happen since sparc != sparcv9, ie 32 bit, which we don't build anymore.
- # Bug?
- #if test "x$OPENJDK_TARGET_CPU" = xsparc; then
- # CFLAGS_JDK="${CFLAGS_JDK} -xmemalign=4s"
- # CXXFLAGS_JDK="${CXXFLAGS_JDK} -xmemalign=4s"
- #fi
-
-AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
-[
-
- ###############################################################################
- #
- # Setup the opt flags for different compilers
- # and different operating systems.
- #
-
- # FIXME: this was indirectly the old default, but just inherited.
- # if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- # C_FLAG_DEPS="-MMD -MF"
- # fi
-
# Generate make dependency files
if test "x$TOOLCHAIN_TYPE" = xgcc; then
C_FLAG_DEPS="-MMD -MF"
@@ -526,887 +353,44 @@
CXX_FLAG_DEPS="$C_FLAG_DEPS"
AC_SUBST(C_FLAG_DEPS)
AC_SUBST(CXX_FLAG_DEPS)
-
- # Debug symbols
- if test "x$TOOLCHAIN_TYPE" = xgcc; then
- if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
- # reduce from default "-g2" option to save space
- CFLAGS_DEBUG_SYMBOLS="-g1"
- CXXFLAGS_DEBUG_SYMBOLS="-g1"
- else
- CFLAGS_DEBUG_SYMBOLS="-g"
- CXXFLAGS_DEBUG_SYMBOLS="-g"
- fi
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- CFLAGS_DEBUG_SYMBOLS="-g"
- CXXFLAGS_DEBUG_SYMBOLS="-g"
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- CFLAGS_DEBUG_SYMBOLS="-g -xs"
- # -g0 enables debug symbols without disabling inlining.
- CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
- elif test "x$TOOLCHAIN_TYPE" = xxlc; then
- CFLAGS_DEBUG_SYMBOLS="-g"
- CXXFLAGS_DEBUG_SYMBOLS="-g"
- elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- CFLAGS_DEBUG_SYMBOLS="-Zi"
- CXXFLAGS_DEBUG_SYMBOLS="-Zi"
- fi
- AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
- AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
-
- # Debug symbols for JVM_CFLAGS
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -xs"
- if test "x$DEBUG_LEVEL" = xslowdebug; then
- JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g"
- else
- # -g0 does not disable inlining, which -g does.
- JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g0"
- fi
- elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -Z7 -d2Zi+"
- else
- JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g"
- fi
- AC_SUBST(JVM_CFLAGS_SYMBOLS)
-
- # bounds, memory and behavior checking options
- if test "x$TOOLCHAIN_TYPE" = xgcc; then
- case $DEBUG_LEVEL in
- release )
- # no adjustment
- ;;
- fastdebug )
- # no adjustment
- ;;
- slowdebug )
- # FIXME: By adding this to C(XX)FLAGS_DEBUG_OPTIONS/JVM_CFLAGS_SYMBOLS it
- # get's added conditionally on whether we produce debug symbols or not.
- # This is most likely not really correct.
-
- # Add runtime stack smashing and undefined behavior checks.
- # Not all versions of gcc support -fstack-protector
- STACK_PROTECTOR_CFLAG="-fstack-protector-all"
- FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG -Werror], IF_FALSE: [STACK_PROTECTOR_CFLAG=""])
-
- CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
- CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
- if test "x$STACK_PROTECTOR_CFLAG" != x; then
- JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS $STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
- fi
- ;;
- esac
- fi
-
- if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- if test "x$DEBUG_LEVEL" != xrelease; then
- if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
- JVM_CFLAGS="$JVM_CFLAGS -homeparams"
- fi
- fi
- fi
-
- # Optimization levels
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
-
- if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
- # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global?
- C_O_FLAG_HIGHEST_JVM="-xO4"
- C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr"
- C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
- C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
- C_O_FLAG_DEBUG="-xregs=no%frameptr"
- C_O_FLAG_DEBUG_JVM=""
- C_O_FLAG_NONE="-xregs=no%frameptr"
- CXX_O_FLAG_HIGHEST_JVM="-xO4"
- CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr"
- CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr"
- CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
- CXX_O_FLAG_DEBUG="-xregs=no%frameptr"
- CXX_O_FLAG_DEBUG_JVM=""
- CXX_O_FLAG_NONE="-xregs=no%frameptr"
- if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
- C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
- CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium"
- fi
- elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
- C_O_FLAG_HIGHEST_JVM="-xO4"
- C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra"
- C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
- C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
- C_O_FLAG_DEBUG=""
- C_O_FLAG_DEBUG_JVM=""
- C_O_FLAG_NONE=""
- CXX_O_FLAG_HIGHEST_JVM="-xO4"
- CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
- CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
- CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
- CXX_O_FLAG_DEBUG=""
- CXX_O_FLAG_DEBUG_JVM=""
- CXX_O_FLAG_NONE=""
- fi
- else
- # The remaining toolchains share opt flags between CC and CXX;
- # setup for C and duplicate afterwards.
- if test "x$TOOLCHAIN_TYPE" = xgcc; then
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- # On MacOSX we optimize for size, something
- # we should do for all platforms?
- C_O_FLAG_HIGHEST_JVM="-Os"
- C_O_FLAG_HIGHEST="-Os"
- C_O_FLAG_HI="-Os"
- C_O_FLAG_NORM="-Os"
- C_O_FLAG_SIZE="-Os"
- else
- C_O_FLAG_HIGHEST_JVM="-O3"
- C_O_FLAG_HIGHEST="-O3"
- C_O_FLAG_HI="-O3"
- C_O_FLAG_NORM="-O2"
- C_O_FLAG_SIZE="-Os"
- fi
- C_O_FLAG_DEBUG="-O0"
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- C_O_FLAG_DEBUG_JVM=""
- elif test "x$OPENJDK_TARGET_OS" = xlinux; then
- C_O_FLAG_DEBUG_JVM="-O0"
- fi
- C_O_FLAG_NONE="-O0"
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- # On MacOSX we optimize for size, something
- # we should do for all platforms?
- C_O_FLAG_HIGHEST_JVM="-Os"
- C_O_FLAG_HIGHEST="-Os"
- C_O_FLAG_HI="-Os"
- C_O_FLAG_NORM="-Os"
- C_O_FLAG_SIZE="-Os"
- else
- C_O_FLAG_HIGHEST_JVM="-O3"
- C_O_FLAG_HIGHEST="-O3"
- C_O_FLAG_HI="-O3"
- C_O_FLAG_NORM="-O2"
- C_O_FLAG_SIZE="-Os"
- fi
- C_O_FLAG_DEBUG="-O0"
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- C_O_FLAG_DEBUG_JVM=""
- elif test "x$OPENJDK_TARGET_OS" = xlinux; then
- C_O_FLAG_DEBUG_JVM="-O0"
- fi
- C_O_FLAG_NONE="-O0"
- elif test "x$TOOLCHAIN_TYPE" = xxlc; then
- C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue"
- C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue"
- C_O_FLAG_HI="-O3 -qinline -qinlglue"
- C_O_FLAG_NORM="-O2"
- C_O_FLAG_DEBUG="-qnoopt"
- # FIXME: Value below not verified.
- C_O_FLAG_DEBUG_JVM=""
- C_O_FLAG_NONE="-qnoopt"
- elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- C_O_FLAG_HIGHEST_JVM="-O2 -Oy-"
- C_O_FLAG_HIGHEST="-O2"
- C_O_FLAG_HI="-O1"
- C_O_FLAG_NORM="-O1"
- C_O_FLAG_DEBUG="-Od"
- C_O_FLAG_DEBUG_JVM=""
- C_O_FLAG_NONE="-Od"
- C_O_FLAG_SIZE="-Os"
- fi
- CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM"
- CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
- CXX_O_FLAG_HI="$C_O_FLAG_HI"
- CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
- CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG"
- CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM"
- CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
- CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE"
- fi
-
- # Adjust optimization flags according to debug level.
- case $DEBUG_LEVEL in
- release )
- # no adjustment
- ;;
- fastdebug )
- # Not quite so much optimization
- C_O_FLAG_HI="$C_O_FLAG_NORM"
- CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
- ;;
- slowdebug )
- # Disable optimization
- C_O_FLAG_HIGHEST_JVM="$C_O_FLAG_DEBUG_JVM"
- C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG"
- C_O_FLAG_HI="$C_O_FLAG_DEBUG"
- C_O_FLAG_NORM="$C_O_FLAG_DEBUG"
- C_O_FLAG_SIZE="$C_O_FLAG_DEBUG"
- CXX_O_FLAG_HIGHEST_JVM="$CXX_O_FLAG_DEBUG_JVM"
- CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG"
- CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG"
- CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG"
- CXX_O_FLAG_SIZE="$CXX_O_FLAG_DEBUG"
- ;;
- esac
-
- AC_SUBST(C_O_FLAG_HIGHEST_JVM)
- AC_SUBST(C_O_FLAG_HIGHEST)
- AC_SUBST(C_O_FLAG_HI)
- AC_SUBST(C_O_FLAG_NORM)
- AC_SUBST(C_O_FLAG_DEBUG)
- AC_SUBST(C_O_FLAG_NONE)
- AC_SUBST(C_O_FLAG_SIZE)
- AC_SUBST(CXX_O_FLAG_HIGHEST_JVM)
- AC_SUBST(CXX_O_FLAG_HIGHEST)
- AC_SUBST(CXX_O_FLAG_HI)
- AC_SUBST(CXX_O_FLAG_NORM)
- AC_SUBST(CXX_O_FLAG_DEBUG)
- AC_SUBST(CXX_O_FLAG_NONE)
- AC_SUBST(CXX_O_FLAG_SIZE)
])
-
-AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
+AC_DEFUN_ONCE([FLAGS_POST_TOOLCHAIN],
[
-
- FLAGS_SETUP_ABI_PROFILE
-
- # Optional POSIX functionality needed by the JVM
- #
- # Check if clock_gettime is available and in which library. This indicates
- # availability of CLOCK_MONOTONIC for hotspot. But we don't need to link, so
- # don't let it update LIBS.
- save_LIBS="$LIBS"
- AC_SEARCH_LIBS(clock_gettime, rt, [HAS_CLOCK_GETTIME=true], [])
- if test "x$LIBS" = "x-lrt "; then
- CLOCK_GETTIME_IN_LIBRT=true
- fi
- LIBS="$save_LIBS"
+ FLAGS_SETUP_TOOLCHAIN_CONTROL
- FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER([TARGET])
- FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER([BUILD], [OPENJDK_BUILD_])
-
- # Tests are only ever compiled for TARGET
- # Flags for compiling test libraries
- CFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
- CXXFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA"
-
- # Flags for compiling test executables
- CFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
- CXXFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
-
- AC_SUBST(CFLAGS_TESTLIB)
- AC_SUBST(CFLAGS_TESTEXE)
- AC_SUBST(CXXFLAGS_TESTLIB)
- AC_SUBST(CXXFLAGS_TESTEXE)
-
- LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
- LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE $JAVA_BASE_LDFLAGS"
-
- AC_SUBST(LDFLAGS_TESTLIB)
- AC_SUBST(LDFLAGS_TESTEXE)
+ if test "x$BUILD_SYSROOT" != x; then
+ FLAGS_SETUP_SYSROOT_FLAGS([BUILD_])
+ else
+ BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
+ BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
+ fi
+ AC_SUBST(BUILD_SYSROOT_CFLAGS)
+ AC_SUBST(BUILD_SYSROOT_LDFLAGS)
])
-################################################################################
-# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
-# conditionals against.
-# $2 - Optional prefix for each variable defined.
-AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER],
+AC_DEFUN([FLAGS_SETUP_FLAGS],
[
- # Special extras...
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- if test "x$OPENJDK_$1_CPU_ARCH" = "xsparc"; then
- $2CFLAGS_JDKLIB_EXTRA="${$2CFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
- $2CXXFLAGS_JDKLIB_EXTRA="${$2CXXFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
- fi
- $2CFLAGS_JDKLIB_EXTRA="${$2CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
- $2CXXFLAGS_JDKLIB_EXTRA="${$2CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
- elif test "x$TOOLCHAIN_TYPE" = xxlc; then
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
- $2CXXFLAGS_JDK="${$2CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
- elif test "x$TOOLCHAIN_TYPE" = xgcc; then
- $2CXXSTD_CXXFLAG="-std=gnu++98"
- FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [[$]$2CXXSTD_CXXFLAG -Werror],
- IF_FALSE: [$2CXXSTD_CXXFLAG=""])
- $2CXXFLAGS_JDK="${$2CXXFLAGS_JDK} ${$2CXXSTD_CXXFLAG}"
- $2JVM_CFLAGS="${$2JVM_CFLAGS} ${$2CXXSTD_CXXFLAG}"
- AC_SUBST($2CXXSTD_CXXFLAG)
- fi
- if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -D__solaris__"
- $2CXXFLAGS_JDK="${$2CXXFLAGS_JDK} -D__solaris__"
- fi
-
- $2CFLAGS_JDK="${$2CFLAGS_JDK} ${$2EXTRA_CFLAGS}"
- $2CXXFLAGS_JDK="${$2CXXFLAGS_JDK} ${$2EXTRA_CXXFLAGS}"
- $2LDFLAGS_JDK="${$2LDFLAGS_JDK} ${$2EXTRA_LDFLAGS}"
-
- ###############################################################################
- #
- # Now setup the CFLAGS and LDFLAGS for the JDK build.
- # Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
- #
-
- # Setup compiler/platform specific flags into
- # $2CFLAGS_JDK - C Compiler flags
- # $2CXXFLAGS_JDK - C++ Compiler flags
- # $2COMMON_CCXXFLAGS_JDK - common to C and C++
- if test "x$TOOLCHAIN_TYPE" = xgcc; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_GNU_SOURCE"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_REENTRANT"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -fcheck-new"
- if test "x$OPENJDK_$1_CPU" = xx86; then
- # Force compatibility with i586 on 32 bit intel platforms.
- $2COMMON_CCXXFLAGS="${$2COMMON_CCXXFLAGS} -march=i586"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -march=i586"
- fi
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS [$]$2COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
- -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
- case $OPENJDK_$1_CPU_ARCH in
- arm )
- # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
- $2COMMON_CCXXFLAGS_JDK="${$2COMMON_CCXXFLAGS_JDK} -fsigned-char"
- ;;
- ppc )
- # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
- ;;
- s390 )
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
- ;;
- * )
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
- ;;
- esac
- TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($2))
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_GNU_SOURCE"
-
- # Restrict the debug information created by Clang to avoid
- # too big object files and speed the build up a little bit
- # (see http://llvm.org/bugs/show_bug.cgi?id=7554)
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -flimit-debug-info"
- if test "x$OPENJDK_$1_OS" = xlinux; then
- if test "x$OPENJDK_$1_CPU" = xx86; then
- # Force compatibility with i586 on 32 bit intel platforms.
- $2COMMON_CCXXFLAGS="${$2COMMON_CCXXFLAGS} -march=i586"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -march=i586"
- fi
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-sometimes-uninitialized"
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS [$]$2COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
- -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
- case $OPENJDK_$1_CPU_ARCH in
- ppc )
- # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
- ;;
- * )
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
- $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing"
- ;;
- esac
- fi
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DSPARC_WORKS"
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS [$]$2COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
- if test "x$OPENJDK_$1_CPU_ARCH" = xx86; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_$1_CPU_LEGACY_LIB"
- fi
-
- $2CFLAGS_JDK="[$]$2CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa -v -mt -W0,-noglobal"
- $2CXXFLAGS_JDK="[$]$2CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib"
- elif test "x$TOOLCHAIN_TYPE" = xxlc; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_REENTRANT"
- $2CFLAGS_JDK="[$]$2CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
- $2CXXFLAGS_JDK="[$]$2CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
- elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS [$]$2COMMON_CCXXFLAGS_JDK \
- -MD -Zc:wchar_t- -W3 -wd4800 \
- -DWIN32_LEAN_AND_MEAN \
- -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
- -DWIN32 -DIAL"
- if test "x$OPENJDK_$1_CPU" = xx86_64; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64"
- else
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86"
- fi
- # If building with Visual Studio 2010, we can still use _STATIC_CPPLIB to
- # avoid bundling msvcpNNN.dll. Doesn't work with newer versions of visual
- # studio.
- if test "x$TOOLCHAIN_VERSION" = "x2010"; then
- STATIC_CPPLIB_FLAGS="-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB"
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK $STATIC_CPPLIB_FLAGS"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS $STATIC_CPPLIB_FLAGS"
- fi
- fi
-
- ###############################################################################
+ FLAGS_SETUP_MACOSX_VERSION
+ FLAGS_SETUP_ABI_PROFILE
- # Adjust flags according to debug level.
- case $DEBUG_LEVEL in
- fastdebug | slowdebug )
- $2CFLAGS_JDK="[$]$2CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS $CFLAGS_DEBUG_OPTIONS"
- $2CXXFLAGS_JDK="[$]$2CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS $CXXFLAGS_DEBUG_OPTIONS"
- ;;
- release )
- ;;
- * )
- AC_MSG_ERROR([Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL])
- ;;
- esac
-
- # Set some common defines. These works for all compilers, but assume
- # -D is universally accepted.
-
- # Setup endianness
- if test "x$OPENJDK_$1_CPU_ENDIAN" = xlittle; then
- # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
- # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
- # (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h).
- # Note: -Dmacro is the same as #define macro 1
- # -Dmacro= is the same as #define macro
- if test "x$OPENJDK_$1_OS" = xsolaris; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
- else
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
- fi
- else
- # Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
- # are defined in the system?
- if test "x$OPENJDK_$1_OS" = xsolaris; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN="
- else
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
- fi
- fi
-
- # Always enable optional macros for VM.
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D__STDC_FORMAT_MACROS"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D__STDC_LIMIT_MACROS"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D__STDC_CONSTANT_MACROS"
-
- # Setup target OS define. Use OS target name but in upper case.
- OPENJDK_$1_OS_UPPERCASE=`$ECHO $OPENJDK_$1_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D$OPENJDK_$1_OS_UPPERCASE"
-
- # Setup target CPU
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \
- $OPENJDK_$1_ADD_LP64 \
- -DARCH='\"$OPENJDK_$1_CPU_LEGACY\"' -D$OPENJDK_$1_CPU_LEGACY"
-
- # Setup debug/release defines
- if test "x$DEBUG_LEVEL" = xrelease; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -DNDEBUG"
- if test "x$OPENJDK_$1_OS" = xsolaris; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -DTRIMMED"
- fi
- else
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -DDEBUG"
- fi
-
- # Optional POSIX functionality needed by the VM
-
- if test "x$HAS_CLOCK_GETTIME" = "xtrue"; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DSUPPORTS_CLOCK_MONOTONIC"
- if test "x$CLOCK_GETTIME_IN_LIBRT" = "xtrue"; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DNEEDS_LIBRT"
- fi
- fi
-
-
- # Set some additional per-OS defines.
- if test "x$OPENJDK_$1_OS" = xlinux; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DLINUX"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -pipe $PICFLAG -fno-rtti -fno-exceptions \
- -fvisibility=hidden -fno-strict-aliasing -fno-omit-frame-pointer"
- elif test "x$OPENJDK_$1_OS" = xsolaris; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DSOLARIS"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -template=no%extdef -features=no%split_init \
- -D_Crun_inline_placement -library=stlport4 $PICFLAG -mt -features=no%except"
- elif test "x$OPENJDK_$1_OS" = xmacosx; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_ALLBSD_SOURCE"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -fno-rtti -fno-exceptions -fvisibility=hidden \
- -mno-omit-leaf-frame-pointer -mstack-alignment=16 -pipe -fno-strict-aliasing \
- -fno-omit-frame-pointer"
- elif test "x$OPENJDK_$1_OS" = xaix; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DAIX"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -qtune=balanced \
- -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
- -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
- # We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
- # Hotspot now overflows its 64K TOC (currently only for debug),
- # so for debug we build with '-qpic=large -bbigtoc'.
- if test "x$DEBUG_LEVEL" = xslowdebug || test "x$DEBUG_LEVEL" = xfastdebug; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -qpic=large"
- fi
- elif test "x$OPENJDK_$1_OS" = xbsd; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE"
- elif test "x$OPENJDK_$1_OS" = xwindows; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_WINDOWS -DWIN32 -D_JNI_IMPLEMENTATION_"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -nologo -W3 -MD -MP"
- fi
-
- # Set some additional per-CPU defines.
- if test "x$OPENJDK_$1_OS-$OPENJDK_$1_CPU" = xwindows-x86; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -arch:IA32"
- elif test "x$OPENJDK_$1_OS-$OPENJDK_$1_CPU" = xsolaris-sparcv9; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -xarch=sparc"
- elif test "x$OPENJDK_$1_CPU" = xppc64; then
- if test "x$OPENJDK_$1_OS" = xlinux; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
- # fixes `relocation truncated to fit' error for gcc 4.1.
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -mminimal-toc"
- # Use ppc64 instructions, but schedule for power5
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -mcpu=powerpc64 -mtune=power5"
- elif test "x$OPENJDK_$1_OS" = xaix; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -qarch=ppc64"
- fi
- elif test "x$OPENJDK_$1_CPU" = xppc64le; then
- if test "x$OPENJDK_$1_OS" = xlinux; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
- # Little endian machine uses ELFv2 ABI.
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DABI_ELFv2"
- # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -mcpu=power8 -mtune=power8"
- fi
- elif test "x$OPENJDK_$1_CPU" = xs390x; then
- if test "x$OPENJDK_$1_OS" = xlinux; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -mbackchain -march=z10"
- fi
- fi
-
- if test "x$OPENJDK_$1_CPU_ENDIAN" = xlittle; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -DVM_LITTLE_ENDIAN"
- fi
-
- if test "x$OPENJDK_$1_CPU_BITS" = x64; then
- if test "x$OPENJDK_$1_OS" != xsolaris && test "x$OPENJDK_$1_OS" != xaix; then
- # Solaris does not have _LP64=1 in the old build.
- # xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_LP64=1"
- fi
- fi
-
- # Set $2JVM_CFLAGS warning handling
- if test "x$OPENJDK_$1_OS" = xlinux; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wpointer-arith -Wsign-compare -Wunused-function \
- -Wunused-value -Woverloaded-virtual"
+ FLAGS_SETUP_SHARED_LIBS
+ FLAGS_SETUP_DEBUG_SYMBOLS
+ FLAGS_SETUP_WARNINGS
+ FLAGS_SETUP_QUALITY_CHECKS
+ FLAGS_SETUP_OPTIMIZATION
- if test "x$TOOLCHAIN_TYPE" = xgcc; then
- TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: [4.8], PREFIX: $2,
- IF_AT_LEAST: [
- # These flags either do not work or give spurious warnings prior to gcc 4.8.
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-format-zero-length -Wtype-limits -Wuninitialized"
- ]
- )
- fi
- if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
- # Non-zero builds have stricter warnings
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wreturn-type -Wundef -Wformat=2"
- else
- if test "x$TOOLCHAIN_TYPE" = xclang; then
- # Some versions of llvm do not like -Wundef
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-undef"
- fi
- fi
- elif test "x$OPENJDK_$1_OS" = xmacosx; then
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS -Wno-deprecated -Wpointer-arith \
- -Wsign-compare -Wundef -Wunused-function -Wformat=2"
- fi
-
- # Additional macosx handling
- if test "x$OPENJDK_$1_OS" = xmacosx; then
- # MACOSX_VERSION_MIN specifies the lowest version of Macosx that the built
- # binaries should be compatible with, even if compiled on a newer version
- # of the OS. It currently has a hard coded value. Setting this also limits
- # exposure to API changes in header files. Bumping this is likely to
- # require code changes to build.
- MACOSX_VERSION_MIN=10.7.0
- AC_SUBST(MACOSX_VERSION_MIN)
-
- # Setting --with-macosx-version-max= makes it an error to build or
- # link to macosx APIs that are newer than the given OS version. The expected
- # format for is either nn.n.n or nn.nn.nn. See /usr/include/AvailabilityMacros.h.
- AC_ARG_WITH([macosx-version-max], [AS_HELP_STRING([--with-macosx-version-max],
- [error on use of newer functionality. @<:@macosx@:>@])],
- [
- if echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]]\.[[0-9]]\$"; then
- MACOSX_VERSION_MAX=$with_macosx_version_max
- elif echo "$with_macosx_version_max" | $GREP -q "^[[0-9]][[0-9]]\.[[0-9]][[0-9]]\.[[0-9]][[0-9]]\$"; then
- MACOSX_VERSION_MAX=$with_macosx_version_max
- elif test "x$with_macosx_version_max" = "xno"; then
- # Use build system default
- MACOSX_VERSION_MAX=
- else
- AC_MSG_ERROR([osx version format must be nn.n.n or nn.nn.nn])
- fi
- ],
- [MACOSX_VERSION_MAX=]
- )
- AC_SUBST(MACOSX_VERSION_MAX)
-
- # Let the flags variables get resolved in make for easier override on make
- # command line. AvailabilityMacros.h versions have no dots, ex: 1070.
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \
- -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(subst .,,\$(MACOSX_VERSION_MIN)) \
- -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
- $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS \
- -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(subst .,,\$(MACOSX_VERSION_MIN)) \
- -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
- $2ARFLAGS="$2$ARFLAGS -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
-
- if test -n "$MACOSX_VERSION_MAX"; then
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \
- -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MAX))"
- $2JVM_CFLAGS="[$]$2JVM_CFLAGS \
- -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MAX))"
- fi
- fi
-
- # Setup some hard coded includes
- $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \
- -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
- -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base/\$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
- -I${TOPDIR}/src/java.base/share/native/libjava \
- -I${TOPDIR}/src/java.base/$OPENJDK_$1_OS_TYPE/native/libjava \
- -I${TOPDIR}/src/hotspot/share/include \
- -I${TOPDIR}/src/hotspot/os/${HOTSPOT_$1_OS_TYPE}/include"
-
- # The shared libraries are compiled using the picflag.
- $2CFLAGS_JDKLIB="[$]$2COMMON_CCXXFLAGS_JDK \
- [$]$2CFLAGS_JDK [$]$2EXTRA_CFLAGS_JDK $PICFLAG [$]$2CFLAGS_JDKLIB_EXTRA"
- $2CXXFLAGS_JDKLIB="[$]$2COMMON_CCXXFLAGS_JDK \
- [$]$2CXXFLAGS_JDK [$]$2EXTRA_CXXFLAGS_JDK $PICFLAG [$]$2CXXFLAGS_JDKLIB_EXTRA"
-
- # Executable flags
- $2CFLAGS_JDKEXE="[$]$2COMMON_CCXXFLAGS_JDK [$]$2CFLAGS_JDK [$]$2EXTRA_CFLAGS_JDK"
- $2CXXFLAGS_JDKEXE="[$]$2COMMON_CCXXFLAGS_JDK [$]$2CXXFLAGS_JDK [$]$2EXTRA_CXXFLAGS_JDK"
-
- AC_SUBST($2CFLAGS_JDKLIB)
- AC_SUBST($2CFLAGS_JDKEXE)
- AC_SUBST($2CXXFLAGS_JDKLIB)
- AC_SUBST($2CXXFLAGS_JDKEXE)
-
- # Setup LDFLAGS et al.
- #
+ FLAGS_SETUP_CFLAGS
+ FLAGS_SETUP_LDFLAGS
- if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- LDFLAGS_MICROSOFT="-nologo -opt:ref"
- $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LDFLAGS_MICROSOFT -incremental:no"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_MICROSOFT -opt:icf,8 -subsystem:windows -base:0x8000000 -ignore:4281"
- if test "x$OPENJDK_$1_CPU_BITS" = "x32"; then
- LDFLAGS_SAFESH="-safeseh"
- $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LDFLAGS_SAFESH"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_SAFESH"
- # NOTE: Old build added -machine. Probably not needed.
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -machine:I386"
- else
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -machine:AMD64"
- fi
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -mno-omit-leaf-frame-pointer -mstack-alignment=16 -stdlib=libstdc++ -fPIC"
- if test "x$OPENJDK_$1_OS" = xmacosx; then
- # FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
- fi
- elif test "x$TOOLCHAIN_TYPE" = xgcc; then
- # 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
- if test -n "$HAS_GNU_HASH"; then
- $2LDFLAGS_HASH_STYLE="-Wl,--hash-style=both"
- $2LDFLAGS_JDK="${$2LDFLAGS_JDK} [$]$2LDFLAGS_HASH_STYLE"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS [$]$2LDFLAGS_HASH_STYLE"
- fi
- if test "x$OPENJDK_$1_OS" = xmacosx; then
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
- fi
- if test "x$OPENJDK_$1_OS" = xlinux; then
- # And since we now know that the linker is gnu, then add -z defs, to forbid
- # undefined symbols in object files.
- LDFLAGS_NO_UNDEF_SYM="-Wl,-z,defs"
- $2LDFLAGS_JDK="${$2LDFLAGS_JDK} $LDFLAGS_NO_UNDEF_SYM"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_NO_UNDEF_SYM"
- LDFLAGS_NO_EXEC_STACK="-Wl,-z,noexecstack"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_NO_EXEC_STACK"
- if test "x$OPENJDK_$1_CPU" = xx86; then
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -march=i586"
- fi
- case $DEBUG_LEVEL in
- release )
- # tell linker to optimize libraries.
- # Should this be supplied to the OSS linker as well?
- LDFLAGS_DEBUGLEVEL_release="-Wl,-O1"
- $2LDFLAGS_JDK="${$2LDFLAGS_JDK} $LDFLAGS_DEBUGLEVEL_release"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_DEBUGLEVEL_release"
- if test "x$HAS_LINKER_RELRO" = "xtrue"; then
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LINKER_RELRO_FLAG"
- fi
- ;;
- slowdebug )
- # Hotspot always let the linker optimize
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -Wl,-O1"
- if test "x$HAS_LINKER_NOW" = "xtrue"; then
- # do relocations at load
- $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LINKER_NOW_FLAG"
- $2LDFLAGS_CXX_JDK="[$]$2LDFLAGS_CXX_JDK $LINKER_NOW_FLAG"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LINKER_NOW_FLAG"
- fi
- if test "x$HAS_LINKER_RELRO" = "xtrue"; then
- # mark relocations read only
- $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LINKER_RELRO_FLAG"
- $2LDFLAGS_CXX_JDK="[$]$2LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LINKER_RELRO_FLAG"
- fi
- ;;
- fastdebug )
- # Hotspot always let the linker optimize
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -Wl,-O1"
- if test "x$HAS_LINKER_RELRO" = "xtrue"; then
- # mark relocations read only
- $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LINKER_RELRO_FLAG"
- $2LDFLAGS_CXX_JDK="[$]$2LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LINKER_RELRO_FLAG"
- fi
- ;;
- * )
- AC_MSG_ERROR([Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL])
- ;;
- esac
- fi
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- LDFLAGS_SOLSTUDIO="-Wl,-z,defs"
- $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LDFLAGS_SOLSTUDIO -ztext"
- LDFLAGS_CXX_SOLSTUDIO="-norunpath"
- $2LDFLAGS_CXX_JDK="[$]$2LDFLAGS_CXX_JDK $LDFLAGS_CXX_SOLSTUDIO -xnolib"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_SOLSTUDIO -library=%none -mt $LDFLAGS_CXX_SOLSTUDIO -z noversion"
- if test "x$OPENJDK_$1_CPU_ARCH" = "xsparc"; then
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -xarch=sparc"
- fi
- elif test "x$TOOLCHAIN_TYPE" = xxlc; then
- LDFLAGS_XLC="-b64 -brtl -bnolibpath -bexpall -bernotok -btextpsize:64K -bdatapsize:64K -bstackpsize:64K"
- $2LDFLAGS_JDK="${$2LDFLAGS_JDK} $LDFLAGS_XLC"
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_XLC"
- # We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
- # Hotspot now overflows its 64K TOC (currently only for debug),
- # so we build with '-qpic=large -bbigtoc'.
- if test "x$DEBUG_LEVEL" = xslowdebug || test "x$DEBUG_LEVEL" = xfastdebug; then
- $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS -bbigtoc"
- fi
- fi
+ FLAGS_SETUP_ARFLAGS
+ FLAGS_SETUP_STRIPFLAGS
+ FLAGS_SETUP_RCFLAGS
- # Customize LDFLAGS for executables
-
- $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDK}"
-
- if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- if test "x$OPENJDK_$1_CPU_BITS" = "x64"; then
- LDFLAGS_STACK_SIZE=1048576
- else
- LDFLAGS_STACK_SIZE=327680
- fi
- $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
- elif test "x$OPENJDK_$1_OS" = xlinux; then
- $2LDFLAGS_JDKEXE="[$]$2LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
- fi
-
- $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDKEXE} ${$2EXTRA_LDFLAGS_JDK}"
-
- # Customize LDFLAGS for libs
- $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDK}"
-
- $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"
- $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${LDFLAGS_NO_EXEC_STACK}"
- if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
- -libpath:${OUTPUTDIR}/support/modules_libs/java.base"
- $2JDKLIB_LIBS=""
- else
- $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
- -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base"
-
- if test "x$1" = "xTARGET"; then
- # On some platforms (mac) the linker warns about non existing -L dirs.
- # For any of the variants server, client or minimal, the dir matches the
- # variant name. The "main" variant should be used for linking. For the
- # rest, the dir is just server.
- if HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) \
- || HOTSPOT_CHECK_JVM_VARIANT(minimal); then
- $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
- -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$JVM_VARIANT_MAIN"
- else
- $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
- -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
- fi
- elif test "x$1" = "xBUILD"; then
- # When building a buildjdk, it's always only the server variant
- $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
- -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
- fi
-
- $2JDKLIB_LIBS="-ljava -ljvm"
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- $2JDKLIB_LIBS="[$]$2JDKLIB_LIBS -lc"
- fi
-
- fi
-
-$2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${$2JAVA_BASE_LDFLAGS}"
-
- # Set $2JVM_LIBS (per os)
- if test "x$OPENJDK_$1_OS" = xlinux; then
- $2JVM_LIBS="[$]$2JVM_LIBS -lm -ldl -lpthread"
- elif test "x$OPENJDK_$1_OS" = xsolaris; then
- # FIXME: This hard-coded path is not really proper.
- if test "x$OPENJDK_$1_CPU" = xx86_64; then
- $2SOLARIS_LIBM_LIBS="/usr/lib/amd64/libm.so.1"
- elif test "x$OPENJDK_$1_CPU" = xsparcv9; then
- $2SOLARIS_LIBM_LIBS="/usr/lib/sparcv9/libm.so.1"
- fi
- $2JVM_LIBS="[$]$2JVM_LIBS -lsocket -lsched -ldl $SOLARIS_LIBM_LIBS -lCrun \
- -lthread -ldoor -lc -ldemangle -lnsl -lrt"
- elif test "x$OPENJDK_$1_OS" = xmacosx; then
- $2JVM_LIBS="[$]$2JVM_LIBS -lm"
- elif test "x$OPENJDK_$1_OS" = xaix; then
- $2JVM_LIBS="[$]$2JVM_LIBS -Wl,-lC_r -lm -ldl -lpthread"
- elif test "x$OPENJDK_$1_OS" = xbsd; then
- $2JVM_LIBS="[$]$2JVM_LIBS -lm"
- elif test "x$OPENJDK_$1_OS" = xwindows; then
- $2JVM_LIBS="[$]$2JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \
- wsock32.lib winmm.lib version.lib psapi.lib"
- fi
-
- # Set $2JVM_ASFLAGS
- if test "x$OPENJDK_$1_OS" = xlinux; then
- if test "x$OPENJDK_$1_CPU" = xx86; then
- $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -march=i586"
- fi
- elif test "x$OPENJDK_$1_OS" = xmacosx; then
- $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16"
- fi
-
- $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${$2EXTRA_LDFLAGS_JDK}"
-
- AC_SUBST($2LDFLAGS_JDKLIB)
- AC_SUBST($2LDFLAGS_JDKEXE)
- AC_SUBST($2JDKLIB_LIBS)
- AC_SUBST($2JDKEXE_LIBS)
- AC_SUBST($2LDFLAGS_CXX_JDK)
- AC_SUBST($2LDFLAGS_HASH_STYLE)
- AC_SUBST($2LDFLAGS_NO_EXEC_STACK)
-
- AC_SUBST($2JVM_CFLAGS)
- AC_SUBST($2JVM_LDFLAGS)
- AC_SUBST($2JVM_ASFLAGS)
- AC_SUBST($2JVM_LIBS)
-
+ FLAGS_SETUP_ASFLAGS
+ FLAGS_SETUP_ASFLAGS_CPU_DEP([TARGET])
+ FLAGS_SETUP_ASFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
])
# FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARGUMENT], IF_TRUE: [RUN-IF-TRUE],
@@ -1520,110 +504,3 @@
ARG_IF_FALSE
fi
])
-
-AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC],
-[
- # Check that the compiler supports -mX (or -qX on AIX) flags
- # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
- FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}],
- IF_TRUE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
- IF_FALSE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
- AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
-
- AC_ARG_ENABLE([warnings-as-errors], [AS_HELP_STRING([--disable-warnings-as-errors],
- [do not consider native warnings to be an error @<:@enabled@:>@])])
-
- AC_MSG_CHECKING([if native warnings are errors])
- if test "x$enable_warnings_as_errors" = "xyes"; then
- AC_MSG_RESULT([yes (explicitly set)])
- WARNINGS_AS_ERRORS=true
- elif test "x$enable_warnings_as_errors" = "xno"; then
- AC_MSG_RESULT([no])
- WARNINGS_AS_ERRORS=false
- elif test "x$enable_warnings_as_errors" = "x"; then
- AC_MSG_RESULT([yes (default)])
- WARNINGS_AS_ERRORS=true
- else
- AC_MSG_ERROR([--enable-warnings-as-errors accepts no argument])
- fi
-
- AC_SUBST(WARNINGS_AS_ERRORS)
-
- case "${TOOLCHAIN_TYPE}" in
- microsoft)
- DISABLE_WARNING_PREFIX="-wd"
- CFLAGS_WARNINGS_ARE_ERRORS="-WX"
- ;;
- solstudio)
- DISABLE_WARNING_PREFIX="-erroff="
- CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
- ;;
- gcc)
- # Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error
- FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
- IF_TRUE: [GCC_CAN_DISABLE_WARNINGS=true],
- IF_FALSE: [GCC_CAN_DISABLE_WARNINGS=false]
- )
- if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then
- DISABLE_WARNING_PREFIX="-Wno-"
- else
- DISABLE_WARNING_PREFIX=
- fi
- CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
- # Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
- # CFLAGS since any target specific flags will likely not work with the
- # build compiler
- CC_OLD="$CC"
- CXX_OLD="$CXX"
- CC="$BUILD_CC"
- CXX="$BUILD_CXX"
- CFLAGS_OLD="$CFLAGS"
- CFLAGS=""
- FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
- IF_TRUE: [BUILD_CC_CAN_DISABLE_WARNINGS=true],
- IF_FALSE: [BUILD_CC_CAN_DISABLE_WARNINGS=false]
- )
- if test "x$BUILD_CC_CAN_DISABLE_WARNINGS" = "xtrue"; then
- BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
- else
- BUILD_CC_DISABLE_WARNING_PREFIX=
- fi
- CC="$CC_OLD"
- CXX="$CXX_OLD"
- CFLAGS="$CFLAGS_OLD"
- ;;
- clang)
- DISABLE_WARNING_PREFIX="-Wno-"
- CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
- ;;
- xlc)
- DISABLE_WARNING_PREFIX="-qsuppress="
- CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
- ;;
- esac
- AC_SUBST(DISABLE_WARNING_PREFIX)
- AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
- AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
-])
-
-# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX])
-# Arguments:
-# $1 - Optional prefix for each variable defined.
-AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
-[
- # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code
- # runs afoul of the more aggressive versions of these optimisations.
- # Notably, value range propagation now assumes that the this pointer of C++
- # member functions is non-null.
- NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
- dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
- dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
- dnl IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
- NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
- dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
- dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
- dnl IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
- AC_MSG_NOTICE([GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}])
- $1CFLAGS_JDK="[$]$1CFLAGS_JDK ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
- $1JVM_CFLAGS="[$]$1JVM_CFLAGS ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
-])
diff -r c3ec048aad63 -r ece10494786c make/autoconf/hotspot.m4
--- a/make/autoconf/hotspot.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/hotspot.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -277,13 +277,9 @@
if test "x$OPENJDK_TARGET_CPU" = xarm; then
HOTSPOT_TARGET_CPU=arm_32
HOTSPOT_TARGET_CPU_DEFINE="ARM32"
- JVM_LDFLAGS="$JVM_LDFLAGS -fsigned-char"
- JVM_CFLAGS="$JVM_CFLAGS -DARM -fsigned-char"
elif test "x$OPENJDK_TARGET_CPU" = xaarch64 && test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
HOTSPOT_TARGET_CPU=arm_64
HOTSPOT_TARGET_CPU_ARCH=arm
- JVM_LDFLAGS="$JVM_LDFLAGS -fsigned-char"
- JVM_CFLAGS="$JVM_CFLAGS -DARM -fsigned-char"
fi
# Verify that dependencies are met for explicitly set features.
diff -r c3ec048aad63 -r ece10494786c make/autoconf/lib-std.m4
--- a/make/autoconf/lib-std.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/lib-std.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -81,6 +81,9 @@
if test "x$TOOLCHAIN_TYPE" = xsolstudio && test "x$LIBCXX" = x; then
LIBCXX="${SYSROOT}/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
fi
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ LIBCXX_JVM="-lCrun"
+ fi
AC_SUBST(LIBCXX)
diff -r c3ec048aad63 -r ece10494786c make/autoconf/libraries.m4
--- a/make/autoconf/libraries.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/libraries.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -101,6 +101,68 @@
LIB_SETUP_BUNDLED_LIBS
LIB_SETUP_MISC_LIBS
LIB_SETUP_SOLARIS_STLPORT
+
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ ALWAYS_LIBS="-lc"
+ else
+ ALWAYS_LIBS=""
+ fi
+
+ BASIC_JDKLIB_LIBS=""
+ if test "x$TOOLCHAIN_TYPE" != xmicrosoft; then
+ BASIC_JDKLIB_LIBS="-ljava -ljvm"
+ fi
+ BASIC_JDKLIB_LIBS="$BASIC_JDKLIB_LIBS $ALWAYS_LIBS"
+
+ # Math library
+ if test "x$OPENJDK_TARGET_OS" != xsolaris; then
+ BASIC_JVM_LIBS="$LIBM"
+ else
+ # FIXME: This hard-coded path is not really proper.
+ if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
+ BASIC_SOLARIS_LIBM_LIBS="/usr/lib/amd64/libm.so.1"
+ elif test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
+ BASIC_SOLARIS_LIBM_LIBS="/usr/lib/sparcv9/libm.so.1"
+ fi
+ BASIC_JVM_LIBS="$BASIC_SOLARIS_LIBM_LIBS"
+ fi
+
+ # Dynamic loading library
+ if test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xaix; then
+ BASIC_JVM_LIBS="$BASIC_JVM_LIBS $LIBDL"
+ fi
+
+ # Threading library
+ if test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xaix; then
+ BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lpthread"
+ elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lthread"
+ fi
+
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lsocket -lsched -ldoor -ldemangle -lnsl \
+ -lrt"
+ BASIC_JVM_LIBS="$BASIC_JVM_LIBS $LIBCXX_JVM"
+ fi
+
+ if test "x$OPENJDK_TARGET_OS" = xwindows; then
+ BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
+ comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \
+ wsock32.lib winmm.lib version.lib psapi.lib"
+ fi
+ BASIC_JVM_LIBS="$BASIC_JVM_LIBS $ALWAYS_LIBS"
+
+ JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
+ JDKEXE_LIBS=""
+ JVM_LIBS="$BASIC_JVM_LIBS"
+ OPENJDK_BUILD_JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
+ OPENJDK_BUILD_JVM_LIBS="$BASIC_JVM_LIBS"
+
+ AC_SUBST(JDKLIB_LIBS)
+ AC_SUBST(JDKEXE_LIBS)
+ AC_SUBST(JVM_LIBS)
+ AC_SUBST(OPENJDK_BUILD_JDKLIB_LIBS)
+ AC_SUBST(OPENJDK_BUILD_JVM_LIBS)
])
################################################################################
diff -r c3ec048aad63 -r ece10494786c make/autoconf/platform.m4
--- a/make/autoconf/platform.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/platform.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -403,15 +403,6 @@
OPENJDK_$1_BUNDLE_PLATFORM="${OPENJDK_$1_OS_BUNDLE}-${OPENJDK_$1_CPU_BUNDLE}"
AC_SUBST(OPENJDK_$1_BUNDLE_PLATFORM)
- if test "x$OPENJDK_$1_CPU_BITS" = x64; then
- # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
- # unpack200.exe. This variable is used in
- # FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER.
- if test "x$OPENJDK_$1_OS" = xlinux || test "x$OPENJDK_$1_OS" = xmacosx; then
- OPENJDK_$1_ADD_LP64="-D_LP64=1"
- fi
- fi
-
if test "x$COMPILE_TYPE" = "xcross"; then
# FIXME: ... or should this include reduced builds..?
DEFINE_CROSS_COMPILE_ARCH="CROSS_COMPILE_ARCH:=$OPENJDK_$1_CPU_LEGACY"
@@ -563,31 +554,6 @@
AC_SUBST(OS_VERSION_MICRO)
])
-# Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
-# Add -mX to various FLAGS variables.
-AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
-[
- # When we add flags to the "official" CFLAGS etc, we need to
- # keep track of these additions in ADDED_CFLAGS etc. These
- # will later be checked to make sure only controlled additions
- # have been made to CFLAGS etc.
- ADDED_CFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
- ADDED_CXXFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
- ADDED_LDFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
-
- CFLAGS="${CFLAGS}${ADDED_CFLAGS}"
- CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}"
- LDFLAGS="${LDFLAGS}${ADDED_LDFLAGS}"
-
- CFLAGS_JDK="${CFLAGS_JDK}${ADDED_CFLAGS}"
- CXXFLAGS_JDK="${CXXFLAGS_JDK}${ADDED_CXXFLAGS}"
- LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}"
-
- JVM_CFLAGS="$JVM_CFLAGS $ADDED_CFLAGS"
- JVM_LDFLAGS="$JVM_LDFLAGS $ADDED_LDFLAGS"
- JVM_ASFLAGS="$JVM_ASFLAGS $ADDED_CFLAGS"
-])
-
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
[
###############################################################################
@@ -597,22 +563,6 @@
# is made at runtime.)
#
- if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xaix; then
- # Always specify -m flag on Solaris
- # And -q on AIX because otherwise the compiler produces 32-bit objects by default
- PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
- elif test "x$COMPILE_TYPE" = xreduced; then
- if test "x$OPENJDK_TARGET_OS_TYPE" = xunix; then
- # Specify -m if running reduced on unix platforms
- PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
- fi
- fi
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- JVM_CFLAGS="$JVM_CFLAGS ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
- JVM_LDFLAGS="$JVM_LDFLAGS ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
- JVM_ASFLAGS="$JVM_ASFLAGS ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
- fi
-
# Make compilation sanity check
AC_CHECK_HEADERS([stdio.h], , [
AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
@@ -635,33 +585,14 @@
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
- # This situation may happen on 64-bit platforms where the compiler by default only generates 32-bit objects
- # Let's try to implicitely set the compilers target architecture and retry the test
- AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS).])
- AC_MSG_NOTICE([Retrying with platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}])
- PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
-
- # We have to unset 'ac_cv_sizeof_int_p' first, otherwise AC_CHECK_SIZEOF will use the previously cached value!
- unset ac_cv_sizeof_int_p
- # And we have to undef the definition of SIZEOF_INT_P in confdefs.h by the previous invocation of AC_CHECK_SIZEOF
- cat >>confdefs.h <<_ACEOF
-#undef SIZEOF_INT_P
-_ACEOF
-
- AC_CHECK_SIZEOF([int *], [1111])
-
- TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
-
- if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
- AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)])
- if test "x$COMPILE_TYPE" = xreduced; then
- HELP_MSG_MISSING_DEPENDENCY([reduced])
- AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG])
- elif test "x$COMPILE_TYPE" = xcross; then
- AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
- fi
- AC_MSG_ERROR([Cannot continue.])
+ AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)])
+ if test "x$COMPILE_TYPE" = xreduced; then
+ HELP_MSG_MISSING_DEPENDENCY([reduced])
+ AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG])
+ elif test "x$COMPILE_TYPE" = xcross; then
+ AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
fi
+ AC_MSG_ERROR([Cannot continue.])
fi
fi
diff -r c3ec048aad63 -r ece10494786c make/autoconf/spec.gmk.in
--- a/make/autoconf/spec.gmk.in Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/spec.gmk.in Fri Mar 02 21:00:12 2018 +0100
@@ -423,7 +423,7 @@
WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
CFLAGS_CCACHE:=@CFLAGS_CCACHE@
-CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@
+ADLC_CXXFLAG=@ADLC_CXXFLAG@
# Tools that potentially need to be cross compilation aware.
CC:=@FIXPATH@ @CCACHE@ @ICECC@ @CC@
@@ -436,11 +436,10 @@
CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@
CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
-LDFLAGS_HASH_STYLE := @LDFLAGS_HASH_STYLE@
-LDFLAGS_NO_EXEC_STACK := @LDFLAGS_NO_EXEC_STACK@
+LIBJSIG_HASHSTYLE_LDFLAGS := @LIBJSIG_HASHSTYLE_LDFLAGS@
+LIBJSIG_NOEXECSTACK_LDFLAGS := @LIBJSIG_NOEXECSTACK_LDFLAGS@
JVM_CFLAGS := @JVM_CFLAGS@
-JVM_CFLAGS_SYMBOLS := @JVM_CFLAGS_SYMBOLS@
JVM_LDFLAGS := @JVM_LDFLAGS@
JVM_ASFLAGS := @JVM_ASFLAGS@
JVM_LIBS := @JVM_LIBS@
@@ -524,7 +523,6 @@
# Options for C/CXX compiler to be used if linking is performed
# using reorder file
C_FLAG_REORDER:=@C_FLAG_REORDER@
-CXX_FLAG_REORDER:=@CXX_FLAG_REORDER@
#
# Options for generating debug symbols
@@ -533,7 +531,6 @@
ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@
CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
-CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
#
# Compress (or not) jars
@@ -710,6 +707,7 @@
LDD:=@LDD@
OTOOL:=@OTOOL@
READELF:=@READELF@
+ELFEDIT:=@ELFEDIT@
EXPR:=@EXPR@
FILE:=@FILE@
DOT:=@DOT@
diff -r c3ec048aad63 -r ece10494786c make/autoconf/toolchain.m4
--- a/make/autoconf/toolchain.m4 Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/toolchain.m4 Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -783,7 +783,6 @@
fi
BUILD_SYSROOT="$BUILD_DEVKIT_SYSROOT"
- FLAGS_SETUP_SYSROOT_FLAGS([BUILD_])
# Fallback default of just /bin if DEVKIT_PATH is not defined
if test "x$BUILD_DEVKIT_TOOLCHAIN_PATH" = x; then
@@ -830,8 +829,6 @@
BUILD_AS="$AS"
BUILD_OBJCOPY="$OBJCOPY"
BUILD_STRIP="$STRIP"
- BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
- BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
BUILD_AR="$AR"
TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([], [OPENJDK_BUILD_])
@@ -843,8 +840,6 @@
AC_SUBST(BUILD_LDCXX)
AC_SUBST(BUILD_NM)
AC_SUBST(BUILD_AS)
- AC_SUBST(BUILD_SYSROOT_CFLAGS)
- AC_SUBST(BUILD_SYSROOT_LDFLAGS)
AC_SUBST(BUILD_AR)
])
@@ -876,24 +871,6 @@
# If this is a --hash-style=gnu system, use --hash-style=both, why?
HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
# This is later checked when setting flags.
-
- # "-Og" suppported for GCC 4.8 and later
- CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
- FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CFLAG_OPTIMIZE_DEBUG_FLAG],
- IF_TRUE: [HAS_CFLAG_OPTIMIZE_DEBUG=true],
- IF_FALSE: [HAS_CFLAG_OPTIMIZE_DEBUG=false])
-
- # "-z relro" supported in GNU binutils 2.17 and later
- LINKER_RELRO_FLAG="-Wl,-z,relro"
- FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [$LINKER_RELRO_FLAG],
- IF_TRUE: [HAS_LINKER_RELRO=true],
- IF_FALSE: [HAS_LINKER_RELRO=false])
-
- # "-z now" supported in GNU binutils 2.11 and later
- LINKER_NOW_FLAG="-Wl,-z,now"
- FLAGS_LINKER_CHECK_ARGUMENTS(ARGUMENT: [$LINKER_NOW_FLAG],
- IF_TRUE: [HAS_LINKER_NOW=true],
- IF_FALSE: [HAS_LINKER_NOW=false])
fi
# Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed
diff -r c3ec048aad63 -r ece10494786c make/autoconf/version-numbers
--- a/make/autoconf/version-numbers Thu Mar 01 16:35:36 2018 -0500
+++ b/make/autoconf/version-numbers Fri Mar 02 21:00:12 2018 +0100
@@ -32,6 +32,7 @@
DEFAULT_VERSION_DATE=2018-09-18
DEFAULT_VERSION_CLASSFILE_MAJOR=55 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
+DEFAULT_ACCEPTABLE_BOOT_VERSIONS="9 10 11"
LAUNCHER_NAME=openjdk
PRODUCT_NAME=OpenJDK
diff -r c3ec048aad63 -r ece10494786c make/common/Modules.gmk
--- a/make/common/Modules.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/common/Modules.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -94,6 +94,7 @@
java.smartcardio \
java.sql \
java.sql.rowset \
+ java.transaction.xa \
java.xml.crypto \
jdk.accessibility \
jdk.charsets \
diff -r c3ec048aad63 -r ece10494786c make/common/NativeCompilation.gmk
--- a/make/common/NativeCompilation.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/common/NativeCompilation.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -30,7 +30,7 @@
ifndef _NATIVE_COMPILATION_GMK
_NATIVE_COMPILATION_GMK := 1
-ifeq (,$(_MAKEBASE_GMK))
+ifeq ($(_MAKEBASE_GMK), )
$(error You must include MakeBase.gmk prior to including NativeCompilation.gmk)
endif
@@ -150,7 +150,7 @@
define replace_with_obj_extension
$(strip \
$(foreach extension, $(NATIVE_SOURCE_EXTENSIONS), \
- $(patsubst $(extension),%$(OBJ_SUFFIX),$(filter $(extension),$1))) \
+ $(patsubst $(extension),%$(OBJ_SUFFIX), $(filter $(extension), $1))) \
)
endef
@@ -183,150 +183,160 @@
-e 's/$$$$/ :/' \
#
-define add_native_source
- # param 1 = BUILD_MYPACKAGE
- # parma 2 = the source file name (..../alfa.c or .../beta.cpp)
- # param 3 = the bin dir that stores all .o (.obj) and .d files.
- # param 4 = the c flags to the compiler
- # param 5 = the c compiler
- # param 6 = the c++ flags to the compiler
- # param 7 = the c++ compiler
- # param 8 = the flags to the assembler
- # param 9 = set to disable THIS_FILE
-
- ifeq ($9, )
- $1_$2_THIS_FILE = -DTHIS_FILE='"$$( $$($1_$2_DEP)
+ $$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP).tmp \
+ $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE))
+ $(SED) 's|^$$(@F):|$$@:|' $$($1_DEP).tmp > $$($1_DEP)
else
$$(call ExecuteWithLog, $$@, \
- $$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEP_FLAG) $$($1_$2_DEP) $(CC_OUT_OPTION)$$($1_$2_OBJ) $2)
+ $$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP) \
+ $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE))
endif
# Create a dependency target file from the dependency file.
# Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
- ifneq ($$($1_$2_DEP),)
- $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
+ ifneq ($$($1_DEP), )
+ $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEP) > $$($1_DEP_TARGETS)
endif
else
- # The Visual Studio compiler lacks a feature for generating make dependencies, but by
- # setting -showIncludes, all included files are printed. These are filtered out and
- # parsed into make dependences.
- # Keep as much as possible on one execution line for best performance on Windows.
- # No need to save exit code from compilation since pipefail is always active on
- # Windows.
+ # The Visual Studio compiler lacks a feature for generating make
+ # dependencies, but by setting -showIncludes, all included files are
+ # printed. These are filtered out and parsed into make dependences.
+ #
+ # Keep as much as possible on one execution line for best performance
+ # on Windows. No need to save exit code from compilation since
+ # pipefail is always active on Windows.
$$(call ExecuteWithLog, $$@, \
- $$($1_$2_COMP) $$($1_$2_FLAGS) -showIncludes $$($1_$2_DEBUG_OUT_FLAGS) \
- $(CC_OUT_OPTION)$$($1_$2_OBJ) $2) \
- | $(GREP) -v -e "^Note: including file:" \
- -e "^$(notdir $2)$$$$" || test "$$$$?" = "1" ; \
- $(ECHO) $$@: \\ > $$($1_$2_DEP) ; \
- $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_OBJ).log \
- | $(SORT) -u >> $$($1_$2_DEP) ; \
- $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS)
+ $$($1_COMPILER) $$($1_FLAGS) -showIncludes \
+ $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)) \
+ | $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
+ -e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
+ $(ECHO) $$@: \\ > $$($1_DEP) ; \
+ $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_OBJ).log \
+ | $(SORT) -u >> $$($1_DEP) ; \
+ $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEP) > $$($1_DEP_TARGETS)
endif
endif
endef
@@ -338,6 +348,9 @@
# and the targets generated are listed in a variable by that name.
#
# Remaining parameters are named arguments. These include:
+# NAME The base name for the resulting binary, excluding decorations (like *.exe)
+# TYPE Type of binary (EXECUTABLE, LIBRARY or STATIC_LIBRARY). Default is LIBRARY.
+# SUFFIX Override the default suffix for the output file
# TOOLCHAIN Name of toolchain setup to use. Defaults to TOOLCHAIN_DEFAULT.
# SRC one or more directory roots to scan for C/C++ files.
# CFLAGS the compiler flags to be used, used both for C and C++.
@@ -347,8 +360,6 @@
# ARFLAGS the archiver flags to be used
# OBJECT_DIR the directory where we store the object files
# OUTPUT_DIR the directory where the resulting binary is put
-# LIBRARY the resulting library file
-# PROGRAM the resulting exec file
# INCLUDES only pick source from these directories
# EXCLUDES do not pick source from these directories
# INCLUDE_FILES only compile exactly these files!
@@ -377,113 +388,65 @@
# COPY_DEBUG_SYMBOLS Set to false to override global setting of debug symbol copying
# ZIP_EXTERNAL_DEBUG_SYMBOLS Set to false to override global setting of debug symbol
# zipping
-# CFLAGS_DEBUG_SYMBOLS Overrides the default cflags for enabling debug symbols
-# CXXFLAGS_DEBUG_SYMBOLS Overrides the default cxxflags for enabling debug symbols
# STRIPFLAGS Optionally change the flags given to the strip command
# PRECOMPILED_HEADER Header file to use as precompiled header
# PRECOMPILED_HEADER_EXCLUDE List of source files that should not use PCH
SetupNativeCompilation = $(NamedParamsMacroTemplate)
define SetupNativeCompilationBody
+ # If type is unspecified, default to LIBRARY
+ ifeq ($$($1_TYPE), )
+ $1_TYPE := LIBRARY
+ endif
+
# If we're doing a static build and producing a library
# force it to be a static library and remove the -l libraries
ifeq ($(STATIC_BUILD), true)
- ifneq ($$($1_LIBRARY),)
- $1_STATIC_LIBRARY := $$($1_LIBRARY)
- $1_LIBRARY :=
+ ifeq ($$($1_TYPE), LIBRARY)
+ $1_TYPE := STATIC_LIBRARY
endif
endif
- ifneq (,$$($1_BIN))
- $$(error BIN has been replaced with OBJECT_DIR)
- endif
-
- ifneq (,$$($1_LIB))
- $$(error LIB has been replaced with LIBRARY)
- endif
-
- ifneq (,$$($1_EXE))
- $$(error EXE has been replaced with PROGRAM)
- endif
-
- ifneq (,$$($1_LIBRARY))
- ifeq (,$$($1_OUTPUT_DIR))
- $$(error LIBRARY requires OUTPUT_DIR)
- endif
-
- ifneq ($$($1_LIBRARY),$(basename $$($1_LIBRARY)))
- $$(error directory of LIBRARY should be specified using OUTPUT_DIR)
- endif
-
- ifneq (,$(findstring $(SHARED_LIBRARY_SUFFIX),$$($1_LIBRARY)))
- $$(error LIBRARY should be specified without SHARED_LIBRARY_SUFFIX: $(SHARED_LIBRARY_SUFFIX))
- endif
-
- ifneq (,$(findstring $(LIBRARY_PREFIX),$$($1_LIBRARY)))
- $$(error LIBRARY should be specified without LIBRARY_PREFIX: $(LIBRARY_PREFIX))
- endif
-
- ifeq ($$($1_SUFFIX), )
- $1_SUFFIX := $(SHARED_LIBRARY_SUFFIX)
- endif
-
- $1_BASENAME:=$(LIBRARY_PREFIX)$$($1_LIBRARY)$$($1_SUFFIX)
- $1_TARGET:=$$($1_OUTPUT_DIR)/$$($1_BASENAME)
- $1_NOSUFFIX:=$(LIBRARY_PREFIX)$$($1_LIBRARY)
- endif
-
- ifneq (,$$($1_STATIC_LIBRARY))
- ifeq (,$$($1_OUTPUT_DIR))
- $$(error STATIC_LIBRARY requires OUTPUT_DIR)
- endif
-
- ifneq ($$($1_STATIC_LIBRARY),$(basename $$($1_STATIC_LIBRARY)))
- $$(error directory of STATIC_LIBRARY should be specified using OUTPUT_DIR)
- endif
-
- ifneq (,$(findstring $(STATIC_LIBRARY_SUFFIX),$$($1_STATIC_LIBRARY)))
- $$(error STATIC_LIBRARY should be specified without STATIC_LIBRARY_SUFFIX: $(STATIC_LIBRARY_SUFFIX))
- endif
-
- ifneq (,$(findstring $(LIBRARY_PREFIX),$$($1_STATIC_LIBRARY)))
- $$(error STATIC_LIBRARY should be specified without LIBRARY_PREFIX: $(LIBRARY_PREFIX))
- endif
-
- ifeq ($$($1_SUFFIX), )
- $1_SUFFIX := $(STATIC_LIBRARY_SUFFIX)
- endif
-
- $1_BASENAME:=$(LIBRARY_PREFIX)$$($1_STATIC_LIBRARY)$$($1_SUFFIX)
- $1_TARGET:=$$($1_OUTPUT_DIR)/$$($1_BASENAME)
- $1_NOSUFFIX:=$(LIBRARY_PREFIX)$$($1_STATIC_LIBRARY)
- endif
-
- ifneq (,$$($1_PROGRAM))
- ifeq (,$$($1_OUTPUT_DIR))
- $$(error PROGRAM requires OUTPUT_DIR)
- endif
-
- ifneq ($$($1_PROGRAM),$(basename $$($1_PROGRAM)))
- $$(error directory of PROGRAM should be specified using OUTPUT_DIR)
- endif
-
- ifneq (,$(findstring $(EXE_SUFFIX),$$($1_PROGRAM)))
- $$(error PROGRAM should be specified without EXE_SUFFIX: $(EXE_SUFFIX))
- endif
-
+ ifeq ($$($1_TYPE), EXECUTABLE)
+ $1_PREFIX :=
ifeq ($$($1_SUFFIX), )
$1_SUFFIX := $(EXE_SUFFIX)
endif
+ else
+ $1_PREFIX := $(LIBRARY_PREFIX)
+ ifeq ($$($1_TYPE), LIBRARY)
+ ifeq ($$($1_SUFFIX), )
+ $1_SUFFIX := $(SHARED_LIBRARY_SUFFIX)
+ endif
+ else ifeq ($$($1_TYPE), STATIC_LIBRARY)
+ ifeq ($$($1_SUFFIX), )
+ $1_SUFFIX := $(STATIC_LIBRARY_SUFFIX)
+ endif
+ endif
+ endif
- $1_BASENAME:=$$($1_PROGRAM)$$($1_SUFFIX)
- $1_TARGET:=$$($1_OUTPUT_DIR)/$$($1_BASENAME)
- $1_NOSUFFIX:=$$($1_PROGRAM)
+ ifneq ($$($1_NAME), $(basename $$($1_NAME)))
+ $$(error NAME must not contain any directory path in $1)
endif
- $1_SAFE_NAME := $$(strip $$(subst /,_, $1))
+ ifneq ($(findstring $$($1_SUFFIX), $$($1_NAME)), )
+ $$(error NAME should be specified without suffix: $$($1_SUFFIX) in $1)
+ endif
+ ifneq ($(findstring $$($1_PREFIX), $$($1_NAME)), )
+ $$(error NAME should be specified without prefix: $$($1_PREFIX) in $1)
+ endif
+ ifeq ($$($1_OUTPUT_DIR), )
+ $$(error OUTPUT_DIR is missing in $1)
+ endif
+ ifneq ($$($1_MANIFEST), )
+ ifeq ($$($1_MANIFEST_VERSION), )
+ $$(error If MANIFEST is provided, then MANIFEST_VERSION is required in $1)
+ endif
+ endif
- ifeq (,$$($1_TARGET))
- $$(error Neither PROGRAM, LIBRARY nor STATIC_LIBRARY has been specified for SetupNativeCompilation)
- endif
+ $1_BASENAME := $$($1_PREFIX)$$($1_NAME)$$($1_SUFFIX)
+ $1_TARGET := $$($1_OUTPUT_DIR)/$$($1_BASENAME)
+ $1_NOSUFFIX := $$($1_PREFIX)$$($1_NAME)
+ $1_SAFE_NAME := $$(strip $$(subst /,_, $1))
# Setup the toolchain to be used
$$(call SetIfEmpty, $1_TOOLCHAIN, TOOLCHAIN_DEFAULT)
@@ -499,41 +462,35 @@
$$(call SetIfEmpty, $1_SYSROOT_CFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_CFLAGS))
$$(call SetIfEmpty, $1_SYSROOT_LDFLAGS, $$($$($1_TOOLCHAIN)_SYSROOT_LDFLAGS))
- ifneq ($$($1_MANIFEST), )
- ifeq ($$($1_MANIFEST_VERSION), )
- $$(error If MANIFEST is provided, then MANIFEST_VERSION is required in $1)
- endif
- endif
-
# Make sure the dirs exist.
- $$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR))
- $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),, \
+ $$(call MakeDir, $$($1_OBJECT_DIR) $$($1_OUTPUT_DIR))
+ $$(foreach d, $$($1_SRC), $$(if $$(wildcard $$d), , \
$$(error SRC specified to SetupNativeCompilation $1 contains missing directory $$d)))
# Find all files in the source trees. Preserve order.
- $1_SRCS := $$(foreach s, $$($1_SRC), $$(call CacheFind,$$(s)))
+ $1_SRCS := $$(foreach s, $$($1_SRC), $$(call CacheFind, $$(s)))
$1_SRCS := $$(filter $$(NATIVE_SOURCE_EXTENSIONS), $$($1_SRCS))
# Extract the C/C++ files.
ifneq ($$($1_EXCLUDE_PATTERNS), )
# 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 \
+ $$(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_ALL_EXCLUDE_FILES += $$($1_EXCLUDE_FILES)
endif
- ifneq ($$($1_ALL_EXCLUDE_FILES),)
+ ifneq ($$($1_ALL_EXCLUDE_FILES), )
$1_EXCLUDE_FILES_PAT := $$($1_ALL_EXCLUDE_FILES) \
- $$(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))
+ $$(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
ifneq ($$($1_INCLUDE_FILES), )
- $1_INCLUDE_FILES_PAT := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
- $1_SRCS := $$(filter $$($1_INCLUDE_FILES_PAT),$$($1_SRCS))
+ $1_INCLUDE_FILES_PAT := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$($1_INCLUDE_FILES)))
+ $1_SRCS := $$(filter $$($1_INCLUDE_FILES_PAT), $$($1_SRCS))
endif
# There can be only a single bin dir root, no need to foreach over the roots.
$1_BINS := $$(wildcard $$($1_OBJECT_DIR)/*$(OBJ_SUFFIX))
@@ -541,29 +498,29 @@
# and we have a list of all existing object files: $$($1_BINS)
# Prepend the source/bin path to the filter expressions. Then do the filtering.
- ifneq ($$($1_INCLUDES),)
- $1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
- $1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
+ ifneq ($$($1_INCLUDES), )
+ $1_SRC_INCLUDES := $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_INCLUDES))))
+ $1_SRCS := $$(filter $$($1_SRC_INCLUDES), $$($1_SRCS))
endif
- ifneq ($$($1_EXCLUDES),)
- $1_SRC_EXCLUDES := $$(addsuffix /%,$$($1_EXCLUDES))
- $1_SRC_EXCLUDES += $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
- $1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
+ ifneq ($$($1_EXCLUDES), )
+ $1_SRC_EXCLUDES := $$(addsuffix /%, $$($1_EXCLUDES))
+ $1_SRC_EXCLUDES += $$(foreach i, $$($1_SRC), $$(addprefix $$i/, $$(addsuffix /%, $$($1_EXCLUDES))))
+ $1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES), $$($1_SRCS))
endif
$1_SRCS += $$($1_EXTRA_FILES)
- ifeq (,$$($1_SRCS))
+ ifeq ($$($1_SRCS), )
$$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
endif
# Calculate the expected output from compiling the sources
$1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS)))
- $1_EXPECTED_OBJS := $$(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?
- $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.
- ifneq ($$($1_SUPERFLUOUS_OBJS),)
+ ifneq ($$($1_SUPERFLUOUS_OBJS), )
$$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
endif
# Sort to remove dupliates and provide a reproducable order on the input files to the linker.
@@ -571,64 +528,62 @@
# Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS, and/or OPENJDK_TARGET_OS plus
# OPENJDK_TARGET_CPU pair 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)) \
$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU))
- ifneq ($(DEBUG_LEVEL),release)
+ ifneq ($(DEBUG_LEVEL), release)
# Pickup extra debug dependent variables for CFLAGS
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_debug)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
else
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
- $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_release)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
+ $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
endif
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS.
- $1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
- ifneq ($(DEBUG_LEVEL),release)
+ $1_EXTRA_CXXFLAGS := $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
+ ifneq ($(DEBUG_LEVEL), release)
# Pickup extra debug dependent variables for CXXFLAGS
- $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
- $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
- $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
+ $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_debug)
+ $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
+ $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
else
- $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
- $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
- $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
+ $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_release)
+ $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
+ $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
endif
# If no C++ flags are explicitly set, default to using the C flags.
# After that, we can set additional C++ flags that should not interfere
# with the mechanism for copying the C flags by default.
- ifeq ($$($1_CXXFLAGS),)
- $1_CXXFLAGS:=$$($1_CFLAGS)
+ ifeq ($$($1_CXXFLAGS), )
+ $1_CXXFLAGS := $$($1_CFLAGS)
endif
- ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),)
- $1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS)
+ ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)), )
+ $1_EXTRA_CXXFLAGS := $$($1_EXTRA_CFLAGS)
endif
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
- $$(call SetIfEmpty, $1_CFLAGS_DEBUG_SYMBOLS, $(CFLAGS_DEBUG_SYMBOLS))
- $$(call SetIfEmpty, $1_CXXFLAGS_DEBUG_SYMBOLS, $(CXXFLAGS_DEBUG_SYMBOLS))
- $1_EXTRA_CFLAGS += $$($1_CFLAGS_DEBUG_SYMBOLS)
- $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_DEBUG_SYMBOLS)
+ $1_EXTRA_CFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
+ $1_EXTRA_CXXFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
endif
- ifneq (,$$($1_REORDER))
+ ifneq ($$($1_REORDER), )
$1_EXTRA_CFLAGS += $$(C_FLAG_REORDER)
- $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER)
+ $1_EXTRA_CXXFLAGS += $$(C_FLAG_REORDER)
endif
# Pass the library name for static JNI library naming
- ifneq ($$($1_STATIC_LIBRARY),)
- $1_EXTRA_CFLAGS += -DLIBRARY_NAME=$$($1_STATIC_LIBRARY)
- $1_EXTRA_CXXFLAGS += -DLIBRARY_NAME=$$($1_STATIC_LIBRARY)
+ ifeq ($$($1_TYPE), STATIC_LIBRARY)
+ $1_EXTRA_CFLAGS += -DLIBRARY_NAME=$$($1_NAME)
+ $1_EXTRA_CXXFLAGS += -DLIBRARY_NAME=$$($1_NAME)
endif
# Pick up disabled warnings, if possible on this platform.
- ifneq ($(DISABLE_WARNING_PREFIX),)
+ ifneq ($(DISABLE_WARNING_PREFIX), )
$1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)))
@@ -639,8 +594,8 @@
# Check if warnings should be considered errors.
# Pick first binary and toolchain specific, then binary specific, then general setting.
- ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)),)
- ifeq ($$($1_WARNINGS_AS_ERRORS),)
+ ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), )
+ ifeq ($$($1_WARNINGS_AS_ERRORS), )
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$(WARNINGS_AS_ERRORS)
else
$1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$($1_WARNINGS_AS_ERRORS)
@@ -692,11 +647,12 @@
$1_GENERATED_PCH_SRC := $$($1_OBJECT_DIR)/$1_pch.cpp
$1_GENERATED_PCH_OBJ := $$($1_OBJECT_DIR)/$1_pch.obj
- $$(eval $$(call add_native_source,$1,$$($1_GENERATED_PCH_SRC), \
- $$($1_OBJECT_DIR),,, \
- $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_SYSROOT_CFLAGS) \
- -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \
- $$($1_CXX),,no_this_file))
+ $$(eval $$(call SetupCompileNativeFile, $1_$$(notdir $$($1_GENERATED_PCH_SRC)), \
+ FILE := $$($1_GENERATED_PCH_SRC), \
+ BASE := $1, \
+ EXTRA_CXXFLAGS := -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \
+ DISABLE_THIS_FILE_DEFINE := true, \
+ ))
$1_USE_PCH_FLAGS := \
-Fp$$($1_PCH_FILE) -Yu$$(notdir $$($1_PRECOMPILED_HEADER))
@@ -739,18 +695,18 @@
endif
endif
- # Now call add_native_source for each source file we are going to compile.
- $$(foreach p,$$($1_SRCS), \
- $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \
- $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS), \
- $$($1_CC), \
- $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_SYSROOT_CFLAGS), \
- $$($1_CXX), $$($1_ASFLAGS))))
+ # Now call SetupCompileNativeFile for each source file we are going to compile.
+ $$(foreach file, $$($1_SRCS), \
+ $$(eval $$(call SetupCompileNativeFile, $1_$$(notdir $$(file)),\
+ FILE := $$(file), \
+ BASE := $1, \
+ )) \
+ )
# Setup rule for printing progress info when compiling source files.
# This is a rough heuristic and may not always print accurate information.
$$($1_BUILD_INFO): $$($1_SRCS) $$($1_COMPILE_VARDEPS_FILE)
- ifeq ($$(wildcard $$($1_TARGET)),)
+ ifeq ($$(wildcard $$($1_TARGET)), )
$(ECHO) 'Creating $$(subst $$(OUTPUTDIR)/,,$$($1_TARGET)) from $$(words \
$$(filter-out %.vardeps, $$?)) file(s)'
else
@@ -763,10 +719,10 @@
# On windows we need to create a resource file
ifeq ($(OPENJDK_TARGET_OS), windows)
- ifneq (,$$($1_VERSIONINFO_RESOURCE))
- $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res
- $1_RES_DEP:=$$($1_RES).d
- $1_RES_DEP_TARGETS:=$$($1_RES).d.targets
+ ifneq ($$($1_VERSIONINFO_RESOURCE), )
+ $1_RES := $$($1_OBJECT_DIR)/$$($1_BASENAME).res
+ $1_RES_DEP := $$($1_RES).d
+ $1_RES_DEP_TARGETS := $$($1_RES).d.targets
-include $$($1_RES_DEP)
-include $$($1_RES_DEP_TARGETS)
@@ -775,7 +731,7 @@
$$($1_RES).vardeps)
$$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE)
- $$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$(notdir $$($1_TARGET))))
+ $$(call LogInfo, Compiling resource $$(notdir $$($1_VERSIONINFO_RESOURCE)) (for $$($1_BASENAME)))
$$(call MakeDir, $$(@D) $$($1_OBJECT_DIR))
$$(call ExecuteWithLog, $$@, \
$$($1_RC) $$($1_RC_FLAGS) $$($1_SYSROOT_CFLAGS) $(CC_OUT_OPTION)$$@ \
@@ -798,10 +754,10 @@
endif
endif
- ifneq ($(DISABLE_MAPFILES),true)
+ ifneq ($(DISABLE_MAPFILES), true)
$1_REAL_MAPFILE := $$($1_MAPFILE)
- ifneq ($(OPENJDK_TARGET_OS),windows)
- ifneq (,$$($1_REORDER))
+ ifneq ($(OPENJDK_TARGET_OS), windows)
+ ifneq ($$($1_REORDER), )
$1_REAL_MAPFILE := $$($1_OBJECT_DIR)/mapfile
$$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER)
@@ -815,9 +771,9 @@
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables
# for LDFLAGS and LIBS
- $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
- $1_EXTRA_LIBS:=$$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
- ifneq (,$$($1_REAL_MAPFILE))
+ $1_EXTRA_LDFLAGS := $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
+ $1_EXTRA_LIBS := $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
+ ifneq ($$($1_REAL_MAPFILE), )
$1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
endif
@@ -835,7 +791,7 @@
ifeq ($$($1_COPY_DEBUG_SYMBOLS), true)
ifneq ($$($1_DEBUG_SYMBOLS), false)
# Only copy debug symbols for dynamic libraries and programs.
- ifeq ($$($1_STATIC_LIBRARY), )
+ ifneq ($$($1_TYPE), STATIC_LIBRARY)
# Generate debuginfo files.
ifeq ($(OPENJDK_TARGET_OS), windows)
$1_EXTRA_LDFLAGS += -debug "-pdb:$$($1_OUTPUT_DIR)/$$($1_NOSUFFIX).pdb" \
@@ -899,17 +855,17 @@
endif
endif
- ifneq (,$$($1_LIBRARY))
+ ifeq ($$($1_TYPE), LIBRARY)
# Generating a dynamic library.
$1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME))
ifeq ($(OPENJDK_TARGET_OS), windows)
- $1_EXTRA_LDFLAGS += "-implib:$$($1_OBJECT_DIR)/$$($1_LIBRARY).lib"
+ $1_EXTRA_LDFLAGS += "-implib:$$($1_OBJECT_DIR)/$$($1_NAME).lib"
# Create a rule for the import lib so that other rules may depend on it
- $$($1_OBJECT_DIR)/$$($1_LIBRARY).lib: $$($1_TARGET)
+ $$($1_OBJECT_DIR)/$$($1_NAME).lib: $$($1_TARGET)
endif
# Create loadmap on AIX. Helps in diagnosing some problems.
- ifneq ($(COMPILER_BINDCMD_FILE_FLAG),)
+ ifneq ($(COMPILER_BINDCMD_FILE_FLAG), )
$1_EXTRA_LDFLAGS += $(COMPILER_BINDCMD_FILE_FLAG)$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).loadmap
endif
@@ -924,7 +880,7 @@
# 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 ($(COMPILER_COMMAND_FILE_FLAG),)
+ ifneq ($(COMPILER_COMMAND_FILE_FLAG), )
$1_LD_OBJ_ARG := $(COMPILER_COMMAND_FILE_FLAG)$$($1_OBJ_FILE_LIST)
else
# ...except for toolchains which don't support them.
@@ -986,7 +942,7 @@
endif
- ifneq (,$$($1_STATIC_LIBRARY))
+ ifeq ($$($1_TYPE), STATIC_LIBRARY)
$1_VARDEPS := $$($1_AR) $$($1_ARFLAGS) $$($1_LIBS) \
$$($1_EXTRA_LIBS)
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
@@ -1000,7 +956,7 @@
endif
$$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE) $$(STATIC_MAPFILE_DEP)
- $$(call LogInfo, Archiving $$($1_STATIC_LIBRARY))
+ $$(call LogInfo, Building static library $$($1_BASENAME))
$$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \
$$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_ALL_OBJS) \
$$($1_RES))
@@ -1013,7 +969,7 @@
endif
endif
- ifneq (,$$($1_PROGRAM))
+ ifeq ($$($1_TYPE), EXECUTABLE)
# A executable binary has been specified, setup the target for it.
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
$$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \
@@ -1038,13 +994,13 @@
$$($1_LIBS) $$($1_EXTRA_LIBS))
ifeq ($(OPENJDK_TARGET_OS), windows)
ifneq ($$($1_MANIFEST), )
- $$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_PROGRAM).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1
+ $$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1
endif
endif
# This only works if the openjdk_codesign identity is present on the system. Let
# silently fail otherwise.
- ifneq (,$(CODESIGN))
- ifneq (,$$($1_CODESIGN))
+ ifneq ($(CODESIGN), )
+ ifneq ($$($1_CODESIGN), )
$(CODESIGN) -s openjdk_codesign $$@
endif
endif
diff -r c3ec048aad63 -r ece10494786c make/common/TestFilesCompilation.gmk
--- a/make/common/TestFilesCompilation.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/common/TestFilesCompilation.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, 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
@@ -59,13 +59,15 @@
ifeq ($$($1_TYPE), LIBRARY)
$1_PREFIX = lib
$1_OUTPUT_SUBDIR := lib
- $1_CFLAGS := $(CFLAGS_TESTLIB) $(CFLAGS_WARNINGS_ARE_ERRORS)
+ $1_CFLAGS := $(CFLAGS_TESTLIB)
$1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
+ $1_COMPILATION_TYPE := LIBRARY
else ifeq ($$($1_TYPE), PROGRAM)
$1_PREFIX = exe
$1_OUTPUT_SUBDIR := bin
- $1_CFLAGS := $(CFLAGS_TESTEXE) $(CFLAGS_WARNINGS_ARE_ERRORS)
+ $1_CFLAGS := $(CFLAGS_TESTEXE)
$1_LDFLAGS := $(LDFLAGS_TESTEXE)
+ $1_COMPILATION_TYPE := EXECUTABLE
else
$$(error Unknown type: $$($1_TYPE))
endif
@@ -78,7 +80,8 @@
$$(foreach file, $$($1_FILE_LIST),\
$$(eval name := $$(strip $$(patsubst $$($1_PREFIX)%, %, $$(basename $$(notdir $$(file)))))) \
$$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \
- $$($1_TYPE) := $$(name), \
+ NAME := $$(name), \
+ TYPE := $$($1_COMPILATION_TYPE), \
SRC := $$(patsubst %/,%,$$(dir $$(file))), \
INCLUDE_FILES := $$(notdir $$(file)), \
OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$($1_PREFIX)$$(name), \
diff -r c3ec048aad63 -r ece10494786c make/conf/jib-profiles.js
--- a/make/conf/jib-profiles.js Thu Mar 01 16:35:36 2018 -0500
+++ b/make/conf/jib-profiles.js Fri Mar 02 21:00:12 2018 +0100
@@ -743,11 +743,22 @@
dependencies: [ "devkit" ],
environment_path: input.get("devkit", "install_path")
+ "/Xcode.app/Contents/Developer/usr/bin"
- }
+ };
profiles["run-test"] = concatObjects(profiles["run-test"], macosxRunTestExtra);
profiles["run-test-jprt"] = concatObjects(profiles["run-test-jprt"], macosxRunTestExtra);
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"], macosxRunTestExtra);
}
+ // On windows we want the debug symbols available at test time
+ if (input.build_os == "windows") {
+ windowsRunTestPrebuiltExtra = {
+ dependencies: [ testedProfile + ".jdk_symbols" ],
+ environment: {
+ "PRODUCT_SYMBOLS_HOME": input.get(testedProfile + ".jdk_symbols", "home_path"),
+ }
+ };
+ profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
+ windowsRunTestPrebuiltExtra);
+ }
// Generate the missing platform attributes
profiles = generatePlatformAttributes(profiles);
diff -r c3ec048aad63 -r ece10494786c make/data/x11wrappergen/functions.txt
--- a/make/data/x11wrappergen/functions.txt Thu Mar 01 16:35:36 2018 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-!XGetWindowProperty|int
- w long
- property Atom
- long_offset long
- long_length long
- delete Bool
- req_type Atom
- actual_type Atom out
- actual_format int out
- number_of_items long out
- bytes_after long out
- data pointer out free
-!XQueryTree|int
- w long
- root long out
- parent long out
- children pointer out free
- nchildren int out
-!XTranslateCoordinates|int
- scr_w long
- dest_w long
- src_x int
- src_y int
- dest_x int out
- dest_y int out
- child long out
diff -r c3ec048aad63 -r ece10494786c make/data/x11wrappergen/sizes-32.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/x11wrappergen/sizes-32.txt Fri Mar 02 21:00:12 2018 +0100
@@ -0,0 +1,1017 @@
+Atom 4
+AwtGraphicsConfigData 128
+AwtGraphicsConfigData.awt_cmap 4
+AwtGraphicsConfigData.AwtColorMatch 56
+AwtGraphicsConfigData.awt_depth 0
+AwtGraphicsConfigData.awtImage 52
+AwtGraphicsConfigData.awt_num_colors 48
+AwtGraphicsConfigData.awt_visInfo 8
+AwtGraphicsConfigData.color_data 84
+AwtGraphicsConfigData.glxInfo 88
+AwtGraphicsConfigData.isTranslucencySupported 92
+AwtGraphicsConfigData.monoImage 60
+AwtGraphicsConfigData.monoPixmap 64
+AwtGraphicsConfigData.monoPixmapGC 76
+AwtGraphicsConfigData.monoPixmapHeight 72
+AwtGraphicsConfigData.monoPixmapWidth 68
+AwtGraphicsConfigData.pixelStride 80
+AwtGraphicsConfigData.renderPictFormat 96
+awtImageData 304
+awtImageData.clrdata 16
+awtImageData.convert 48
+awtImageData.Depth 0
+awtImageData.wsImageFormat 4
+AwtScreenData 24
+AwtScreenData.blackpixel 12
+AwtScreenData.configs 20
+AwtScreenData.defaultConfig 16
+AwtScreenData.numConfigs 0
+AwtScreenData.root 4
+AwtScreenData.whitepixel 8
+Bool 4
+ColorData 48
+ColorData.awt_Colors 0
+ColorData.awt_icmLUT2Colors 12
+ColorData.awt_icmLUT 8
+ColorData.awt_numICMcolors 4
+ColorData.img_clr_tbl 20
+ColorData.img_grays 16
+ColorData.img_oda_blue 32
+ColorData.img_oda_green 28
+ColorData.img_oda_red 24
+ColorData.pGrayInverseLutData 36
+ColorData.representsPrimaries 44
+ColorData.screendata 40
+ColorEntry 4
+ColorEntry.b 2
+ColorEntry.flags 3
+ColorEntry.g 1
+ColorEntry.r 0
+Depth 12
+Depth.depth 0
+Depth.nvisuals 4
+Depth.visuals 8
+int 4
+long 4
+PropMwmHints 20
+PropMwmHints.decorations 8
+PropMwmHints.flags 0
+PropMwmHints.functions 4
+PropMwmHints.inputMode 12
+PropMwmHints.status 16
+ptr 4
+Screen 80
+Screen.backing_store 68
+Screen.black_pixel 56
+Screen.cmap 48
+Screen.default_gc 44
+Screen.depths 32
+Screen.display 4
+Screen.ext_data 0
+ScreenFormat 16
+ScreenFormat.bits_per_pixel 8
+ScreenFormat.depth 4
+ScreenFormat.ext_data 0
+ScreenFormat.scanline_pad 12
+Screen.height 16
+Screen.max_maps 60
+Screen.mheight 24
+Screen.min_maps 64
+Screen.mwidth 20
+Screen.ndepths 28
+Screen.root 8
+Screen.root_depth 36
+Screen.root_input_mask 76
+Screen.root_visual 40
+Screen.save_unders 72
+Screen.white_pixel 52
+Screen.width 12
+short 2
+Visual 32
+Visual.bits_per_rgb 24
+Visual.blue_mask 20
+Visual.class 8
+Visual.ext_data 0
+Visual.green_mask 16
+Visual.map_entries 28
+Visual.red_mask 12
+Visual.visualid 4
+Window 4
+XAnyEvent 20
+XAnyEvent.display 12
+XAnyEvent.send_event 8
+XAnyEvent.serial 4
+XAnyEvent.type 0
+XAnyEvent.window 16
+XArc 12
+XArc.angle1 8
+XArc.angle2 10
+XArc.height 6
+XArc.width 4
+XArc.x 0
+XArc.y 2
+XButtonEvent 60
+XButtonEvent.button 52
+XButtonEvent.display 12
+XButtonEvent.root 20
+XButtonEvent.same_screen 56
+XButtonEvent.send_event 8
+XButtonEvent.serial 4
+XButtonEvent.state 48
+XButtonEvent.subwindow 24
+XButtonEvent.time 28
+XButtonEvent.type 0
+XButtonEvent.window 16
+XButtonEvent.x 32
+XButtonEvent.x_root 40
+XButtonEvent.y 36
+XButtonEvent.y_root 44
+XChar2b 2
+XChar2b.byte1 0
+XChar2b.byte2 1
+XCharStruct 12
+XCharStruct.ascent 6
+XCharStruct.attributes 10
+XCharStruct.descent 8
+XCharStruct.lbearing 0
+XCharStruct.rbearing 2
+XCharStruct.width 4
+XCirculateEvent 28
+XCirculateEvent.display 12
+XCirculateEvent.event 16
+XCirculateEvent.place 24
+XCirculateEvent.send_event 8
+XCirculateEvent.serial 4
+XCirculateEvent.type 0
+XCirculateEvent.window 20
+XCirculateRequestEvent 28
+XCirculateRequestEvent.display 12
+XCirculateRequestEvent.parent 16
+XCirculateRequestEvent.place 24
+XCirculateRequestEvent.send_event 8
+XCirculateRequestEvent.serial 4
+XCirculateRequestEvent.type 0
+XCirculateRequestEvent.window 20
+XClassHint 8
+XClassHint.res_class 4
+XClassHint.res_name 0
+XClientMessageEvent 48
+XClientMessageEvent.data 28
+XClientMessageEvent.display 12
+XClientMessageEvent.format 24
+XClientMessageEvent.message_type 20
+XClientMessageEvent.send_event 8
+XClientMessageEvent.serial 4
+XClientMessageEvent.type 0
+XClientMessageEvent.window 16
+XColor 12
+XColor.blue 8
+XColor.flags 10
+XColor.green 6
+XColormapEvent 32
+XColormapEvent.colormap 20
+XColormapEvent.display 12
+XColormapEvent.new 24
+XColormapEvent.send_event 8
+XColormapEvent.serial 4
+XColormapEvent.state 28
+XColormapEvent.type 0
+XColormapEvent.window 16
+XColor.pad 11
+XColor.pixel 0
+XColor.red 4
+XComposeStatus 8
+XComposeStatus.chars_matched 4
+XComposeStatus.compose_ptr 0
+XConfigureEvent 52
+XConfigureEvent.above 44
+XConfigureEvent.border_width 40
+XConfigureEvent.display 12
+XConfigureEvent.event 16
+XConfigureEvent.height 36
+XConfigureEvent.override_redirect 48
+XConfigureEvent.send_event 8
+XConfigureEvent.serial 4
+XConfigureEvent.type 0
+XConfigureEvent.width 32
+XConfigureEvent.window 20
+XConfigureEvent.x 24
+XConfigureEvent.y 28
+XConfigureRequestEvent 56
+XConfigureRequestEvent.above 44
+XConfigureRequestEvent.border_width 40
+XConfigureRequestEvent.detail 48
+XConfigureRequestEvent.display 12
+XConfigureRequestEvent.height 36
+XConfigureRequestEvent.parent 16
+XConfigureRequestEvent.send_event 8
+XConfigureRequestEvent.serial 4
+XConfigureRequestEvent.type 0
+XConfigureRequestEvent.value_mask 52
+XConfigureRequestEvent.width 32
+XConfigureRequestEvent.window 20
+XConfigureRequestEvent.x 24
+XConfigureRequestEvent.y 28
+XCreateWindowEvent 48
+XCreateWindowEvent.border_width 40
+XCreateWindowEvent.display 12
+XCreateWindowEvent.height 36
+XCreateWindowEvent.override_redirect 44
+XCreateWindowEvent.parent 16
+XCreateWindowEvent.send_event 8
+XCreateWindowEvent.serial 4
+XCreateWindowEvent.type 0
+XCreateWindowEvent.width 32
+XCreateWindowEvent.window 20
+XCreateWindowEvent.x 24
+XCreateWindowEvent.y 28
+XCrossingEvent 68
+XCrossingEvent.detail 52
+XCrossingEvent.display 12
+XCrossingEvent.focus 60
+XCrossingEvent.mode 48
+XCrossingEvent.root 20
+XCrossingEvent.same_screen 56
+XCrossingEvent.send_event 8
+XCrossingEvent.serial 4
+XCrossingEvent.state 64
+XCrossingEvent.subwindow 24
+XCrossingEvent.time 28
+XCrossingEvent.type 0
+XCrossingEvent.window 16
+XCrossingEvent.x 32
+XCrossingEvent.x_root 40
+XCrossingEvent.y 36
+XCrossingEvent.y_root 44
+XdbeSwapInfo 8
+XdbeSwapInfo.swap_action 4
+XdbeSwapInfo.swap_window 0
+XDestroyWindowEvent 24
+XDestroyWindowEvent.display 12
+XDestroyWindowEvent.event 16
+XDestroyWindowEvent.send_event 8
+XDestroyWindowEvent.serial 4
+XDestroyWindowEvent.type 0
+XDestroyWindowEvent.window 20
+XErrorEvent 20
+XErrorEvent.display 4
+XErrorEvent.error_code 16
+XErrorEvent.minor_code 18
+XErrorEvent.request_code 17
+XErrorEvent.resourceid 8
+XErrorEvent.serial 12
+XErrorEvent.type 0
+XEvent 96
+XEvent.pad 0
+XEvent.type 0
+XEvent.xany 0
+XEvent.xbutton 0
+XEvent.xcirculate 0
+XEvent.xcirculaterequest 0
+XEvent.xclient 0
+XEvent.xcolormap 0
+XEvent.xconfigure 0
+XEvent.xconfigurerequest 0
+XEvent.xcreatewindow 0
+XEvent.xcrossing 0
+XEvent.xdestroywindow 0
+XEvent.xerror 0
+XEvent.xexpose 0
+XEvent.xfocus 0
+XEvent.xgraphicsexpose 0
+XEvent.xgravity 0
+XEvent.xkey 0
+XEvent.xkeymap 0
+XEvent.xmap 0
+XEvent.xmapping 0
+XEvent.xmaprequest 0
+XEvent.xmotion 0
+XEvent.xnoexpose 0
+XEvent.xproperty 0
+XEvent.xreparent 0
+XEvent.xresizerequest 0
+XEvent.xselection 0
+XEvent.xselectionclear 0
+XEvent.xselectionrequest 0
+XEvent.xunmap 0
+XEvent.xvisibility 0
+XExposeEvent 40
+XExposeEvent.count 36
+XExposeEvent.display 12
+XExposeEvent.height 32
+XExposeEvent.send_event 8
+XExposeEvent.serial 4
+XExposeEvent.type 0
+XExposeEvent.width 28
+XExposeEvent.window 16
+XExposeEvent.x 20
+XExposeEvent.y 24
+XExtCodes 16
+XExtCodes.extension 0
+XExtCodes.first_error 12
+XExtCodes.first_event 8
+XExtCodes.major_opcode 4
+XExtData 16
+XExtData.free_private 8
+XExtData.next 4
+XExtData.number 0
+XExtData.private_data 12
+XFocusChangeEvent 28
+XFocusChangeEvent.detail 24
+XFocusChangeEvent.display 12
+XFocusChangeEvent.mode 20
+XFocusChangeEvent.send_event 8
+XFocusChangeEvent.serial 4
+XFocusChangeEvent.type 0
+XFocusChangeEvent.window 16
+XFontProp 8
+XFontProp.card32 4
+XFontProp.name 0
+XFontSetExtents 16
+XFontSetExtents.max_ink_extent 0
+XFontSetExtents.max_logical_extent 8
+XFontStruct 80
+XFontStruct.all_chars_exist 28
+XFontStruct.ascent 72
+XFontStruct.descent 76
+XFontStruct.direction 8
+XFontStruct.ext_data 0
+XFontStruct.fid 4
+XFontStruct.max_bounds 56
+XFontStruct.max_byte1 24
+XFontStruct.max_char_or_byte2 16
+XFontStruct.min_bounds 44
+XFontStruct.min_byte1 20
+XFontStruct.min_char_or_byte2 12
+XFontStruct.n_properties 36
+XFontStruct.per_char 68
+XFontStruct.properties 40
+XGCValues 92
+XGCValues.arc_mode 40
+XGCValues.background 12
+XGCValues.cap_style 24
+XGCValues.clip_mask 80
+XGCValues.clip_x_origin 72
+XGCValues.clip_y_origin 76
+XGCValues.dashes 88
+XGCValues.dash_offset 84
+XGCValues.fill_rule 36
+XGCValues.fill_style 32
+XGCValues.font 60
+XGCValues.foreground 8
+XGCValues.function 0
+XGCValues.graphics_exposures 68
+XGCValues.join_style 28
+XGCValues.line_style 20
+XGCValues.line_width 16
+XGCValues.plane_mask 4
+XGCValues.stipple 48
+XGCValues.subwindow_mode 64
+XGCValues.tile 44
+XGCValues.ts_x_origin 52
+XGCValues.ts_y_origin 56
+XGraphicsExposeEvent 48
+XGraphicsExposeEvent.count 36
+XGraphicsExposeEvent.display 12
+XGraphicsExposeEvent.drawable 16
+XGraphicsExposeEvent.height 32
+XGraphicsExposeEvent.major_code 40
+XGraphicsExposeEvent.minor_code 44
+XGraphicsExposeEvent.send_event 8
+XGraphicsExposeEvent.serial 4
+XGraphicsExposeEvent.type 0
+XGraphicsExposeEvent.width 28
+XGraphicsExposeEvent.x 20
+XGraphicsExposeEvent.y 24
+XGravityEvent 32
+XGravityEvent.display 12
+XGravityEvent.event 16
+XGravityEvent.send_event 8
+XGravityEvent.serial 4
+XGravityEvent.type 0
+XGravityEvent.window 20
+XGravityEvent.x 24
+XGravityEvent.y 28
+XHostAddress 12
+XHostAddress.address 8
+XHostAddress.family 0
+XHostAddress.length 4
+XIconSize 24
+XIconSize.height_inc 20
+XIconSize.max_height 12
+XIconSize.max_width 8
+XIconSize.min_height 4
+XIconSize.min_width 0
+XIconSize.width_inc 16
+XImage 88
+XImage.bitmap_bit_order 28
+XImage.bitmap_pad 32
+XImage.bitmap_unit 24
+XImage.bits_per_pixel 44
+XImage.blue_mask 56
+XImage.byte_order 20
+XImage.bytes_per_line 40
+XImage.data 16
+XImage.depth 36
+XImage.f.add_pixel 84
+XImage.f.create_image 64
+XImage.f.destroy_image 68
+XImage.f.get_pixel 72
+XImage.format 12
+XImage.f.put_pixel 76
+XImage.f.sub_image 80
+XImage.green_mask 52
+XImage.height 4
+XImage.obdata 60
+XImage.red_mask 48
+XImage.width 0
+XImage.xoffset 8
+XIMCallback 8
+XIMCallback.callback 4
+XIMCallback.client_data 0
+XIMHotKeyTrigger 12
+XIMHotKeyTrigger.keysym 0
+XIMHotKeyTrigger.modifier 4
+XIMHotKeyTrigger.modifier_mask 8
+XIMHotKeyTriggers 8
+XIMHotKeyTriggers.key 4
+XIMHotKeyTriggers.num_hot_key 0
+XIMPreeditCaretCallbackStruct 12
+XIMPreeditCaretCallbackStruct.direction 4
+XIMPreeditCaretCallbackStruct.position 0
+XIMPreeditCaretCallbackStruct.style 8
+XIMPreeditDrawCallbackStruct 16
+XIMPreeditDrawCallbackStruct.caret 0
+XIMPreeditDrawCallbackStruct.chg_first 4
+XIMPreeditDrawCallbackStruct.chg_length 8
+XIMPreeditDrawCallbackStruct.text 12
+XIMPreeditStateNotifyCallbackStruct 4
+XIMPreeditStateNotifyCallbackStruct.state 0
+XIMStatusDrawCallbackStruct 8
+XIMStatusDrawCallbackStruct.data 4
+XIMStatusDrawCallbackStruct.type 0
+XIMStringConversionCallbackStruct 16
+XIMStringConversionCallbackStruct.direction 4
+XIMStringConversionCallbackStruct.factor 10
+XIMStringConversionCallbackStruct.operation 8
+XIMStringConversionCallbackStruct.position 0
+XIMStringConversionCallbackStruct.text 12
+XIMStringConversionText 16
+XIMStringConversionText.encoding_is_wchar 8
+XIMStringConversionText.feedback 4
+XIMStringConversionText.length 0
+XIMStringConversionText.string 12
+XIMStyles 8
+XIMStyles.count_styles 0
+XIMStyles.supported_styles 4
+XIMText 16
+XIMText.encoding_is_wchar 8
+XIMText.feedback 4
+XIMText.length 0
+XIMText.string 12
+XIMValuesList 8
+XIMValuesList.count_values 0
+XIMValuesList.supported_values 4
+XkbAccessXNotifyEvent 44
+XkbAccessXNotifyEvent.debounce_delay 40
+XkbAccessXNotifyEvent.detail 28
+XkbAccessXNotifyEvent.device 24
+XkbAccessXNotifyEvent.display 12
+XkbAccessXNotifyEvent.keycode 32
+XkbAccessXNotifyEvent.send_event 8
+XkbAccessXNotifyEvent.serial 4
+XkbAccessXNotifyEvent.sk_delay 36
+XkbAccessXNotifyEvent.time 16
+XkbAccessXNotifyEvent.type 0
+XkbAccessXNotifyEvent.xkb_type 20
+XkbActionMessageEvent 56
+XkbActionMessageEvent.device 24
+XkbActionMessageEvent.display 12
+XkbActionMessageEvent.group 40
+XkbActionMessageEvent.keycode 28
+XkbActionMessageEvent.key_event_follows 36
+XkbActionMessageEvent.message 48
+XkbActionMessageEvent.mods 44
+XkbActionMessageEvent.press 32
+XkbActionMessageEvent.send_event 8
+XkbActionMessageEvent.serial 4
+XkbActionMessageEvent.time 16
+XkbActionMessageEvent.type 0
+XkbActionMessageEvent.xkb_type 20
+XkbAnyEvent 28
+XkbAnyEvent.device 24
+XkbAnyEvent.display 12
+XkbAnyEvent.send_event 8
+XkbAnyEvent.serial 4
+XkbAnyEvent.time 16
+XkbAnyEvent.type 0
+XkbAnyEvent.xkb_type 20
+XkbBellNotifyEvent 60
+XkbBellNotifyEvent.bell_class 40
+XkbBellNotifyEvent.bell_id 44
+XkbBellNotifyEvent.device 24
+XkbBellNotifyEvent.display 12
+XkbBellNotifyEvent.duration 36
+XkbBellNotifyEvent.event_only 56
+XkbBellNotifyEvent.name 48
+XkbBellNotifyEvent.percent 28
+XkbBellNotifyEvent.pitch 32
+XkbBellNotifyEvent.send_event 8
+XkbBellNotifyEvent.serial 4
+XkbBellNotifyEvent.time 16
+XkbBellNotifyEvent.type 0
+XkbBellNotifyEvent.window 52
+XkbBellNotifyEvent.xkb_type 20
+XkbCompatMapNotifyEvent 44
+XkbCompatMapNotifyEvent.changed_groups 28
+XkbCompatMapNotifyEvent.device 24
+XkbCompatMapNotifyEvent.display 12
+XkbCompatMapNotifyEvent.first_si 32
+XkbCompatMapNotifyEvent.num_si 36
+XkbCompatMapNotifyEvent.num_total_si 40
+XkbCompatMapNotifyEvent.send_event 8
+XkbCompatMapNotifyEvent.serial 4
+XkbCompatMapNotifyEvent.time 16
+XkbCompatMapNotifyEvent.type 0
+XkbCompatMapNotifyEvent.xkb_type 20
+XkbControlsNotifyEvent 48
+XkbControlsNotifyEvent.changed_ctrls 28
+XkbControlsNotifyEvent.device 24
+XkbControlsNotifyEvent.display 12
+XkbControlsNotifyEvent.enabled_ctrl_changes 36
+XkbControlsNotifyEvent.enabled_ctrls 32
+XkbControlsNotifyEvent.event_type 45
+XkbControlsNotifyEvent.keycode 44
+XkbControlsNotifyEvent.num_groups 40
+XkbControlsNotifyEvent.req_major 46
+XkbControlsNotifyEvent.req_minor 47
+XkbControlsNotifyEvent.send_event 8
+XkbControlsNotifyEvent.serial 4
+XkbControlsNotifyEvent.time 16
+XkbControlsNotifyEvent.type 0
+XkbControlsNotifyEvent.xkb_type 20
+XkbEvent 96
+XkbEvent.accessx 0
+XkbEvent.any 0
+XkbEvent.bell 0
+XkbEvent.compat 0
+XkbEvent.core 0
+XkbEvent.ctrls 0
+XkbEvent.device 0
+XkbEvent.indicators 0
+XkbEvent.map 0
+XkbEvent.message 0
+XkbEvent.names 0
+XkbEvent.new_kbd 0
+XkbEvent.state 0
+XkbEvent.type 0
+XkbExtensionDeviceNotifyEvent 64
+XkbExtensionDeviceNotifyEvent.device 24
+XkbExtensionDeviceNotifyEvent.display 12
+XkbExtensionDeviceNotifyEvent.first_btn 40
+XkbExtensionDeviceNotifyEvent.led_class 56
+XkbExtensionDeviceNotifyEvent.led_id 60
+XkbExtensionDeviceNotifyEvent.leds_defined 48
+XkbExtensionDeviceNotifyEvent.led_state 52
+XkbExtensionDeviceNotifyEvent.num_btns 44
+XkbExtensionDeviceNotifyEvent.reason 28
+XkbExtensionDeviceNotifyEvent.send_event 8
+XkbExtensionDeviceNotifyEvent.serial 4
+XkbExtensionDeviceNotifyEvent.supported 32
+XkbExtensionDeviceNotifyEvent.time 16
+XkbExtensionDeviceNotifyEvent.type 0
+XkbExtensionDeviceNotifyEvent.unsupported 36
+XkbExtensionDeviceNotifyEvent.xkb_type 20
+XkbIndicatorNotifyEvent 36
+XkbIndicatorNotifyEvent.changed 28
+XkbIndicatorNotifyEvent.device 24
+XkbIndicatorNotifyEvent.display 12
+XkbIndicatorNotifyEvent.send_event 8
+XkbIndicatorNotifyEvent.serial 4
+XkbIndicatorNotifyEvent.state 32
+XkbIndicatorNotifyEvent.time 16
+XkbIndicatorNotifyEvent.type 0
+XkbIndicatorNotifyEvent.xkb_type 20
+XkbMapNotifyEvent 80
+XkbMapNotifyEvent.changed 28
+XkbMapNotifyEvent.device 24
+XkbMapNotifyEvent.display 12
+XkbMapNotifyEvent.first_key_act 47
+XkbMapNotifyEvent.first_key_behavior 48
+XkbMapNotifyEvent.first_key_explicit 49
+XkbMapNotifyEvent.first_key_sym 46
+XkbMapNotifyEvent.first_modmap_key 50
+XkbMapNotifyEvent.first_type 36
+XkbMapNotifyEvent.first_vmodmap_key 51
+XkbMapNotifyEvent.flags 32
+XkbMapNotifyEvent.max_key_code 45
+XkbMapNotifyEvent.min_key_code 44
+XkbMapNotifyEvent.num_key_acts 56
+XkbMapNotifyEvent.num_key_behaviors 60
+XkbMapNotifyEvent.num_key_explicit 64
+XkbMapNotifyEvent.num_key_syms 52
+XkbMapNotifyEvent.num_modmap_keys 68
+XkbMapNotifyEvent.num_types 40
+XkbMapNotifyEvent.num_vmodmap_keys 72
+XkbMapNotifyEvent.send_event 8
+XkbMapNotifyEvent.serial 4
+XkbMapNotifyEvent.time 16
+XkbMapNotifyEvent.type 0
+XkbMapNotifyEvent.vmods 76
+XkbMapNotifyEvent.xkb_type 20
+XkbNamesNotifyEvent 76
+XkbNamesNotifyEvent.changed 28
+XkbNamesNotifyEvent.changed_groups 60
+XkbNamesNotifyEvent.changed_indicators 64
+XkbNamesNotifyEvent.changed_vmods 56
+XkbNamesNotifyEvent.device 24
+XkbNamesNotifyEvent.display 12
+XkbNamesNotifyEvent.first_key 68
+XkbNamesNotifyEvent.first_lvl 40
+XkbNamesNotifyEvent.first_type 32
+XkbNamesNotifyEvent.num_aliases 48
+XkbNamesNotifyEvent.num_keys 72
+XkbNamesNotifyEvent.num_lvls 44
+XkbNamesNotifyEvent.num_radio_groups 52
+XkbNamesNotifyEvent.num_types 36
+XkbNamesNotifyEvent.send_event 8
+XkbNamesNotifyEvent.serial 4
+XkbNamesNotifyEvent.time 16
+XkbNamesNotifyEvent.type 0
+XkbNamesNotifyEvent.xkb_type 20
+XkbNewKeyboardNotifyEvent 56
+XkbNewKeyboardNotifyEvent.changed 48
+XkbNewKeyboardNotifyEvent.device 24
+XkbNewKeyboardNotifyEvent.display 12
+XkbNewKeyboardNotifyEvent.max_key_code 36
+XkbNewKeyboardNotifyEvent.min_key_code 32
+XkbNewKeyboardNotifyEvent.old_device 28
+XkbNewKeyboardNotifyEvent.old_max_key_code 44
+XkbNewKeyboardNotifyEvent.old_min_key_code 40
+XkbNewKeyboardNotifyEvent.req_major 52
+XkbNewKeyboardNotifyEvent.req_minor 53
+XkbNewKeyboardNotifyEvent.send_event 8
+XkbNewKeyboardNotifyEvent.serial 4
+XkbNewKeyboardNotifyEvent.time 16
+XkbNewKeyboardNotifyEvent.type 0
+XkbNewKeyboardNotifyEvent.xkb_type 20
+XkbStateNotifyEvent 80
+XkbStateNotifyEvent.base_group 36
+XkbStateNotifyEvent.base_mods 52
+XkbStateNotifyEvent.changed 28
+XkbStateNotifyEvent.compat_grab_mods 69
+XkbStateNotifyEvent.compat_lookup_mods 71
+XkbStateNotifyEvent.compat_state 64
+XkbStateNotifyEvent.device 24
+XkbStateNotifyEvent.display 12
+XkbStateNotifyEvent.event_type 77
+XkbStateNotifyEvent.grab_mods 68
+XkbStateNotifyEvent.group 32
+XkbStateNotifyEvent.keycode 76
+XkbStateNotifyEvent.latched_group 40
+XkbStateNotifyEvent.latched_mods 56
+XkbStateNotifyEvent.locked_group 44
+XkbStateNotifyEvent.locked_mods 60
+XkbStateNotifyEvent.lookup_mods 70
+XkbStateNotifyEvent.mods 48
+XkbStateNotifyEvent.ptr_buttons 72
+XkbStateNotifyEvent.req_major 78
+XkbStateNotifyEvent.req_minor 79
+XkbStateNotifyEvent.send_event 8
+XkbStateNotifyEvent.serial 4
+XkbStateNotifyEvent.time 16
+XkbStateNotifyEvent.type 0
+XkbStateNotifyEvent.xkb_type 20
+XKeyboardControl 32
+XKeyboardControl.auto_repeat_mode 28
+XKeyboardControl.bell_duration 12
+XKeyboardControl.bell_percent 4
+XKeyboardControl.bell_pitch 8
+XKeyboardControl.key 24
+XKeyboardControl.key_click_percent 0
+XKeyboardControl.led 16
+XKeyboardControl.led_mode 20
+XKeyboardState 56
+XKeyboardState.auto_repeats 24
+XKeyboardState.bell_duration 12
+XKeyboardState.bell_percent 4
+XKeyboardState.bell_pitch 8
+XKeyboardState.global_auto_repeat 20
+XKeyboardState.key_click_percent 0
+XKeyboardState.led_mask 16
+XKeyEvent 60
+XKeyEvent.display 12
+XKeyEvent.keycode 52
+XKeyEvent.root 20
+XKeyEvent.same_screen 56
+XKeyEvent.send_event 8
+XKeyEvent.serial 4
+XKeyEvent.state 48
+XKeyEvent.subwindow 24
+XKeyEvent.time 28
+XKeyEvent.type 0
+XKeyEvent.window 16
+XKeyEvent.x 32
+XKeyEvent.x_root 40
+XKeyEvent.y 36
+XKeyEvent.y_root 44
+XKeymapEvent 52
+XKeymapEvent.display 12
+XKeymapEvent.key_vector 20
+XKeymapEvent.send_event 8
+XKeymapEvent.serial 4
+XKeymapEvent.type 0
+XKeymapEvent.window 16
+XMapEvent 28
+XMapEvent.display 12
+XMapEvent.event 16
+XMapEvent.override_redirect 24
+XMapEvent.send_event 8
+XMapEvent.serial 4
+XMapEvent.type 0
+XMapEvent.window 20
+XMappingEvent 32
+XMappingEvent.count 28
+XMappingEvent.display 12
+XMappingEvent.first_keycode 24
+XMappingEvent.request 20
+XMappingEvent.send_event 8
+XMappingEvent.serial 4
+XMappingEvent.type 0
+XMappingEvent.window 16
+XMapRequestEvent 24
+XMapRequestEvent.display 12
+XMapRequestEvent.parent 16
+XMapRequestEvent.send_event 8
+XMapRequestEvent.serial 4
+XMapRequestEvent.type 0
+XMapRequestEvent.window 20
+XmbTextItem 16
+XmbTextItem.chars 0
+XmbTextItem.delta 8
+XmbTextItem.font_set 12
+XmbTextItem.nchars 4
+XModifierKeymap 8
+XModifierKeymap.max_keypermod 0
+XModifierKeymap.modifiermap 4
+XMotionEvent 60
+XMotionEvent.display 12
+XMotionEvent.is_hint 52
+XMotionEvent.root 20
+XMotionEvent.same_screen 56
+XMotionEvent.send_event 8
+XMotionEvent.serial 4
+XMotionEvent.state 48
+XMotionEvent.subwindow 24
+XMotionEvent.time 28
+XMotionEvent.type 0
+XMotionEvent.window 16
+XMotionEvent.x 32
+XMotionEvent.x_root 40
+XMotionEvent.y 36
+XMotionEvent.y_root 44
+XNoExposeEvent 28
+XNoExposeEvent.display 12
+XNoExposeEvent.drawable 16
+XNoExposeEvent.major_code 20
+XNoExposeEvent.minor_code 24
+XNoExposeEvent.send_event 8
+XNoExposeEvent.serial 4
+XNoExposeEvent.type 0
+XOMCharSetList 8
+XOMCharSetList.charset_count 0
+XOMCharSetList.charset_list 4
+XOMFontInfo 12
+XOMFontInfo.font_name_list 8
+XOMFontInfo.font_struct_list 4
+XOMFontInfo.num_font 0
+XOMOrientation 8
+XOMOrientation.num_orientation 0
+XOMOrientation.orientation 4
+XPixmapFormatValues 12
+XPixmapFormatValues.bits_per_pixel 4
+XPixmapFormatValues.depth 0
+XPixmapFormatValues.scanline_pad 8
+XPoint 4
+XPoint.x 0
+XPoint.y 2
+XPropertyEvent 32
+XPropertyEvent.atom 20
+XPropertyEvent.display 12
+XPropertyEvent.send_event 8
+XPropertyEvent.serial 4
+XPropertyEvent.state 28
+XPropertyEvent.time 24
+XPropertyEvent.type 0
+XPropertyEvent.window 16
+XRectangle 8
+XRectangle.height 6
+XRectangle.width 4
+XRectangle.x 0
+XRectangle.y 2
+XRenderDirectFormat 16
+XRenderDirectFormat.alpha 12
+XRenderDirectFormat.alphaMask 14
+XRenderDirectFormat.blue 8
+XRenderDirectFormat.blueMask 10
+XRenderDirectFormat.green 4
+XRenderDirectFormat.greenMask 6
+XRenderDirectFormat.red 0
+XRenderDirectFormat.redMask 2
+XRenderPictFormat 32
+XRenderPictFormat.colormap 28
+XRenderPictFormat.depth 8
+XRenderPictFormat.direct 12
+XRenderPictFormat.id 0
+XRenderPictFormat.type 4
+XReparentEvent 40
+XReparentEvent.display 12
+XReparentEvent.event 16
+XReparentEvent.override_redirect 36
+XReparentEvent.parent 24
+XReparentEvent.send_event 8
+XReparentEvent.serial 4
+XReparentEvent.type 0
+XReparentEvent.window 20
+XReparentEvent.x 28
+XReparentEvent.y 32
+XResizeRequestEvent 28
+XResizeRequestEvent.display 12
+XResizeRequestEvent.height 24
+XResizeRequestEvent.send_event 8
+XResizeRequestEvent.serial 4
+XResizeRequestEvent.type 0
+XResizeRequestEvent.width 20
+XResizeRequestEvent.window 16
+XSegment 8
+XSegment.x1 0
+XSegment.x2 4
+XSegment.y1 2
+XSegment.y2 6
+XSelectionClearEvent 28
+XSelectionClearEvent.display 12
+XSelectionClearEvent.selection 20
+XSelectionClearEvent.send_event 8
+XSelectionClearEvent.serial 4
+XSelectionClearEvent.time 24
+XSelectionClearEvent.type 0
+XSelectionClearEvent.window 16
+XSelectionEvent 36
+XSelectionEvent.display 12
+XSelectionEvent.property 28
+XSelectionEvent.requestor 16
+XSelectionEvent.selection 20
+XSelectionEvent.send_event 8
+XSelectionEvent.serial 4
+XSelectionEvent.target 24
+XSelectionEvent.time 32
+XSelectionEvent.type 0
+XSelectionRequestEvent 40
+XSelectionRequestEvent.display 12
+XSelectionRequestEvent.owner 16
+XSelectionRequestEvent.property 32
+XSelectionRequestEvent.requestor 20
+XSelectionRequestEvent.selection 24
+XSelectionRequestEvent.send_event 8
+XSelectionRequestEvent.serial 4
+XSelectionRequestEvent.target 28
+XSelectionRequestEvent.time 36
+XSelectionRequestEvent.type 0
+XSetWindowAttributes 60
+XSetWindowAttributes.background_pixel 4
+XSetWindowAttributes.background_pixmap 0
+XSetWindowAttributes.backing_pixel 32
+XSetWindowAttributes.backing_planes 28
+XSetWindowAttributes.backing_store 24
+XSetWindowAttributes.bit_gravity 16
+XSetWindowAttributes.border_pixel 12
+XSetWindowAttributes.border_pixmap 8
+XSetWindowAttributes.colormap 52
+XSetWindowAttributes.cursor 56
+XSetWindowAttributes.do_not_propagate_mask 44
+XSetWindowAttributes.event_mask 40
+XSetWindowAttributes.override_redirect 48
+XSetWindowAttributes.save_under 36
+XSetWindowAttributes.win_gravity 20
+XSizeHints 72
+XSizeHints.base_height 64
+XSizeHints.base_width 60
+XSizeHints.flags 0
+XSizeHints.height 16
+XSizeHints.height_inc 40
+XSizeHints.max_aspect.x 52
+XSizeHints.max_aspect.y 56
+XSizeHints.max_height 32
+XSizeHints.max_width 28
+XSizeHints.min_aspect.x 44
+XSizeHints.min_aspect.y 48
+XSizeHints.min_height 24
+XSizeHints.min_width 20
+XSizeHints.width 12
+XSizeHints.width_inc 36
+XSizeHints.win_gravity 68
+XSizeHints.x 4
+XSizeHints.y 8
+XStandardColormap 40
+XStandardColormap.base_pixel 28
+XStandardColormap.blue_max 20
+XStandardColormap.blue_mult 24
+XStandardColormap.colormap 0
+XStandardColormap.green_max 12
+XStandardColormap.green_mult 16
+XStandardColormap.killid 36
+XStandardColormap.red_max 4
+XStandardColormap.red_mult 8
+XStandardColormap.visualid 32
+XTextItem 16
+XTextItem16 16
+XTextItem16.chars 0
+XTextItem16.delta 8
+XTextItem16.font 12
+XTextItem16.nchars 4
+XTextItem.chars 0
+XTextItem.delta 8
+XTextItem.font 12
+XTextItem.nchars 4
+XTextProperty 16
+XTextProperty.encoding 4
+XTextProperty.format 8
+XTextProperty.nitems 12
+XTextProperty.value 0
+XTimeCoord 8
+XTimeCoord.time 0
+XTimeCoord.x 4
+XTimeCoord.y 6
+XUnmapEvent 28
+XUnmapEvent.display 12
+XUnmapEvent.event 16
+XUnmapEvent.from_configure 24
+XUnmapEvent.send_event 8
+XUnmapEvent.serial 4
+XUnmapEvent.type 0
+XUnmapEvent.window 20
+XVisibilityEvent 24
+XVisibilityEvent.display 12
+XVisibilityEvent.send_event 8
+XVisibilityEvent.serial 4
+XVisibilityEvent.state 20
+XVisibilityEvent.type 0
+XVisibilityEvent.window 16
+XVisualInfo 40
+XVisualInfo.bits_per_rgb 36
+XVisualInfo.blue_mask 28
+XVisualInfo.class 16
+XVisualInfo.colormap_size 32
+XVisualInfo.depth 12
+XVisualInfo.green_mask 24
+XVisualInfo.red_mask 20
+XVisualInfo.screen 8
+XVisualInfo.visual 0
+XVisualInfo.visualid 4
+XwcTextItem 16
+XwcTextItem.chars 0
+XwcTextItem.delta 8
+XwcTextItem.font_set 12
+XwcTextItem.nchars 4
+XWindowAttributes 92
+XWindowAttributes.all_event_masks 72
+XWindowAttributes.backing_pixel 52
+XWindowAttributes.backing_planes 48
+XWindowAttributes.backing_store 44
+XWindowAttributes.bit_gravity 36
+XWindowAttributes.border_width 16
+XWindowAttributes.class 32
+XWindowAttributes.colormap 60
+XWindowAttributes.depth 20
+XWindowAttributes.do_not_propagate_mask 80
+XWindowAttributes.height 12
+XWindowAttributes.map_installed 64
+XWindowAttributes.map_state 68
+XWindowAttributes.override_redirect 84
+XWindowAttributes.root 28
+XWindowAttributes.save_under 56
+XWindowAttributes.screen 88
+XWindowAttributes.visual 24
+XWindowAttributes.width 8
+XWindowAttributes.win_gravity 40
+XWindowAttributes.x 0
+XWindowAttributes.y 4
+XWindowAttributes.your_event_mask 76
+XWindowChanges 28
+XWindowChanges.border_width 16
+XWindowChanges.height 12
+XWindowChanges.sibling 20
+XWindowChanges.stack_mode 24
+XWindowChanges.width 8
+XWindowChanges.x 0
+XWindowChanges.y 4
+XWMHints 36
+XWMHints.flags 0
+XWMHints.icon_mask 28
+XWMHints.icon_pixmap 12
+XWMHints.icon_window 16
+XWMHints.icon_x 20
+XWMHints.icon_y 24
+XWMHints.initial_state 8
+XWMHints.input 4
+XWMHints.window_group 32
diff -r c3ec048aad63 -r ece10494786c make/data/x11wrappergen/sizes-64.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/x11wrappergen/sizes-64.txt Fri Mar 02 21:00:12 2018 +0100
@@ -0,0 +1,1017 @@
+Atom 8
+AwtGraphicsConfigData 208
+AwtGraphicsConfigData.awt_cmap 8
+AwtGraphicsConfigData.AwtColorMatch 96
+AwtGraphicsConfigData.awt_depth 0
+AwtGraphicsConfigData.awtImage 88
+AwtGraphicsConfigData.awt_num_colors 80
+AwtGraphicsConfigData.awt_visInfo 16
+AwtGraphicsConfigData.color_data 144
+AwtGraphicsConfigData.glxInfo 152
+AwtGraphicsConfigData.isTranslucencySupported 160
+AwtGraphicsConfigData.monoImage 104
+AwtGraphicsConfigData.monoPixmap 112
+AwtGraphicsConfigData.monoPixmapGC 128
+AwtGraphicsConfigData.monoPixmapHeight 124
+AwtGraphicsConfigData.monoPixmapWidth 120
+AwtGraphicsConfigData.pixelStride 136
+AwtGraphicsConfigData.renderPictFormat 168
+awtImageData 560
+awtImageData.clrdata 16
+awtImageData.convert 48
+awtImageData.Depth 0
+awtImageData.wsImageFormat 4
+AwtScreenData 48
+AwtScreenData.blackpixel 24
+AwtScreenData.configs 40
+AwtScreenData.defaultConfig 32
+AwtScreenData.numConfigs 0
+AwtScreenData.root 8
+AwtScreenData.whitepixel 16
+Bool 4
+ColorData 88
+ColorData.awt_Colors 0
+ColorData.awt_icmLUT 16
+ColorData.awt_icmLUT2Colors 24
+ColorData.awt_numICMcolors 8
+ColorData.img_clr_tbl 40
+ColorData.img_grays 32
+ColorData.img_oda_blue 64
+ColorData.img_oda_green 56
+ColorData.img_oda_red 48
+ColorData.pGrayInverseLutData 72
+ColorData.representsPrimaries 84
+ColorData.screendata 80
+ColorEntry 4
+ColorEntry.b 2
+ColorEntry.flags 3
+ColorEntry.g 1
+ColorEntry.r 0
+Depth 16
+Depth.depth 0
+Depth.nvisuals 4
+Depth.visuals 8
+int 4
+long 8
+PropMwmHints 40
+PropMwmHints.decorations 16
+PropMwmHints.flags 0
+PropMwmHints.functions 8
+PropMwmHints.inputMode 24
+PropMwmHints.status 32
+ptr 8
+Screen 128
+Screen.backing_store 112
+Screen.black_pixel 96
+Screen.cmap 80
+Screen.default_gc 72
+Screen.depths 48
+Screen.display 8
+Screen.ext_data 0
+ScreenFormat 24
+ScreenFormat.bits_per_pixel 12
+ScreenFormat.depth 8
+ScreenFormat.ext_data 0
+ScreenFormat.scanline_pad 16
+Screen.height 28
+Screen.max_maps 104
+Screen.mheight 36
+Screen.min_maps 108
+Screen.mwidth 32
+Screen.ndepths 40
+Screen.root 16
+Screen.root_depth 56
+Screen.root_input_mask 120
+Screen.root_visual 64
+Screen.save_unders 116
+Screen.white_pixel 88
+Screen.width 24
+short 2
+Visual 56
+Visual.bits_per_rgb 48
+Visual.blue_mask 40
+Visual.class 16
+Visual.ext_data 0
+Visual.green_mask 32
+Visual.map_entries 52
+Visual.red_mask 24
+Visual.visualid 8
+Window 8
+XAnyEvent 40
+XAnyEvent.display 24
+XAnyEvent.send_event 16
+XAnyEvent.serial 8
+XAnyEvent.type 0
+XAnyEvent.window 32
+XArc 12
+XArc.angle1 8
+XArc.angle2 10
+XArc.height 6
+XArc.width 4
+XArc.x 0
+XArc.y 2
+XButtonEvent 96
+XButtonEvent.button 84
+XButtonEvent.display 24
+XButtonEvent.root 40
+XButtonEvent.same_screen 88
+XButtonEvent.send_event 16
+XButtonEvent.serial 8
+XButtonEvent.state 80
+XButtonEvent.subwindow 48
+XButtonEvent.time 56
+XButtonEvent.type 0
+XButtonEvent.window 32
+XButtonEvent.x 64
+XButtonEvent.x_root 72
+XButtonEvent.y 68
+XButtonEvent.y_root 76
+XChar2b 2
+XChar2b.byte1 0
+XChar2b.byte2 1
+XCharStruct 12
+XCharStruct.ascent 6
+XCharStruct.attributes 10
+XCharStruct.descent 8
+XCharStruct.lbearing 0
+XCharStruct.rbearing 2
+XCharStruct.width 4
+XCirculateEvent 56
+XCirculateEvent.display 24
+XCirculateEvent.event 32
+XCirculateEvent.place 48
+XCirculateEvent.send_event 16
+XCirculateEvent.serial 8
+XCirculateEvent.type 0
+XCirculateEvent.window 40
+XCirculateRequestEvent 56
+XCirculateRequestEvent.display 24
+XCirculateRequestEvent.parent 32
+XCirculateRequestEvent.place 48
+XCirculateRequestEvent.send_event 16
+XCirculateRequestEvent.serial 8
+XCirculateRequestEvent.type 0
+XCirculateRequestEvent.window 40
+XClassHint 16
+XClassHint.res_class 8
+XClassHint.res_name 0
+XClientMessageEvent 96
+XClientMessageEvent.data 56
+XClientMessageEvent.display 24
+XClientMessageEvent.format 48
+XClientMessageEvent.message_type 40
+XClientMessageEvent.send_event 16
+XClientMessageEvent.serial 8
+XClientMessageEvent.type 0
+XClientMessageEvent.window 32
+XColor 16
+XColor.blue 12
+XColor.flags 14
+XColor.green 10
+XColormapEvent 56
+XColormapEvent.colormap 40
+XColormapEvent.display 24
+XColormapEvent.new 48
+XColormapEvent.send_event 16
+XColormapEvent.serial 8
+XColormapEvent.state 52
+XColormapEvent.type 0
+XColormapEvent.window 32
+XColor.pad 15
+XColor.pixel 0
+XColor.red 8
+XComposeStatus 16
+XComposeStatus.chars_matched 8
+XComposeStatus.compose_ptr 0
+XConfigureEvent 88
+XConfigureEvent.above 72
+XConfigureEvent.border_width 64
+XConfigureEvent.display 24
+XConfigureEvent.event 32
+XConfigureEvent.height 60
+XConfigureEvent.override_redirect 80
+XConfigureEvent.send_event 16
+XConfigureEvent.serial 8
+XConfigureEvent.type 0
+XConfigureEvent.width 56
+XConfigureEvent.window 40
+XConfigureEvent.x 48
+XConfigureEvent.y 52
+XConfigureRequestEvent 96
+XConfigureRequestEvent.above 72
+XConfigureRequestEvent.border_width 64
+XConfigureRequestEvent.detail 80
+XConfigureRequestEvent.display 24
+XConfigureRequestEvent.height 60
+XConfigureRequestEvent.parent 32
+XConfigureRequestEvent.send_event 16
+XConfigureRequestEvent.serial 8
+XConfigureRequestEvent.type 0
+XConfigureRequestEvent.value_mask 88
+XConfigureRequestEvent.width 56
+XConfigureRequestEvent.window 40
+XConfigureRequestEvent.x 48
+XConfigureRequestEvent.y 52
+XCreateWindowEvent 72
+XCreateWindowEvent.border_width 64
+XCreateWindowEvent.display 24
+XCreateWindowEvent.height 60
+XCreateWindowEvent.override_redirect 68
+XCreateWindowEvent.parent 32
+XCreateWindowEvent.send_event 16
+XCreateWindowEvent.serial 8
+XCreateWindowEvent.type 0
+XCreateWindowEvent.width 56
+XCreateWindowEvent.window 40
+XCreateWindowEvent.x 48
+XCreateWindowEvent.y 52
+XCrossingEvent 104
+XCrossingEvent.detail 84
+XCrossingEvent.display 24
+XCrossingEvent.focus 92
+XCrossingEvent.mode 80
+XCrossingEvent.root 40
+XCrossingEvent.same_screen 88
+XCrossingEvent.send_event 16
+XCrossingEvent.serial 8
+XCrossingEvent.state 96
+XCrossingEvent.subwindow 48
+XCrossingEvent.time 56
+XCrossingEvent.type 0
+XCrossingEvent.window 32
+XCrossingEvent.x 64
+XCrossingEvent.x_root 72
+XCrossingEvent.y 68
+XCrossingEvent.y_root 76
+XdbeSwapInfo 16
+XdbeSwapInfo.swap_action 8
+XdbeSwapInfo.swap_window 0
+XDestroyWindowEvent 48
+XDestroyWindowEvent.display 24
+XDestroyWindowEvent.event 32
+XDestroyWindowEvent.send_event 16
+XDestroyWindowEvent.serial 8
+XDestroyWindowEvent.type 0
+XDestroyWindowEvent.window 40
+XErrorEvent 40
+XErrorEvent.display 8
+XErrorEvent.error_code 32
+XErrorEvent.minor_code 34
+XErrorEvent.request_code 33
+XErrorEvent.resourceid 16
+XErrorEvent.serial 24
+XErrorEvent.type 0
+XEvent 192
+XEvent.pad 0
+XEvent.type 0
+XEvent.xany 0
+XEvent.xbutton 0
+XEvent.xcirculate 0
+XEvent.xcirculaterequest 0
+XEvent.xclient 0
+XEvent.xcolormap 0
+XEvent.xconfigure 0
+XEvent.xconfigurerequest 0
+XEvent.xcreatewindow 0
+XEvent.xcrossing 0
+XEvent.xdestroywindow 0
+XEvent.xerror 0
+XEvent.xexpose 0
+XEvent.xfocus 0
+XEvent.xgraphicsexpose 0
+XEvent.xgravity 0
+XEvent.xkey 0
+XEvent.xkeymap 0
+XEvent.xmap 0
+XEvent.xmapping 0
+XEvent.xmaprequest 0
+XEvent.xmotion 0
+XEvent.xnoexpose 0
+XEvent.xproperty 0
+XEvent.xreparent 0
+XEvent.xresizerequest 0
+XEvent.xselection 0
+XEvent.xselectionclear 0
+XEvent.xselectionrequest 0
+XEvent.xunmap 0
+XEvent.xvisibility 0
+XExposeEvent 64
+XExposeEvent.count 56
+XExposeEvent.display 24
+XExposeEvent.height 52
+XExposeEvent.send_event 16
+XExposeEvent.serial 8
+XExposeEvent.type 0
+XExposeEvent.width 48
+XExposeEvent.window 32
+XExposeEvent.x 40
+XExposeEvent.y 44
+XExtCodes 16
+XExtCodes.extension 0
+XExtCodes.first_error 12
+XExtCodes.first_event 8
+XExtCodes.major_opcode 4
+XExtData 32
+XExtData.free_private 16
+XExtData.next 8
+XExtData.number 0
+XExtData.private_data 24
+XFocusChangeEvent 48
+XFocusChangeEvent.detail 44
+XFocusChangeEvent.display 24
+XFocusChangeEvent.mode 40
+XFocusChangeEvent.send_event 16
+XFocusChangeEvent.serial 8
+XFocusChangeEvent.type 0
+XFocusChangeEvent.window 32
+XFontProp 16
+XFontProp.card32 8
+XFontProp.name 0
+XFontSetExtents 16
+XFontSetExtents.max_ink_extent 0
+XFontSetExtents.max_logical_extent 8
+XFontStruct 96
+XFontStruct.all_chars_exist 36
+XFontStruct.ascent 88
+XFontStruct.descent 92
+XFontStruct.direction 16
+XFontStruct.ext_data 0
+XFontStruct.fid 8
+XFontStruct.max_bounds 68
+XFontStruct.max_byte1 32
+XFontStruct.max_char_or_byte2 24
+XFontStruct.min_bounds 56
+XFontStruct.min_byte1 28
+XFontStruct.min_char_or_byte2 20
+XFontStruct.n_properties 44
+XFontStruct.per_char 80
+XFontStruct.properties 48
+XGCValues 128
+XGCValues.arc_mode 56
+XGCValues.background 24
+XGCValues.cap_style 40
+XGCValues.clip_mask 112
+XGCValues.clip_x_origin 104
+XGCValues.clip_y_origin 108
+XGCValues.dashes 124
+XGCValues.dash_offset 120
+XGCValues.fill_rule 52
+XGCValues.fill_style 48
+XGCValues.font 88
+XGCValues.foreground 16
+XGCValues.function 0
+XGCValues.graphics_exposures 100
+XGCValues.join_style 44
+XGCValues.line_style 36
+XGCValues.line_width 32
+XGCValues.plane_mask 8
+XGCValues.stipple 72
+XGCValues.subwindow_mode 96
+XGCValues.tile 64
+XGCValues.ts_x_origin 80
+XGCValues.ts_y_origin 84
+XGraphicsExposeEvent 72
+XGraphicsExposeEvent.count 56
+XGraphicsExposeEvent.display 24
+XGraphicsExposeEvent.drawable 32
+XGraphicsExposeEvent.height 52
+XGraphicsExposeEvent.major_code 60
+XGraphicsExposeEvent.minor_code 64
+XGraphicsExposeEvent.send_event 16
+XGraphicsExposeEvent.serial 8
+XGraphicsExposeEvent.type 0
+XGraphicsExposeEvent.width 48
+XGraphicsExposeEvent.x 40
+XGraphicsExposeEvent.y 44
+XGravityEvent 56
+XGravityEvent.display 24
+XGravityEvent.event 32
+XGravityEvent.send_event 16
+XGravityEvent.serial 8
+XGravityEvent.type 0
+XGravityEvent.window 40
+XGravityEvent.x 48
+XGravityEvent.y 52
+XHostAddress 16
+XHostAddress.address 8
+XHostAddress.family 0
+XHostAddress.length 4
+XIconSize 24
+XIconSize.height_inc 20
+XIconSize.max_height 12
+XIconSize.max_width 8
+XIconSize.min_height 4
+XIconSize.min_width 0
+XIconSize.width_inc 16
+XImage 136
+XImage.bitmap_bit_order 32
+XImage.bitmap_pad 36
+XImage.bitmap_unit 28
+XImage.bits_per_pixel 48
+XImage.blue_mask 72
+XImage.byte_order 24
+XImage.bytes_per_line 44
+XImage.data 16
+XImage.depth 40
+XImage.f.add_pixel 128
+XImage.f.create_image 88
+XImage.f.destroy_image 96
+XImage.f.get_pixel 104
+XImage.format 12
+XImage.f.put_pixel 112
+XImage.f.sub_image 120
+XImage.green_mask 64
+XImage.height 4
+XImage.obdata 80
+XImage.red_mask 56
+XImage.width 0
+XImage.xoffset 8
+XIMCallback 16
+XIMCallback.callback 8
+XIMCallback.client_data 0
+XIMHotKeyTrigger 16
+XIMHotKeyTrigger.keysym 0
+XIMHotKeyTrigger.modifier 8
+XIMHotKeyTrigger.modifier_mask 12
+XIMHotKeyTriggers 16
+XIMHotKeyTriggers.key 8
+XIMHotKeyTriggers.num_hot_key 0
+XIMPreeditCaretCallbackStruct 12
+XIMPreeditCaretCallbackStruct.direction 4
+XIMPreeditCaretCallbackStruct.position 0
+XIMPreeditCaretCallbackStruct.style 8
+XIMPreeditDrawCallbackStruct 24
+XIMPreeditDrawCallbackStruct.caret 0
+XIMPreeditDrawCallbackStruct.chg_first 4
+XIMPreeditDrawCallbackStruct.chg_length 8
+XIMPreeditDrawCallbackStruct.text 16
+XIMPreeditStateNotifyCallbackStruct 8
+XIMPreeditStateNotifyCallbackStruct.state 0
+XIMStatusDrawCallbackStruct 16
+XIMStatusDrawCallbackStruct.data 8
+XIMStatusDrawCallbackStruct.type 0
+XIMStringConversionCallbackStruct 24
+XIMStringConversionCallbackStruct.direction 4
+XIMStringConversionCallbackStruct.factor 10
+XIMStringConversionCallbackStruct.operation 8
+XIMStringConversionCallbackStruct.position 0
+XIMStringConversionCallbackStruct.text 16
+XIMStringConversionText 32
+XIMStringConversionText.encoding_is_wchar 16
+XIMStringConversionText.feedback 8
+XIMStringConversionText.length 0
+XIMStringConversionText.string 24
+XIMStyles 16
+XIMStyles.count_styles 0
+XIMStyles.supported_styles 8
+XIMText 32
+XIMText.encoding_is_wchar 16
+XIMText.feedback 8
+XIMText.length 0
+XIMText.string 24
+XIMValuesList 16
+XIMValuesList.count_values 0
+XIMValuesList.supported_values 8
+XkbAccessXNotifyEvent 64
+XkbAccessXNotifyEvent.debounce_delay 60
+XkbAccessXNotifyEvent.detail 48
+XkbAccessXNotifyEvent.device 44
+XkbAccessXNotifyEvent.display 24
+XkbAccessXNotifyEvent.keycode 52
+XkbAccessXNotifyEvent.send_event 16
+XkbAccessXNotifyEvent.serial 8
+XkbAccessXNotifyEvent.sk_delay 56
+XkbAccessXNotifyEvent.time 32
+XkbAccessXNotifyEvent.type 0
+XkbAccessXNotifyEvent.xkb_type 40
+XkbActionMessageEvent 80
+XkbActionMessageEvent.device 44
+XkbActionMessageEvent.display 24
+XkbActionMessageEvent.group 60
+XkbActionMessageEvent.keycode 48
+XkbActionMessageEvent.key_event_follows 56
+XkbActionMessageEvent.message 68
+XkbActionMessageEvent.mods 64
+XkbActionMessageEvent.press 52
+XkbActionMessageEvent.send_event 16
+XkbActionMessageEvent.serial 8
+XkbActionMessageEvent.time 32
+XkbActionMessageEvent.type 0
+XkbActionMessageEvent.xkb_type 40
+XkbAnyEvent 48
+XkbAnyEvent.device 44
+XkbAnyEvent.display 24
+XkbAnyEvent.send_event 16
+XkbAnyEvent.serial 8
+XkbAnyEvent.time 32
+XkbAnyEvent.type 0
+XkbAnyEvent.xkb_type 40
+XkbBellNotifyEvent 96
+XkbBellNotifyEvent.bell_class 60
+XkbBellNotifyEvent.bell_id 64
+XkbBellNotifyEvent.device 44
+XkbBellNotifyEvent.display 24
+XkbBellNotifyEvent.duration 56
+XkbBellNotifyEvent.event_only 88
+XkbBellNotifyEvent.name 72
+XkbBellNotifyEvent.percent 48
+XkbBellNotifyEvent.pitch 52
+XkbBellNotifyEvent.send_event 16
+XkbBellNotifyEvent.serial 8
+XkbBellNotifyEvent.time 32
+XkbBellNotifyEvent.type 0
+XkbBellNotifyEvent.window 80
+XkbBellNotifyEvent.xkb_type 40
+XkbCompatMapNotifyEvent 64
+XkbCompatMapNotifyEvent.changed_groups 48
+XkbCompatMapNotifyEvent.device 44
+XkbCompatMapNotifyEvent.display 24
+XkbCompatMapNotifyEvent.first_si 52
+XkbCompatMapNotifyEvent.num_si 56
+XkbCompatMapNotifyEvent.num_total_si 60
+XkbCompatMapNotifyEvent.send_event 16
+XkbCompatMapNotifyEvent.serial 8
+XkbCompatMapNotifyEvent.time 32
+XkbCompatMapNotifyEvent.type 0
+XkbCompatMapNotifyEvent.xkb_type 40
+XkbControlsNotifyEvent 72
+XkbControlsNotifyEvent.changed_ctrls 48
+XkbControlsNotifyEvent.device 44
+XkbControlsNotifyEvent.display 24
+XkbControlsNotifyEvent.enabled_ctrl_changes 56
+XkbControlsNotifyEvent.enabled_ctrls 52
+XkbControlsNotifyEvent.event_type 65
+XkbControlsNotifyEvent.keycode 64
+XkbControlsNotifyEvent.num_groups 60
+XkbControlsNotifyEvent.req_major 66
+XkbControlsNotifyEvent.req_minor 67
+XkbControlsNotifyEvent.send_event 16
+XkbControlsNotifyEvent.serial 8
+XkbControlsNotifyEvent.time 32
+XkbControlsNotifyEvent.type 0
+XkbControlsNotifyEvent.xkb_type 40
+XkbEvent 192
+XkbEvent.accessx 0
+XkbEvent.any 0
+XkbEvent.bell 0
+XkbEvent.compat 0
+XkbEvent.core 0
+XkbEvent.ctrls 0
+XkbEvent.device 0
+XkbEvent.indicators 0
+XkbEvent.map 0
+XkbEvent.message 0
+XkbEvent.names 0
+XkbEvent.new_kbd 0
+XkbEvent.state 0
+XkbEvent.type 0
+XkbExtensionDeviceNotifyEvent 88
+XkbExtensionDeviceNotifyEvent.device 44
+XkbExtensionDeviceNotifyEvent.display 24
+XkbExtensionDeviceNotifyEvent.first_btn 60
+XkbExtensionDeviceNotifyEvent.led_class 76
+XkbExtensionDeviceNotifyEvent.led_id 80
+XkbExtensionDeviceNotifyEvent.leds_defined 68
+XkbExtensionDeviceNotifyEvent.led_state 72
+XkbExtensionDeviceNotifyEvent.num_btns 64
+XkbExtensionDeviceNotifyEvent.reason 48
+XkbExtensionDeviceNotifyEvent.send_event 16
+XkbExtensionDeviceNotifyEvent.serial 8
+XkbExtensionDeviceNotifyEvent.supported 52
+XkbExtensionDeviceNotifyEvent.time 32
+XkbExtensionDeviceNotifyEvent.type 0
+XkbExtensionDeviceNotifyEvent.unsupported 56
+XkbExtensionDeviceNotifyEvent.xkb_type 40
+XkbIndicatorNotifyEvent 56
+XkbIndicatorNotifyEvent.changed 48
+XkbIndicatorNotifyEvent.device 44
+XkbIndicatorNotifyEvent.display 24
+XkbIndicatorNotifyEvent.send_event 16
+XkbIndicatorNotifyEvent.serial 8
+XkbIndicatorNotifyEvent.state 52
+XkbIndicatorNotifyEvent.time 32
+XkbIndicatorNotifyEvent.type 0
+XkbIndicatorNotifyEvent.xkb_type 40
+XkbMapNotifyEvent 104
+XkbMapNotifyEvent.changed 48
+XkbMapNotifyEvent.device 44
+XkbMapNotifyEvent.display 24
+XkbMapNotifyEvent.first_key_act 67
+XkbMapNotifyEvent.first_key_behavior 68
+XkbMapNotifyEvent.first_key_explicit 69
+XkbMapNotifyEvent.first_key_sym 66
+XkbMapNotifyEvent.first_modmap_key 70
+XkbMapNotifyEvent.first_type 56
+XkbMapNotifyEvent.first_vmodmap_key 71
+XkbMapNotifyEvent.flags 52
+XkbMapNotifyEvent.max_key_code 65
+XkbMapNotifyEvent.min_key_code 64
+XkbMapNotifyEvent.num_key_acts 76
+XkbMapNotifyEvent.num_key_behaviors 80
+XkbMapNotifyEvent.num_key_explicit 84
+XkbMapNotifyEvent.num_key_syms 72
+XkbMapNotifyEvent.num_modmap_keys 88
+XkbMapNotifyEvent.num_types 60
+XkbMapNotifyEvent.num_vmodmap_keys 92
+XkbMapNotifyEvent.send_event 16
+XkbMapNotifyEvent.serial 8
+XkbMapNotifyEvent.time 32
+XkbMapNotifyEvent.type 0
+XkbMapNotifyEvent.vmods 96
+XkbMapNotifyEvent.xkb_type 40
+XkbNamesNotifyEvent 96
+XkbNamesNotifyEvent.changed 48
+XkbNamesNotifyEvent.changed_groups 80
+XkbNamesNotifyEvent.changed_indicators 84
+XkbNamesNotifyEvent.changed_vmods 76
+XkbNamesNotifyEvent.device 44
+XkbNamesNotifyEvent.display 24
+XkbNamesNotifyEvent.first_key 88
+XkbNamesNotifyEvent.first_lvl 60
+XkbNamesNotifyEvent.first_type 52
+XkbNamesNotifyEvent.num_aliases 68
+XkbNamesNotifyEvent.num_keys 92
+XkbNamesNotifyEvent.num_lvls 64
+XkbNamesNotifyEvent.num_radio_groups 72
+XkbNamesNotifyEvent.num_types 56
+XkbNamesNotifyEvent.send_event 16
+XkbNamesNotifyEvent.serial 8
+XkbNamesNotifyEvent.time 32
+XkbNamesNotifyEvent.type 0
+XkbNamesNotifyEvent.xkb_type 40
+XkbNewKeyboardNotifyEvent 80
+XkbNewKeyboardNotifyEvent.changed 68
+XkbNewKeyboardNotifyEvent.device 44
+XkbNewKeyboardNotifyEvent.display 24
+XkbNewKeyboardNotifyEvent.max_key_code 56
+XkbNewKeyboardNotifyEvent.min_key_code 52
+XkbNewKeyboardNotifyEvent.old_device 48
+XkbNewKeyboardNotifyEvent.old_max_key_code 64
+XkbNewKeyboardNotifyEvent.old_min_key_code 60
+XkbNewKeyboardNotifyEvent.req_major 72
+XkbNewKeyboardNotifyEvent.req_minor 73
+XkbNewKeyboardNotifyEvent.send_event 16
+XkbNewKeyboardNotifyEvent.serial 8
+XkbNewKeyboardNotifyEvent.time 32
+XkbNewKeyboardNotifyEvent.type 0
+XkbNewKeyboardNotifyEvent.xkb_type 40
+XkbStateNotifyEvent 104
+XkbStateNotifyEvent.base_group 56
+XkbStateNotifyEvent.base_mods 72
+XkbStateNotifyEvent.changed 48
+XkbStateNotifyEvent.compat_grab_mods 89
+XkbStateNotifyEvent.compat_lookup_mods 91
+XkbStateNotifyEvent.compat_state 84
+XkbStateNotifyEvent.device 44
+XkbStateNotifyEvent.display 24
+XkbStateNotifyEvent.event_type 97
+XkbStateNotifyEvent.grab_mods 88
+XkbStateNotifyEvent.group 52
+XkbStateNotifyEvent.keycode 96
+XkbStateNotifyEvent.latched_group 60
+XkbStateNotifyEvent.latched_mods 76
+XkbStateNotifyEvent.locked_group 64
+XkbStateNotifyEvent.locked_mods 80
+XkbStateNotifyEvent.lookup_mods 90
+XkbStateNotifyEvent.mods 68
+XkbStateNotifyEvent.ptr_buttons 92
+XkbStateNotifyEvent.req_major 98
+XkbStateNotifyEvent.req_minor 99
+XkbStateNotifyEvent.send_event 16
+XkbStateNotifyEvent.serial 8
+XkbStateNotifyEvent.time 32
+XkbStateNotifyEvent.type 0
+XkbStateNotifyEvent.xkb_type 40
+XKeyboardControl 32
+XKeyboardControl.auto_repeat_mode 28
+XKeyboardControl.bell_duration 12
+XKeyboardControl.bell_percent 4
+XKeyboardControl.bell_pitch 8
+XKeyboardControl.key 24
+XKeyboardControl.key_click_percent 0
+XKeyboardControl.led 16
+XKeyboardControl.led_mode 20
+XKeyboardState 64
+XKeyboardState.auto_repeats 28
+XKeyboardState.bell_duration 12
+XKeyboardState.bell_percent 4
+XKeyboardState.bell_pitch 8
+XKeyboardState.global_auto_repeat 24
+XKeyboardState.key_click_percent 0
+XKeyboardState.led_mask 16
+XKeyEvent 96
+XKeyEvent.display 24
+XKeyEvent.keycode 84
+XKeyEvent.root 40
+XKeyEvent.same_screen 88
+XKeyEvent.send_event 16
+XKeyEvent.serial 8
+XKeyEvent.state 80
+XKeyEvent.subwindow 48
+XKeyEvent.time 56
+XKeyEvent.type 0
+XKeyEvent.window 32
+XKeyEvent.x 64
+XKeyEvent.x_root 72
+XKeyEvent.y 68
+XKeyEvent.y_root 76
+XKeymapEvent 72
+XKeymapEvent.display 24
+XKeymapEvent.key_vector 40
+XKeymapEvent.send_event 16
+XKeymapEvent.serial 8
+XKeymapEvent.type 0
+XKeymapEvent.window 32
+XMapEvent 56
+XMapEvent.display 24
+XMapEvent.event 32
+XMapEvent.override_redirect 48
+XMapEvent.send_event 16
+XMapEvent.serial 8
+XMapEvent.type 0
+XMapEvent.window 40
+XMappingEvent 56
+XMappingEvent.count 48
+XMappingEvent.display 24
+XMappingEvent.first_keycode 44
+XMappingEvent.request 40
+XMappingEvent.send_event 16
+XMappingEvent.serial 8
+XMappingEvent.type 0
+XMappingEvent.window 32
+XMapRequestEvent 48
+XMapRequestEvent.display 24
+XMapRequestEvent.parent 32
+XMapRequestEvent.send_event 16
+XMapRequestEvent.serial 8
+XMapRequestEvent.type 0
+XMapRequestEvent.window 40
+XmbTextItem 24
+XmbTextItem.chars 0
+XmbTextItem.delta 12
+XmbTextItem.font_set 16
+XmbTextItem.nchars 8
+XModifierKeymap 16
+XModifierKeymap.max_keypermod 0
+XModifierKeymap.modifiermap 8
+XMotionEvent 96
+XMotionEvent.display 24
+XMotionEvent.is_hint 84
+XMotionEvent.root 40
+XMotionEvent.same_screen 88
+XMotionEvent.send_event 16
+XMotionEvent.serial 8
+XMotionEvent.state 80
+XMotionEvent.subwindow 48
+XMotionEvent.time 56
+XMotionEvent.type 0
+XMotionEvent.window 32
+XMotionEvent.x 64
+XMotionEvent.x_root 72
+XMotionEvent.y 68
+XMotionEvent.y_root 76
+XNoExposeEvent 48
+XNoExposeEvent.display 24
+XNoExposeEvent.drawable 32
+XNoExposeEvent.major_code 40
+XNoExposeEvent.minor_code 44
+XNoExposeEvent.send_event 16
+XNoExposeEvent.serial 8
+XNoExposeEvent.type 0
+XOMCharSetList 16
+XOMCharSetList.charset_count 0
+XOMCharSetList.charset_list 8
+XOMFontInfo 24
+XOMFontInfo.font_name_list 16
+XOMFontInfo.font_struct_list 8
+XOMFontInfo.num_font 0
+XOMOrientation 16
+XOMOrientation.num_orientation 0
+XOMOrientation.orientation 8
+XPixmapFormatValues 12
+XPixmapFormatValues.bits_per_pixel 4
+XPixmapFormatValues.depth 0
+XPixmapFormatValues.scanline_pad 8
+XPoint 4
+XPoint.x 0
+XPoint.y 2
+XPropertyEvent 64
+XPropertyEvent.atom 40
+XPropertyEvent.display 24
+XPropertyEvent.send_event 16
+XPropertyEvent.serial 8
+XPropertyEvent.state 56
+XPropertyEvent.time 48
+XPropertyEvent.type 0
+XPropertyEvent.window 32
+XRectangle 8
+XRectangle.height 6
+XRectangle.width 4
+XRectangle.x 0
+XRectangle.y 2
+XRenderDirectFormat 16
+XRenderDirectFormat.alpha 12
+XRenderDirectFormat.alphaMask 14
+XRenderDirectFormat.blue 8
+XRenderDirectFormat.blueMask 10
+XRenderDirectFormat.green 4
+XRenderDirectFormat.greenMask 6
+XRenderDirectFormat.red 0
+XRenderDirectFormat.redMask 2
+XRenderPictFormat 40
+XRenderPictFormat.colormap 32
+XRenderPictFormat.depth 12
+XRenderPictFormat.direct 16
+XRenderPictFormat.id 0
+XRenderPictFormat.type 8
+XReparentEvent 72
+XReparentEvent.display 24
+XReparentEvent.event 32
+XReparentEvent.override_redirect 64
+XReparentEvent.parent 48
+XReparentEvent.send_event 16
+XReparentEvent.serial 8
+XReparentEvent.type 0
+XReparentEvent.window 40
+XReparentEvent.x 56
+XReparentEvent.y 60
+XResizeRequestEvent 48
+XResizeRequestEvent.display 24
+XResizeRequestEvent.height 44
+XResizeRequestEvent.send_event 16
+XResizeRequestEvent.serial 8
+XResizeRequestEvent.type 0
+XResizeRequestEvent.width 40
+XResizeRequestEvent.window 32
+XSegment 8
+XSegment.x1 0
+XSegment.x2 4
+XSegment.y1 2
+XSegment.y2 6
+XSelectionClearEvent 56
+XSelectionClearEvent.display 24
+XSelectionClearEvent.selection 40
+XSelectionClearEvent.send_event 16
+XSelectionClearEvent.serial 8
+XSelectionClearEvent.time 48
+XSelectionClearEvent.type 0
+XSelectionClearEvent.window 32
+XSelectionEvent 72
+XSelectionEvent.display 24
+XSelectionEvent.property 56
+XSelectionEvent.requestor 32
+XSelectionEvent.selection 40
+XSelectionEvent.send_event 16
+XSelectionEvent.serial 8
+XSelectionEvent.target 48
+XSelectionEvent.time 64
+XSelectionEvent.type 0
+XSelectionRequestEvent 80
+XSelectionRequestEvent.display 24
+XSelectionRequestEvent.owner 32
+XSelectionRequestEvent.property 64
+XSelectionRequestEvent.requestor 40
+XSelectionRequestEvent.selection 48
+XSelectionRequestEvent.send_event 16
+XSelectionRequestEvent.serial 8
+XSelectionRequestEvent.target 56
+XSelectionRequestEvent.time 72
+XSelectionRequestEvent.type 0
+XSetWindowAttributes 112
+XSetWindowAttributes.background_pixel 8
+XSetWindowAttributes.background_pixmap 0
+XSetWindowAttributes.backing_pixel 56
+XSetWindowAttributes.backing_planes 48
+XSetWindowAttributes.backing_store 40
+XSetWindowAttributes.bit_gravity 32
+XSetWindowAttributes.border_pixel 24
+XSetWindowAttributes.border_pixmap 16
+XSetWindowAttributes.colormap 96
+XSetWindowAttributes.cursor 104
+XSetWindowAttributes.do_not_propagate_mask 80
+XSetWindowAttributes.event_mask 72
+XSetWindowAttributes.override_redirect 88
+XSetWindowAttributes.save_under 64
+XSetWindowAttributes.win_gravity 36
+XSizeHints 80
+XSizeHints.base_height 68
+XSizeHints.base_width 64
+XSizeHints.flags 0
+XSizeHints.height 20
+XSizeHints.height_inc 44
+XSizeHints.max_aspect.x 56
+XSizeHints.max_aspect.y 60
+XSizeHints.max_height 36
+XSizeHints.max_width 32
+XSizeHints.min_aspect.x 48
+XSizeHints.min_aspect.y 52
+XSizeHints.min_height 28
+XSizeHints.min_width 24
+XSizeHints.width 16
+XSizeHints.width_inc 40
+XSizeHints.win_gravity 72
+XSizeHints.x 8
+XSizeHints.y 12
+XStandardColormap 80
+XStandardColormap.base_pixel 56
+XStandardColormap.blue_max 40
+XStandardColormap.blue_mult 48
+XStandardColormap.colormap 0
+XStandardColormap.green_max 24
+XStandardColormap.green_mult 32
+XStandardColormap.killid 72
+XStandardColormap.red_max 8
+XStandardColormap.red_mult 16
+XStandardColormap.visualid 64
+XTextItem16 24
+XTextItem16.chars 0
+XTextItem16.delta 12
+XTextItem16.font 16
+XTextItem16.nchars 8
+XTextItem 24
+XTextItem.chars 0
+XTextItem.delta 12
+XTextItem.font 16
+XTextItem.nchars 8
+XTextProperty 32
+XTextProperty.encoding 8
+XTextProperty.format 16
+XTextProperty.nitems 24
+XTextProperty.value 0
+XTimeCoord 16
+XTimeCoord.time 0
+XTimeCoord.x 8
+XTimeCoord.y 10
+XUnmapEvent 56
+XUnmapEvent.display 24
+XUnmapEvent.event 32
+XUnmapEvent.from_configure 48
+XUnmapEvent.send_event 16
+XUnmapEvent.serial 8
+XUnmapEvent.type 0
+XUnmapEvent.window 40
+XVisibilityEvent 48
+XVisibilityEvent.display 24
+XVisibilityEvent.send_event 16
+XVisibilityEvent.serial 8
+XVisibilityEvent.state 40
+XVisibilityEvent.type 0
+XVisibilityEvent.window 32
+XVisualInfo 64
+XVisualInfo.bits_per_rgb 60
+XVisualInfo.blue_mask 48
+XVisualInfo.class 24
+XVisualInfo.colormap_size 56
+XVisualInfo.depth 20
+XVisualInfo.green_mask 40
+XVisualInfo.red_mask 32
+XVisualInfo.screen 16
+XVisualInfo.visual 0
+XVisualInfo.visualid 8
+XwcTextItem 24
+XwcTextItem.chars 0
+XwcTextItem.delta 12
+XwcTextItem.font_set 16
+XwcTextItem.nchars 8
+XWindowAttributes 136
+XWindowAttributes.all_event_masks 96
+XWindowAttributes.backing_pixel 64
+XWindowAttributes.backing_planes 56
+XWindowAttributes.backing_store 52
+XWindowAttributes.bit_gravity 44
+XWindowAttributes.border_width 16
+XWindowAttributes.class 40
+XWindowAttributes.colormap 80
+XWindowAttributes.depth 20
+XWindowAttributes.do_not_propagate_mask 112
+XWindowAttributes.height 12
+XWindowAttributes.map_installed 88
+XWindowAttributes.map_state 92
+XWindowAttributes.override_redirect 120
+XWindowAttributes.root 32
+XWindowAttributes.save_under 72
+XWindowAttributes.screen 128
+XWindowAttributes.visual 24
+XWindowAttributes.width 8
+XWindowAttributes.win_gravity 48
+XWindowAttributes.x 0
+XWindowAttributes.y 4
+XWindowAttributes.your_event_mask 104
+XWindowChanges 40
+XWindowChanges.border_width 16
+XWindowChanges.height 12
+XWindowChanges.sibling 24
+XWindowChanges.stack_mode 32
+XWindowChanges.width 8
+XWindowChanges.x 0
+XWindowChanges.y 4
+XWMHints 56
+XWMHints.flags 0
+XWMHints.icon_mask 40
+XWMHints.icon_pixmap 16
+XWMHints.icon_window 24
+XWMHints.icon_x 32
+XWMHints.icon_y 36
+XWMHints.initial_state 12
+XWMHints.input 8
+XWMHints.window_group 48
diff -r c3ec048aad63 -r ece10494786c make/data/x11wrappergen/sizes.32
--- a/make/data/x11wrappergen/sizes.32 Thu Mar 01 16:35:36 2018 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1017 +0,0 @@
-long 4
-int 4
-short 2
-ptr 4
-Bool 4
-Atom 4
-Window 4
-XExtData.number 0
-XExtData.next 4
-XExtData.free_private 8
-XExtData.private_data 12
-XExtData 16
-XIMStringConversionCallbackStruct.position 0
-XIMStringConversionCallbackStruct.direction 4
-XIMStringConversionCallbackStruct.operation 8
-XIMStringConversionCallbackStruct.factor 10
-XIMStringConversionCallbackStruct.text 12
-XIMStringConversionCallbackStruct 16
-XkbNewKeyboardNotifyEvent.type 0
-XkbNewKeyboardNotifyEvent.serial 4
-XkbNewKeyboardNotifyEvent.send_event 8
-XkbNewKeyboardNotifyEvent.display 12
-XkbNewKeyboardNotifyEvent.time 16
-XkbNewKeyboardNotifyEvent.xkb_type 20
-XkbNewKeyboardNotifyEvent.device 24
-XkbNewKeyboardNotifyEvent.old_device 28
-XkbNewKeyboardNotifyEvent.min_key_code 32
-XkbNewKeyboardNotifyEvent.max_key_code 36
-XkbNewKeyboardNotifyEvent.old_min_key_code 40
-XkbNewKeyboardNotifyEvent.old_max_key_code 44
-XkbNewKeyboardNotifyEvent.changed 48
-XkbNewKeyboardNotifyEvent.req_major 52
-XkbNewKeyboardNotifyEvent.req_minor 53
-XkbNewKeyboardNotifyEvent 56
-XTimeCoord.time 0
-XTimeCoord.x 4
-XTimeCoord.y 6
-XTimeCoord 8
-XkbCompatMapNotifyEvent.type 0
-XkbCompatMapNotifyEvent.serial 4
-XkbCompatMapNotifyEvent.send_event 8
-XkbCompatMapNotifyEvent.display 12
-XkbCompatMapNotifyEvent.time 16
-XkbCompatMapNotifyEvent.xkb_type 20
-XkbCompatMapNotifyEvent.device 24
-XkbCompatMapNotifyEvent.changed_groups 28
-XkbCompatMapNotifyEvent.first_si 32
-XkbCompatMapNotifyEvent.num_si 36
-XkbCompatMapNotifyEvent.num_total_si 40
-XkbCompatMapNotifyEvent 44
-XIMStatusDrawCallbackStruct.type 0
-XIMStatusDrawCallbackStruct.data 4
-XIMStatusDrawCallbackStruct 8
-XKeyboardControl.key_click_percent 0
-XKeyboardControl.bell_percent 4
-XKeyboardControl.bell_pitch 8
-XKeyboardControl.bell_duration 12
-XKeyboardControl.led 16
-XKeyboardControl.led_mode 20
-XKeyboardControl.key 24
-XKeyboardControl.auto_repeat_mode 28
-XKeyboardControl 32
-XSelectionClearEvent.type 0
-XSelectionClearEvent.serial 4
-XSelectionClearEvent.send_event 8
-XSelectionClearEvent.display 12
-XSelectionClearEvent.window 16
-XSelectionClearEvent.selection 20
-XSelectionClearEvent.time 24
-XSelectionClearEvent 28
-XWindowChanges.x 0
-XWindowChanges.y 4
-XWindowChanges.width 8
-XWindowChanges.height 12
-XWindowChanges.border_width 16
-XWindowChanges.sibling 20
-XWindowChanges.stack_mode 24
-XWindowChanges 28
-XIMPreeditCaretCallbackStruct.position 0
-XIMPreeditCaretCallbackStruct.direction 4
-XIMPreeditCaretCallbackStruct.style 8
-XIMPreeditCaretCallbackStruct 12
-XOMCharSetList.charset_count 0
-XOMCharSetList.charset_list 4
-XOMCharSetList 8
-XOMFontInfo.num_font 0
-XOMFontInfo.font_struct_list 4
-XOMFontInfo.font_name_list 8
-XOMFontInfo 12
-AwtScreenData.numConfigs 0
-AwtScreenData.root 4
-AwtScreenData.whitepixel 8
-AwtScreenData.blackpixel 12
-AwtScreenData.defaultConfig 16
-AwtScreenData.configs 20
-AwtScreenData 24
-XIMHotKeyTrigger.keysym 0
-XIMHotKeyTrigger.modifier 4
-XIMHotKeyTrigger.modifier_mask 8
-XIMHotKeyTrigger 12
-XCirculateEvent.type 0
-XCirculateEvent.serial 4
-XCirculateEvent.send_event 8
-XCirculateEvent.display 12
-XCirculateEvent.event 16
-XCirculateEvent.window 20
-XCirculateEvent.place 24
-XCirculateEvent 28
-Screen.ext_data 0
-Screen.display 4
-Screen.root 8
-Screen.width 12
-Screen.height 16
-Screen.mwidth 20
-Screen.mheight 24
-Screen.ndepths 28
-Screen.depths 32
-Screen.root_depth 36
-Screen.root_visual 40
-Screen.default_gc 44
-Screen.cmap 48
-Screen.white_pixel 52
-Screen.black_pixel 56
-Screen.max_maps 60
-Screen.min_maps 64
-Screen.backing_store 68
-Screen.save_unders 72
-Screen.root_input_mask 76
-Screen 80
-XMapRequestEvent.type 0
-XMapRequestEvent.serial 4
-XMapRequestEvent.send_event 8
-XMapRequestEvent.display 12
-XMapRequestEvent.parent 16
-XMapRequestEvent.window 20
-XMapRequestEvent 24
-XIMText.length 0
-XIMText.feedback 4
-XIMText.encoding_is_wchar 8
-XIMText.string 12
-XIMText 16
-XGraphicsExposeEvent.type 0
-XGraphicsExposeEvent.serial 4
-XGraphicsExposeEvent.send_event 8
-XGraphicsExposeEvent.display 12
-XGraphicsExposeEvent.drawable 16
-XGraphicsExposeEvent.x 20
-XGraphicsExposeEvent.y 24
-XGraphicsExposeEvent.width 28
-XGraphicsExposeEvent.height 32
-XGraphicsExposeEvent.count 36
-XGraphicsExposeEvent.major_code 40
-XGraphicsExposeEvent.minor_code 44
-XGraphicsExposeEvent 48
-XEvent.type 0
-XEvent.xany 0
-XEvent.xkey 0
-XEvent.xbutton 0
-XEvent.xmotion 0
-XEvent.xcrossing 0
-XEvent.xfocus 0
-XEvent.xexpose 0
-XEvent.xgraphicsexpose 0
-XEvent.xnoexpose 0
-XEvent.xvisibility 0
-XEvent.xcreatewindow 0
-XEvent.xdestroywindow 0
-XEvent.xunmap 0
-XEvent.xmap 0
-XEvent.xmaprequest 0
-XEvent.xreparent 0
-XEvent.xconfigure 0
-XEvent.xgravity 0
-XEvent.xresizerequest 0
-XEvent.xconfigurerequest 0
-XEvent.xcirculate 0
-XEvent.xcirculaterequest 0
-XEvent.xproperty 0
-XEvent.xselectionclear 0
-XEvent.xselectionrequest 0
-XEvent.xselection 0
-XEvent.xcolormap 0
-XEvent.xclient 0
-XEvent.xmapping 0
-XEvent.xerror 0
-XEvent.xkeymap 0
-XEvent.pad 0
-XEvent 96
-XRenderDirectFormat.red 0
-XRenderDirectFormat.redMask 2
-XRenderDirectFormat.green 4
-XRenderDirectFormat.greenMask 6
-XRenderDirectFormat.blue 8
-XRenderDirectFormat.blueMask 10
-XRenderDirectFormat.alpha 12
-XRenderDirectFormat.alphaMask 14
-XRenderDirectFormat 16
-ColorData.awt_Colors 0
-ColorData.awt_numICMcolors 4
-ColorData.awt_icmLUT 8
-ColorData.awt_icmLUT2Colors 12
-ColorData.img_grays 16
-ColorData.img_clr_tbl 20
-ColorData.img_oda_red 24
-ColorData.img_oda_green 28
-ColorData.img_oda_blue 32
-ColorData.pGrayInverseLutData 36
-ColorData.screendata 40
-ColorData.representsPrimaries 44
-ColorData 48
-XFontStruct.ext_data 0
-XFontStruct.fid 4
-XFontStruct.direction 8
-XFontStruct.min_char_or_byte2 12
-XFontStruct.max_char_or_byte2 16
-XFontStruct.min_byte1 20
-XFontStruct.max_byte1 24
-XFontStruct.all_chars_exist 28
-XFontStruct.n_properties 36
-XFontStruct.properties 40
-XFontStruct.min_bounds 44
-XFontStruct.max_bounds 56
-XFontStruct.per_char 68
-XFontStruct.ascent 72
-XFontStruct.descent 76
-XFontStruct 80
-XExtCodes.extension 0
-XExtCodes.major_opcode 4
-XExtCodes.first_event 8
-XExtCodes.first_error 12
-XExtCodes 16
-XFontSetExtents.max_ink_extent 0
-XFontSetExtents.max_logical_extent 8
-XFontSetExtents 16
-XSelectionEvent.type 0
-XSelectionEvent.serial 4
-XSelectionEvent.send_event 8
-XSelectionEvent.display 12
-XSelectionEvent.requestor 16
-XSelectionEvent.selection 20
-XSelectionEvent.target 24
-XSelectionEvent.property 28
-XSelectionEvent.time 32
-XSelectionEvent 36
-XArc.x 0
-XArc.y 2
-XArc.width 4
-XArc.height 6
-XArc.angle1 8
-XArc.angle2 10
-XArc 12
-XErrorEvent.type 0
-XErrorEvent.display 4
-XErrorEvent.resourceid 8
-XErrorEvent.serial 12
-XErrorEvent.error_code 16
-XErrorEvent.request_code 17
-XErrorEvent.minor_code 18
-XErrorEvent 20
-XConfigureRequestEvent.type 0
-XConfigureRequestEvent.serial 4
-XConfigureRequestEvent.send_event 8
-XConfigureRequestEvent.display 12
-XConfigureRequestEvent.parent 16
-XConfigureRequestEvent.window 20
-XConfigureRequestEvent.x 24
-XConfigureRequestEvent.y 28
-XConfigureRequestEvent.width 32
-XConfigureRequestEvent.height 36
-XConfigureRequestEvent.border_width 40
-XConfigureRequestEvent.above 44
-XConfigureRequestEvent.detail 48
-XConfigureRequestEvent.value_mask 52
-XConfigureRequestEvent 56
-ScreenFormat.ext_data 0
-ScreenFormat.depth 4
-ScreenFormat.bits_per_pixel 8
-ScreenFormat.scanline_pad 12
-ScreenFormat 16
-XButtonEvent.type 0
-XButtonEvent.serial 4
-XButtonEvent.send_event 8
-XButtonEvent.display 12
-XButtonEvent.window 16
-XButtonEvent.root 20
-XButtonEvent.subwindow 24
-XButtonEvent.time 28
-XButtonEvent.x 32
-XButtonEvent.y 36
-XButtonEvent.x_root 40
-XButtonEvent.y_root 44
-XButtonEvent.state 48
-XButtonEvent.button 52
-XButtonEvent.same_screen 56
-XButtonEvent 60
-XFontProp.name 0
-XFontProp.card32 4
-XFontProp 8
-XIMValuesList.count_values 0
-XIMValuesList.supported_values 4
-XIMValuesList 8
-XKeymapEvent.type 0
-XKeymapEvent.serial 4
-XKeymapEvent.send_event 8
-XKeymapEvent.display 12
-XKeymapEvent.window 16
-XKeymapEvent.key_vector 20
-XKeymapEvent 52
-XTextItem16.chars 0
-XTextItem16.nchars 4
-XTextItem16.delta 8
-XTextItem16.font 12
-XTextItem16 16
-XIMPreeditDrawCallbackStruct.caret 0
-XIMPreeditDrawCallbackStruct.chg_first 4
-XIMPreeditDrawCallbackStruct.chg_length 8
-XIMPreeditDrawCallbackStruct.text 12
-XIMPreeditDrawCallbackStruct 16
-XVisualInfo.visual 0
-XVisualInfo.visualid 4
-XVisualInfo.screen 8
-XVisualInfo.depth 12
-XVisualInfo.class 16
-XVisualInfo.red_mask 20
-XVisualInfo.green_mask 24
-XVisualInfo.blue_mask 28
-XVisualInfo.colormap_size 32
-XVisualInfo.bits_per_rgb 36
-XVisualInfo 40
-XkbControlsNotifyEvent.type 0
-XkbControlsNotifyEvent.serial 4
-XkbControlsNotifyEvent.send_event 8
-XkbControlsNotifyEvent.display 12
-XkbControlsNotifyEvent.time 16
-XkbControlsNotifyEvent.xkb_type 20
-XkbControlsNotifyEvent.device 24
-XkbControlsNotifyEvent.changed_ctrls 28
-XkbControlsNotifyEvent.enabled_ctrls 32
-XkbControlsNotifyEvent.enabled_ctrl_changes 36
-XkbControlsNotifyEvent.num_groups 40
-XkbControlsNotifyEvent.keycode 44
-XkbControlsNotifyEvent.event_type 45
-XkbControlsNotifyEvent.req_major 46
-XkbControlsNotifyEvent.req_minor 47
-XkbControlsNotifyEvent 48
-PropMwmHints.flags 0
-PropMwmHints.functions 4
-PropMwmHints.decorations 8
-PropMwmHints.inputMode 12
-PropMwmHints.status 16
-PropMwmHints 20
-XClientMessageEvent.type 0
-XClientMessageEvent.serial 4
-XClientMessageEvent.send_event 8
-XClientMessageEvent.display 12
-XClientMessageEvent.window 16
-XClientMessageEvent.message_type 20
-XClientMessageEvent.format 24
-XClientMessageEvent.data 28
-XClientMessageEvent 48
-XAnyEvent.type 0
-XAnyEvent.serial 4
-XAnyEvent.send_event 8
-XAnyEvent.display 12
-XAnyEvent.window 16
-XAnyEvent 20
-XkbIndicatorNotifyEvent.type 0
-XkbIndicatorNotifyEvent.serial 4
-XkbIndicatorNotifyEvent.send_event 8
-XkbIndicatorNotifyEvent.display 12
-XkbIndicatorNotifyEvent.time 16
-XkbIndicatorNotifyEvent.xkb_type 20
-XkbIndicatorNotifyEvent.device 24
-XkbIndicatorNotifyEvent.changed 28
-XkbIndicatorNotifyEvent.state 32
-XkbIndicatorNotifyEvent 36
-XIMPreeditStateNotifyCallbackStruct.state 0
-XIMPreeditStateNotifyCallbackStruct 4
-XkbAnyEvent.type 0
-XkbAnyEvent.serial 4
-XkbAnyEvent.send_event 8
-XkbAnyEvent.display 12
-XkbAnyEvent.time 16
-XkbAnyEvent.xkb_type 20
-XkbAnyEvent.device 24
-XkbAnyEvent 28
-XMotionEvent.type 0
-XMotionEvent.serial 4
-XMotionEvent.send_event 8
-XMotionEvent.display 12
-XMotionEvent.window 16
-XMotionEvent.root 20
-XMotionEvent.subwindow 24
-XMotionEvent.time 28
-XMotionEvent.x 32
-XMotionEvent.y 36
-XMotionEvent.x_root 40
-XMotionEvent.y_root 44
-XMotionEvent.state 48
-XMotionEvent.is_hint 52
-XMotionEvent.same_screen 56
-XMotionEvent 60
-XIMHotKeyTriggers.num_hot_key 0
-XIMHotKeyTriggers.key 4
-XIMHotKeyTriggers 8
-XIMStyles.count_styles 0
-XIMStyles.supported_styles 4
-XIMStyles 8
-XkbExtensionDeviceNotifyEvent.type 0
-XkbExtensionDeviceNotifyEvent.serial 4
-XkbExtensionDeviceNotifyEvent.send_event 8
-XkbExtensionDeviceNotifyEvent.display 12
-XkbExtensionDeviceNotifyEvent.time 16
-XkbExtensionDeviceNotifyEvent.xkb_type 20
-XkbExtensionDeviceNotifyEvent.device 24
-XkbExtensionDeviceNotifyEvent.reason 28
-XkbExtensionDeviceNotifyEvent.supported 32
-XkbExtensionDeviceNotifyEvent.unsupported 36
-XkbExtensionDeviceNotifyEvent.first_btn 40
-XkbExtensionDeviceNotifyEvent.num_btns 44
-XkbExtensionDeviceNotifyEvent.leds_defined 48
-XkbExtensionDeviceNotifyEvent.led_state 52
-XkbExtensionDeviceNotifyEvent.led_class 56
-XkbExtensionDeviceNotifyEvent.led_id 60
-XkbExtensionDeviceNotifyEvent 64
-XwcTextItem.chars 0
-XwcTextItem.nchars 4
-XwcTextItem.delta 8
-XwcTextItem.font_set 12
-XwcTextItem 16
-XClassHint.res_name 0
-XClassHint.res_class 4
-XClassHint 8
-XChar2b.byte1 0
-XChar2b.byte2 1
-XChar2b 2
-XSetWindowAttributes.background_pixmap 0
-XSetWindowAttributes.background_pixel 4
-XSetWindowAttributes.border_pixmap 8
-XSetWindowAttributes.border_pixel 12
-XSetWindowAttributes.bit_gravity 16
-XSetWindowAttributes.win_gravity 20
-XSetWindowAttributes.backing_store 24
-XSetWindowAttributes.backing_planes 28
-XSetWindowAttributes.backing_pixel 32
-XSetWindowAttributes.save_under 36
-XSetWindowAttributes.event_mask 40
-XSetWindowAttributes.do_not_propagate_mask 44
-XSetWindowAttributes.override_redirect 48
-XSetWindowAttributes.colormap 52
-XSetWindowAttributes.cursor 56
-XSetWindowAttributes 60
-XRenderPictFormat.id 0
-XRenderPictFormat.type 4
-XRenderPictFormat.depth 8
-XRenderPictFormat.direct 12
-XRenderPictFormat.colormap 28
-XRenderPictFormat 32
-XReparentEvent.type 0
-XReparentEvent.serial 4
-XReparentEvent.send_event 8
-XReparentEvent.display 12
-XReparentEvent.event 16
-XReparentEvent.window 20
-XReparentEvent.parent 24
-XReparentEvent.x 28
-XReparentEvent.y 32
-XReparentEvent.override_redirect 36
-XReparentEvent 40
-XCirculateRequestEvent.type 0
-XCirculateRequestEvent.serial 4
-XCirculateRequestEvent.send_event 8
-XCirculateRequestEvent.display 12
-XCirculateRequestEvent.parent 16
-XCirculateRequestEvent.window 20
-XCirculateRequestEvent.place 24
-XCirculateRequestEvent 28
-XImage.width 0
-XImage.height 4
-XImage.xoffset 8
-XImage.format 12
-XImage.data 16
-XImage.byte_order 20
-XImage.bitmap_unit 24
-XImage.bitmap_bit_order 28
-XImage.bitmap_pad 32
-XImage.depth 36
-XImage.bytes_per_line 40
-XImage.bits_per_pixel 44
-XImage.red_mask 48
-XImage.green_mask 52
-XImage.blue_mask 56
-XImage.obdata 60
-XImage.f.create_image 64
-XImage.f.destroy_image 68
-XImage.f.get_pixel 72
-XImage.f.put_pixel 76
-XImage.f.sub_image 80
-XImage.f.add_pixel 84
-XImage 88
-XKeyEvent.type 0
-XKeyEvent.serial 4
-XKeyEvent.send_event 8
-XKeyEvent.display 12
-XKeyEvent.window 16
-XKeyEvent.root 20
-XKeyEvent.subwindow 24
-XKeyEvent.time 28
-XKeyEvent.x 32
-XKeyEvent.y 36
-XKeyEvent.x_root 40
-XKeyEvent.y_root 44
-XKeyEvent.state 48
-XKeyEvent.keycode 52
-XKeyEvent.same_screen 56
-XKeyEvent 60
-XkbActionMessageEvent.type 0
-XkbActionMessageEvent.serial 4
-XkbActionMessageEvent.send_event 8
-XkbActionMessageEvent.display 12
-XkbActionMessageEvent.time 16
-XkbActionMessageEvent.xkb_type 20
-XkbActionMessageEvent.device 24
-XkbActionMessageEvent.keycode 28
-XkbActionMessageEvent.press 32
-XkbActionMessageEvent.key_event_follows 36
-XkbActionMessageEvent.group 40
-XkbActionMessageEvent.mods 44
-XkbActionMessageEvent.message 48
-XkbActionMessageEvent 56
-XdbeSwapInfo.swap_window 0
-XdbeSwapInfo.swap_action 4
-XdbeSwapInfo 8
-XTextItem.chars 0
-XTextItem.nchars 4
-XTextItem.delta 8
-XTextItem.font 12
-XTextItem 16
-XModifierKeymap.max_keypermod 0
-XModifierKeymap.modifiermap 4
-XModifierKeymap 8
-XCharStruct.lbearing 0
-XCharStruct.rbearing 2
-XCharStruct.width 4
-XCharStruct.ascent 6
-XCharStruct.descent 8
-XCharStruct.attributes 10
-XCharStruct 12
-XGravityEvent.type 0
-XGravityEvent.serial 4
-XGravityEvent.send_event 8
-XGravityEvent.display 12
-XGravityEvent.event 16
-XGravityEvent.window 20
-XGravityEvent.x 24
-XGravityEvent.y 28
-XGravityEvent 32
-Visual.ext_data 0
-Visual.visualid 4
-Visual.class 8
-Visual.red_mask 12
-Visual.green_mask 16
-Visual.blue_mask 20
-Visual.bits_per_rgb 24
-Visual.map_entries 28
-Visual 32
-XOMOrientation.num_orientation 0
-XOMOrientation.orientation 4
-XOMOrientation 8
-XkbAccessXNotifyEvent.type 0
-XkbAccessXNotifyEvent.serial 4
-XkbAccessXNotifyEvent.send_event 8
-XkbAccessXNotifyEvent.display 12
-XkbAccessXNotifyEvent.time 16
-XkbAccessXNotifyEvent.xkb_type 20
-XkbAccessXNotifyEvent.device 24
-XkbAccessXNotifyEvent.detail 28
-XkbAccessXNotifyEvent.keycode 32
-XkbAccessXNotifyEvent.sk_delay 36
-XkbAccessXNotifyEvent.debounce_delay 40
-XkbAccessXNotifyEvent 44
-XWindowAttributes.x 0
-XWindowAttributes.y 4
-XWindowAttributes.width 8
-XWindowAttributes.height 12
-XWindowAttributes.border_width 16
-XWindowAttributes.depth 20
-XWindowAttributes.visual 24
-XWindowAttributes.root 28
-XWindowAttributes.class 32
-XWindowAttributes.bit_gravity 36
-XWindowAttributes.win_gravity 40
-XWindowAttributes.backing_store 44
-XWindowAttributes.backing_planes 48
-XWindowAttributes.backing_pixel 52
-XWindowAttributes.save_under 56
-XWindowAttributes.colormap 60
-XWindowAttributes.map_installed 64
-XWindowAttributes.map_state 68
-XWindowAttributes.all_event_masks 72
-XWindowAttributes.your_event_mask 76
-XWindowAttributes.do_not_propagate_mask 80
-XWindowAttributes.override_redirect 84
-XWindowAttributes.screen 88
-XWindowAttributes 92
-XmbTextItem.chars 0
-XmbTextItem.nchars 4
-XmbTextItem.delta 8
-XmbTextItem.font_set 12
-XmbTextItem 16
-XMappingEvent.type 0
-XMappingEvent.serial 4
-XMappingEvent.send_event 8
-XMappingEvent.display 12
-XMappingEvent.window 16
-XMappingEvent.request 20
-XMappingEvent.first_keycode 24
-XMappingEvent.count 28
-XMappingEvent 32
-XSizeHints.flags 0
-XSizeHints.x 4
-XSizeHints.y 8
-XSizeHints.width 12
-XSizeHints.height 16
-XSizeHints.min_width 20
-XSizeHints.min_height 24
-XSizeHints.max_width 28
-XSizeHints.max_height 32
-XSizeHints.width_inc 36
-XSizeHints.height_inc 40
-XSizeHints.min_aspect.x 44
-XSizeHints.min_aspect.y 48
-XSizeHints.max_aspect.x 52
-XSizeHints.max_aspect.y 56
-XSizeHints.base_width 60
-XSizeHints.base_height 64
-XSizeHints.win_gravity 68
-XSizeHints 72
-XUnmapEvent.type 0
-XUnmapEvent.serial 4
-XUnmapEvent.send_event 8
-XUnmapEvent.display 12
-XUnmapEvent.event 16
-XUnmapEvent.window 20
-XUnmapEvent.from_configure 24
-XUnmapEvent 28
-awtImageData.Depth 0
-awtImageData.wsImageFormat 4
-awtImageData.clrdata 16
-awtImageData.convert 48
-awtImageData 304
-XkbStateNotifyEvent.type 0
-XkbStateNotifyEvent.serial 4
-XkbStateNotifyEvent.send_event 8
-XkbStateNotifyEvent.display 12
-XkbStateNotifyEvent.time 16
-XkbStateNotifyEvent.xkb_type 20
-XkbStateNotifyEvent.device 24
-XkbStateNotifyEvent.changed 28
-XkbStateNotifyEvent.group 32
-XkbStateNotifyEvent.base_group 36
-XkbStateNotifyEvent.latched_group 40
-XkbStateNotifyEvent.locked_group 44
-XkbStateNotifyEvent.mods 48
-XkbStateNotifyEvent.base_mods 52
-XkbStateNotifyEvent.latched_mods 56
-XkbStateNotifyEvent.locked_mods 60
-XkbStateNotifyEvent.compat_state 64
-XkbStateNotifyEvent.grab_mods 68
-XkbStateNotifyEvent.compat_grab_mods 69
-XkbStateNotifyEvent.lookup_mods 70
-XkbStateNotifyEvent.compat_lookup_mods 71
-XkbStateNotifyEvent.ptr_buttons 72
-XkbStateNotifyEvent.keycode 76
-XkbStateNotifyEvent.event_type 77
-XkbStateNotifyEvent.req_major 78
-XkbStateNotifyEvent.req_minor 79
-XkbStateNotifyEvent 80
-XExposeEvent.type 0
-XExposeEvent.serial 4
-XExposeEvent.send_event 8
-XExposeEvent.display 12
-XExposeEvent.window 16
-XExposeEvent.x 20
-XExposeEvent.y 24
-XExposeEvent.width 28
-XExposeEvent.height 32
-XExposeEvent.count 36
-XExposeEvent 40
-XkbMapNotifyEvent.type 0
-XkbMapNotifyEvent.serial 4
-XkbMapNotifyEvent.send_event 8
-XkbMapNotifyEvent.display 12
-XkbMapNotifyEvent.time 16
-XkbMapNotifyEvent.xkb_type 20
-XkbMapNotifyEvent.device 24
-XkbMapNotifyEvent.changed 28
-XkbMapNotifyEvent.flags 32
-XkbMapNotifyEvent.first_type 36
-XkbMapNotifyEvent.num_types 40
-XkbMapNotifyEvent.min_key_code 44
-XkbMapNotifyEvent.max_key_code 45
-XkbMapNotifyEvent.first_key_sym 46
-XkbMapNotifyEvent.first_key_act 47
-XkbMapNotifyEvent.first_key_behavior 48
-XkbMapNotifyEvent.first_key_explicit 49
-XkbMapNotifyEvent.first_modmap_key 50
-XkbMapNotifyEvent.first_vmodmap_key 51
-XkbMapNotifyEvent.num_key_syms 52
-XkbMapNotifyEvent.num_key_acts 56
-XkbMapNotifyEvent.num_key_behaviors 60
-XkbMapNotifyEvent.num_key_explicit 64
-XkbMapNotifyEvent.num_modmap_keys 68
-XkbMapNotifyEvent.num_vmodmap_keys 72
-XkbMapNotifyEvent.vmods 76
-XkbMapNotifyEvent 80
-XGCValues.function 0
-XGCValues.plane_mask 4
-XGCValues.foreground 8
-XGCValues.background 12
-XGCValues.line_width 16
-XGCValues.line_style 20
-XGCValues.cap_style 24
-XGCValues.join_style 28
-XGCValues.fill_style 32
-XGCValues.fill_rule 36
-XGCValues.arc_mode 40
-XGCValues.tile 44
-XGCValues.stipple 48
-XGCValues.ts_x_origin 52
-XGCValues.ts_y_origin 56
-XGCValues.font 60
-XGCValues.subwindow_mode 64
-XGCValues.graphics_exposures 68
-XGCValues.clip_x_origin 72
-XGCValues.clip_y_origin 76
-XGCValues.clip_mask 80
-XGCValues.dash_offset 84
-XGCValues.dashes 88
-XGCValues 92
-XFocusChangeEvent.type 0
-XFocusChangeEvent.serial 4
-XFocusChangeEvent.send_event 8
-XFocusChangeEvent.display 12
-XFocusChangeEvent.window 16
-XFocusChangeEvent.mode 20
-XFocusChangeEvent.detail 24
-XFocusChangeEvent 28
-XPixmapFormatValues.depth 0
-XPixmapFormatValues.bits_per_pixel 4
-XPixmapFormatValues.scanline_pad 8
-XPixmapFormatValues 12
-XMapEvent.type 0
-XMapEvent.serial 4
-XMapEvent.send_event 8
-XMapEvent.display 12
-XMapEvent.event 16
-XMapEvent.window 20
-XMapEvent.override_redirect 24
-XMapEvent 28
-XkbBellNotifyEvent.type 0
-XkbBellNotifyEvent.serial 4
-XkbBellNotifyEvent.send_event 8
-XkbBellNotifyEvent.display 12
-XkbBellNotifyEvent.time 16
-XkbBellNotifyEvent.xkb_type 20
-XkbBellNotifyEvent.device 24
-XkbBellNotifyEvent.percent 28
-XkbBellNotifyEvent.pitch 32
-XkbBellNotifyEvent.duration 36
-XkbBellNotifyEvent.bell_class 40
-XkbBellNotifyEvent.bell_id 44
-XkbBellNotifyEvent.name 48
-XkbBellNotifyEvent.window 52
-XkbBellNotifyEvent.event_only 56
-XkbBellNotifyEvent 60
-XIMStringConversionText.length 0
-XIMStringConversionText.feedback 4
-XIMStringConversionText.encoding_is_wchar 8
-XIMStringConversionText.string 12
-XIMStringConversionText 16
-XKeyboardState.key_click_percent 0
-XKeyboardState.bell_percent 4
-XKeyboardState.bell_pitch 8
-XKeyboardState.bell_duration 12
-XKeyboardState.led_mask 16
-XKeyboardState.global_auto_repeat 20
-XKeyboardState.auto_repeats 24
-XKeyboardState 56
-XkbEvent.type 0
-XkbEvent.any 0
-XkbEvent.new_kbd 0
-XkbEvent.map 0
-XkbEvent.state 0
-XkbEvent.ctrls 0
-XkbEvent.indicators 0
-XkbEvent.names 0
-XkbEvent.compat 0
-XkbEvent.bell 0
-XkbEvent.message 0
-XkbEvent.accessx 0
-XkbEvent.device 0
-XkbEvent.core 0
-XkbEvent 96
-XPoint.x 0
-XPoint.y 2
-XPoint 4
-XSegment.x1 0
-XSegment.y1 2
-XSegment.x2 4
-XSegment.y2 6
-XSegment 8
-XIconSize.min_width 0
-XIconSize.min_height 4
-XIconSize.max_width 8
-XIconSize.max_height 12
-XIconSize.width_inc 16
-XIconSize.height_inc 20
-XIconSize 24
-XIMCallback.client_data 0
-XIMCallback.callback 4
-XIMCallback 8
-XConfigureEvent.type 0
-XConfigureEvent.serial 4
-XConfigureEvent.send_event 8
-XConfigureEvent.display 12
-XConfigureEvent.event 16
-XConfigureEvent.window 20
-XConfigureEvent.x 24
-XConfigureEvent.y 28
-XConfigureEvent.width 32
-XConfigureEvent.height 36
-XConfigureEvent.border_width 40
-XConfigureEvent.above 44
-XConfigureEvent.override_redirect 48
-XConfigureEvent 52
-XRectangle.x 0
-XRectangle.y 2
-XRectangle.width 4
-XRectangle.height 6
-XRectangle 8
-XkbNamesNotifyEvent.type 0
-XkbNamesNotifyEvent.serial 4
-XkbNamesNotifyEvent.send_event 8
-XkbNamesNotifyEvent.display 12
-XkbNamesNotifyEvent.time 16
-XkbNamesNotifyEvent.xkb_type 20
-XkbNamesNotifyEvent.device 24
-XkbNamesNotifyEvent.changed 28
-XkbNamesNotifyEvent.first_type 32
-XkbNamesNotifyEvent.num_types 36
-XkbNamesNotifyEvent.first_lvl 40
-XkbNamesNotifyEvent.num_lvls 44
-XkbNamesNotifyEvent.num_aliases 48
-XkbNamesNotifyEvent.num_radio_groups 52
-XkbNamesNotifyEvent.changed_vmods 56
-XkbNamesNotifyEvent.changed_groups 60
-XkbNamesNotifyEvent.changed_indicators 64
-XkbNamesNotifyEvent.first_key 68
-XkbNamesNotifyEvent.num_keys 72
-XkbNamesNotifyEvent 76
-XCreateWindowEvent.type 0
-XCreateWindowEvent.serial 4
-XCreateWindowEvent.send_event 8
-XCreateWindowEvent.display 12
-XCreateWindowEvent.parent 16
-XCreateWindowEvent.window 20
-XCreateWindowEvent.x 24
-XCreateWindowEvent.y 28
-XCreateWindowEvent.width 32
-XCreateWindowEvent.height 36
-XCreateWindowEvent.border_width 40
-XCreateWindowEvent.override_redirect 44
-XCreateWindowEvent 48
-XVisibilityEvent.type 0
-XVisibilityEvent.serial 4
-XVisibilityEvent.send_event 8
-XVisibilityEvent.display 12
-XVisibilityEvent.window 16
-XVisibilityEvent.state 20
-XVisibilityEvent 24
-XWMHints.flags 0
-XWMHints.initial_state 8
-XWMHints.icon_pixmap 12
-XWMHints.icon_window 16
-XWMHints.icon_x 20
-XWMHints.icon_y 24
-XWMHints.icon_mask 28
-XWMHints.input 4
-XWMHints.window_group 32
-XWMHints 36
-XCrossingEvent.type 0
-XCrossingEvent.serial 4
-XCrossingEvent.send_event 8
-XCrossingEvent.display 12
-XCrossingEvent.window 16
-XCrossingEvent.root 20
-XCrossingEvent.subwindow 24
-XCrossingEvent.time 28
-XCrossingEvent.x 32
-XCrossingEvent.y 36
-XCrossingEvent.x_root 40
-XCrossingEvent.y_root 44
-XCrossingEvent.mode 48
-XCrossingEvent.detail 52
-XCrossingEvent.same_screen 56
-XCrossingEvent.focus 60
-XCrossingEvent.state 64
-XCrossingEvent 68
-XSelectionRequestEvent.type 0
-XSelectionRequestEvent.serial 4
-XSelectionRequestEvent.send_event 8
-XSelectionRequestEvent.display 12
-XSelectionRequestEvent.owner 16
-XSelectionRequestEvent.requestor 20
-XSelectionRequestEvent.selection 24
-XSelectionRequestEvent.target 28
-XSelectionRequestEvent.property 32
-XSelectionRequestEvent.time 36
-XSelectionRequestEvent 40
-XNoExposeEvent.type 0
-XNoExposeEvent.serial 4
-XNoExposeEvent.send_event 8
-XNoExposeEvent.display 12
-XNoExposeEvent.drawable 16
-XNoExposeEvent.major_code 20
-XNoExposeEvent.minor_code 24
-XNoExposeEvent 28
-XHostAddress.family 0
-XHostAddress.length 4
-XHostAddress.address 8
-XHostAddress 12
-XColormapEvent.type 0
-XColormapEvent.serial 4
-XColormapEvent.send_event 8
-XColormapEvent.display 12
-XColormapEvent.window 16
-XColormapEvent.colormap 20
-XColormapEvent.new 24
-XColormapEvent.state 28
-XColormapEvent 32
-ColorEntry.r 0
-ColorEntry.g 1
-ColorEntry.b 2
-ColorEntry.flags 3
-ColorEntry 4
-XResizeRequestEvent.type 0
-XResizeRequestEvent.serial 4
-XResizeRequestEvent.send_event 8
-XResizeRequestEvent.display 12
-XResizeRequestEvent.window 16
-XResizeRequestEvent.width 20
-XResizeRequestEvent.height 24
-XResizeRequestEvent 28
-Depth.depth 0
-Depth.nvisuals 4
-Depth.visuals 8
-Depth 12
-XPropertyEvent.type 0
-XPropertyEvent.serial 4
-XPropertyEvent.send_event 8
-XPropertyEvent.display 12
-XPropertyEvent.window 16
-XPropertyEvent.atom 20
-XPropertyEvent.time 24
-XPropertyEvent.state 28
-XPropertyEvent 32
-XDestroyWindowEvent.type 0
-XDestroyWindowEvent.serial 4
-XDestroyWindowEvent.send_event 8
-XDestroyWindowEvent.display 12
-XDestroyWindowEvent.event 16
-XDestroyWindowEvent.window 20
-XDestroyWindowEvent 24
-XStandardColormap.colormap 0
-XStandardColormap.red_max 4
-XStandardColormap.red_mult 8
-XStandardColormap.green_max 12
-XStandardColormap.green_mult 16
-XStandardColormap.blue_max 20
-XStandardColormap.blue_mult 24
-XStandardColormap.base_pixel 28
-XStandardColormap.visualid 32
-XStandardColormap.killid 36
-XStandardColormap 40
-XComposeStatus.compose_ptr 0
-XComposeStatus.chars_matched 4
-XComposeStatus 8
-AwtGraphicsConfigData.awt_depth 0
-AwtGraphicsConfigData.awt_cmap 4
-AwtGraphicsConfigData.awt_visInfo 8
-AwtGraphicsConfigData.awt_num_colors 48
-AwtGraphicsConfigData.awtImage 52
-AwtGraphicsConfigData.AwtColorMatch 56
-AwtGraphicsConfigData.monoImage 60
-AwtGraphicsConfigData.monoPixmap 64
-AwtGraphicsConfigData.monoPixmapWidth 68
-AwtGraphicsConfigData.monoPixmapHeight 72
-AwtGraphicsConfigData.monoPixmapGC 76
-AwtGraphicsConfigData.pixelStride 80
-AwtGraphicsConfigData.color_data 84
-AwtGraphicsConfigData.glxInfo 88
-AwtGraphicsConfigData.isTranslucencySupported 92
-AwtGraphicsConfigData.renderPictFormat 96
-AwtGraphicsConfigData 128
-XColor.pixel 0
-XColor.red 4
-XColor.green 6
-XColor.blue 8
-XColor.flags 10
-XColor.pad 11
-XColor 12
-XTextProperty.value 0
-XTextProperty.encoding 4
-XTextProperty.format 8
-XTextProperty.nitems 12
-XTextProperty 16
diff -r c3ec048aad63 -r ece10494786c make/data/x11wrappergen/sizes.64
--- a/make/data/x11wrappergen/sizes.64 Thu Mar 01 16:35:36 2018 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1017 +0,0 @@
-long 8
-int 4
-short 2
-ptr 8
-Bool 4
-Atom 8
-Window 8
-XExtData.number 0
-XExtData.next 8
-XExtData.free_private 16
-XExtData.private_data 24
-XExtData 32
-XIMStringConversionCallbackStruct.position 0
-XIMStringConversionCallbackStruct.direction 4
-XIMStringConversionCallbackStruct.operation 8
-XIMStringConversionCallbackStruct.factor 10
-XIMStringConversionCallbackStruct.text 16
-XIMStringConversionCallbackStruct 24
-XkbNewKeyboardNotifyEvent.type 0
-XkbNewKeyboardNotifyEvent.serial 8
-XkbNewKeyboardNotifyEvent.send_event 16
-XkbNewKeyboardNotifyEvent.display 24
-XkbNewKeyboardNotifyEvent.time 32
-XkbNewKeyboardNotifyEvent.xkb_type 40
-XkbNewKeyboardNotifyEvent.device 44
-XkbNewKeyboardNotifyEvent.old_device 48
-XkbNewKeyboardNotifyEvent.min_key_code 52
-XkbNewKeyboardNotifyEvent.max_key_code 56
-XkbNewKeyboardNotifyEvent.old_min_key_code 60
-XkbNewKeyboardNotifyEvent.old_max_key_code 64
-XkbNewKeyboardNotifyEvent.changed 68
-XkbNewKeyboardNotifyEvent.req_major 72
-XkbNewKeyboardNotifyEvent.req_minor 73
-XkbNewKeyboardNotifyEvent 80
-XTimeCoord.time 0
-XTimeCoord.x 8
-XTimeCoord.y 10
-XTimeCoord 16
-XkbCompatMapNotifyEvent.type 0
-XkbCompatMapNotifyEvent.serial 8
-XkbCompatMapNotifyEvent.send_event 16
-XkbCompatMapNotifyEvent.display 24
-XkbCompatMapNotifyEvent.time 32
-XkbCompatMapNotifyEvent.xkb_type 40
-XkbCompatMapNotifyEvent.device 44
-XkbCompatMapNotifyEvent.changed_groups 48
-XkbCompatMapNotifyEvent.first_si 52
-XkbCompatMapNotifyEvent.num_si 56
-XkbCompatMapNotifyEvent.num_total_si 60
-XkbCompatMapNotifyEvent 64
-XIMStatusDrawCallbackStruct.type 0
-XIMStatusDrawCallbackStruct.data 8
-XIMStatusDrawCallbackStruct 16
-XKeyboardControl.key_click_percent 0
-XKeyboardControl.bell_percent 4
-XKeyboardControl.bell_pitch 8
-XKeyboardControl.bell_duration 12
-XKeyboardControl.led 16
-XKeyboardControl.led_mode 20
-XKeyboardControl.key 24
-XKeyboardControl.auto_repeat_mode 28
-XKeyboardControl 32
-XSelectionClearEvent.type 0
-XSelectionClearEvent.serial 8
-XSelectionClearEvent.send_event 16
-XSelectionClearEvent.display 24
-XSelectionClearEvent.window 32
-XSelectionClearEvent.selection 40
-XSelectionClearEvent.time 48
-XSelectionClearEvent 56
-XWindowChanges.x 0
-XWindowChanges.y 4
-XWindowChanges.width 8
-XWindowChanges.height 12
-XWindowChanges.border_width 16
-XWindowChanges.sibling 24
-XWindowChanges.stack_mode 32
-XWindowChanges 40
-XIMPreeditCaretCallbackStruct.position 0
-XIMPreeditCaretCallbackStruct.direction 4
-XIMPreeditCaretCallbackStruct.style 8
-XIMPreeditCaretCallbackStruct 12
-XOMCharSetList.charset_count 0
-XOMCharSetList.charset_list 8
-XOMCharSetList 16
-XOMFontInfo.num_font 0
-XOMFontInfo.font_struct_list 8
-XOMFontInfo.font_name_list 16
-XOMFontInfo 24
-AwtScreenData.numConfigs 0
-AwtScreenData.root 8
-AwtScreenData.whitepixel 16
-AwtScreenData.blackpixel 24
-AwtScreenData.defaultConfig 32
-AwtScreenData.configs 40
-AwtScreenData 48
-XIMHotKeyTrigger.keysym 0
-XIMHotKeyTrigger.modifier 8
-XIMHotKeyTrigger.modifier_mask 12
-XIMHotKeyTrigger 16
-XCirculateEvent.type 0
-XCirculateEvent.serial 8
-XCirculateEvent.send_event 16
-XCirculateEvent.display 24
-XCirculateEvent.event 32
-XCirculateEvent.window 40
-XCirculateEvent.place 48
-XCirculateEvent 56
-Screen.ext_data 0
-Screen.display 8
-Screen.root 16
-Screen.width 24
-Screen.height 28
-Screen.mwidth 32
-Screen.mheight 36
-Screen.ndepths 40
-Screen.depths 48
-Screen.root_depth 56
-Screen.root_visual 64
-Screen.default_gc 72
-Screen.cmap 80
-Screen.white_pixel 88
-Screen.black_pixel 96
-Screen.max_maps 104
-Screen.min_maps 108
-Screen.backing_store 112
-Screen.save_unders 116
-Screen.root_input_mask 120
-Screen 128
-XMapRequestEvent.type 0
-XMapRequestEvent.serial 8
-XMapRequestEvent.send_event 16
-XMapRequestEvent.display 24
-XMapRequestEvent.parent 32
-XMapRequestEvent.window 40
-XMapRequestEvent 48
-XIMText.length 0
-XIMText.feedback 8
-XIMText.encoding_is_wchar 16
-XIMText.string 24
-XIMText 32
-XGraphicsExposeEvent.type 0
-XGraphicsExposeEvent.serial 8
-XGraphicsExposeEvent.send_event 16
-XGraphicsExposeEvent.display 24
-XGraphicsExposeEvent.drawable 32
-XGraphicsExposeEvent.x 40
-XGraphicsExposeEvent.y 44
-XGraphicsExposeEvent.width 48
-XGraphicsExposeEvent.height 52
-XGraphicsExposeEvent.count 56
-XGraphicsExposeEvent.major_code 60
-XGraphicsExposeEvent.minor_code 64
-XGraphicsExposeEvent 72
-XEvent.type 0
-XEvent.xany 0
-XEvent.xkey 0
-XEvent.xbutton 0
-XEvent.xmotion 0
-XEvent.xcrossing 0
-XEvent.xfocus 0
-XEvent.xexpose 0
-XEvent.xgraphicsexpose 0
-XEvent.xnoexpose 0
-XEvent.xvisibility 0
-XEvent.xcreatewindow 0
-XEvent.xdestroywindow 0
-XEvent.xunmap 0
-XEvent.xmap 0
-XEvent.xmaprequest 0
-XEvent.xreparent 0
-XEvent.xconfigure 0
-XEvent.xgravity 0
-XEvent.xresizerequest 0
-XEvent.xconfigurerequest 0
-XEvent.xcirculate 0
-XEvent.xcirculaterequest 0
-XEvent.xproperty 0
-XEvent.xselectionclear 0
-XEvent.xselectionrequest 0
-XEvent.xselection 0
-XEvent.xcolormap 0
-XEvent.xclient 0
-XEvent.xmapping 0
-XEvent.xerror 0
-XEvent.xkeymap 0
-XEvent.pad 0
-XEvent 192
-XRenderDirectFormat.red 0
-XRenderDirectFormat.redMask 2
-XRenderDirectFormat.green 4
-XRenderDirectFormat.greenMask 6
-XRenderDirectFormat.blue 8
-XRenderDirectFormat.blueMask 10
-XRenderDirectFormat.alpha 12
-XRenderDirectFormat.alphaMask 14
-XRenderDirectFormat 16
-ColorData.awt_Colors 0
-ColorData.awt_numICMcolors 8
-ColorData.awt_icmLUT 16
-ColorData.awt_icmLUT2Colors 24
-ColorData.img_grays 32
-ColorData.img_clr_tbl 40
-ColorData.img_oda_red 48
-ColorData.img_oda_green 56
-ColorData.img_oda_blue 64
-ColorData.pGrayInverseLutData 72
-ColorData.screendata 80
-ColorData.representsPrimaries 84
-ColorData 88
-XFontStruct.ext_data 0
-XFontStruct.fid 8
-XFontStruct.direction 16
-XFontStruct.min_char_or_byte2 20
-XFontStruct.max_char_or_byte2 24
-XFontStruct.min_byte1 28
-XFontStruct.max_byte1 32
-XFontStruct.all_chars_exist 36
-XFontStruct.n_properties 44
-XFontStruct.properties 48
-XFontStruct.min_bounds 56
-XFontStruct.max_bounds 68
-XFontStruct.per_char 80
-XFontStruct.ascent 88
-XFontStruct.descent 92
-XFontStruct 96
-XExtCodes.extension 0
-XExtCodes.major_opcode 4
-XExtCodes.first_event 8
-XExtCodes.first_error 12
-XExtCodes 16
-XFontSetExtents.max_ink_extent 0
-XFontSetExtents.max_logical_extent 8
-XFontSetExtents 16
-XSelectionEvent.type 0
-XSelectionEvent.serial 8
-XSelectionEvent.send_event 16
-XSelectionEvent.display 24
-XSelectionEvent.requestor 32
-XSelectionEvent.selection 40
-XSelectionEvent.target 48
-XSelectionEvent.property 56
-XSelectionEvent.time 64
-XSelectionEvent 72
-XArc.x 0
-XArc.y 2
-XArc.width 4
-XArc.height 6
-XArc.angle1 8
-XArc.angle2 10
-XArc 12
-XErrorEvent.type 0
-XErrorEvent.display 8
-XErrorEvent.resourceid 16
-XErrorEvent.serial 24
-XErrorEvent.error_code 32
-XErrorEvent.request_code 33
-XErrorEvent.minor_code 34
-XErrorEvent 40
-XConfigureRequestEvent.type 0
-XConfigureRequestEvent.serial 8
-XConfigureRequestEvent.send_event 16
-XConfigureRequestEvent.display 24
-XConfigureRequestEvent.parent 32
-XConfigureRequestEvent.window 40
-XConfigureRequestEvent.x 48
-XConfigureRequestEvent.y 52
-XConfigureRequestEvent.width 56
-XConfigureRequestEvent.height 60
-XConfigureRequestEvent.border_width 64
-XConfigureRequestEvent.above 72
-XConfigureRequestEvent.detail 80
-XConfigureRequestEvent.value_mask 88
-XConfigureRequestEvent 96
-ScreenFormat.ext_data 0
-ScreenFormat.depth 8
-ScreenFormat.bits_per_pixel 12
-ScreenFormat.scanline_pad 16
-ScreenFormat 24
-XButtonEvent.type 0
-XButtonEvent.serial 8
-XButtonEvent.send_event 16
-XButtonEvent.display 24
-XButtonEvent.window 32
-XButtonEvent.root 40
-XButtonEvent.subwindow 48
-XButtonEvent.time 56
-XButtonEvent.x 64
-XButtonEvent.y 68
-XButtonEvent.x_root 72
-XButtonEvent.y_root 76
-XButtonEvent.state 80
-XButtonEvent.button 84
-XButtonEvent.same_screen 88
-XButtonEvent 96
-XFontProp.name 0
-XFontProp.card32 8
-XFontProp 16
-XIMValuesList.count_values 0
-XIMValuesList.supported_values 8
-XIMValuesList 16
-XKeymapEvent.type 0
-XKeymapEvent.serial 8
-XKeymapEvent.send_event 16
-XKeymapEvent.display 24
-XKeymapEvent.window 32
-XKeymapEvent.key_vector 40
-XKeymapEvent 72
-XTextItem16.chars 0
-XTextItem16.nchars 8
-XTextItem16.delta 12
-XTextItem16.font 16
-XTextItem16 24
-XIMPreeditDrawCallbackStruct.caret 0
-XIMPreeditDrawCallbackStruct.chg_first 4
-XIMPreeditDrawCallbackStruct.chg_length 8
-XIMPreeditDrawCallbackStruct.text 16
-XIMPreeditDrawCallbackStruct 24
-XVisualInfo.visual 0
-XVisualInfo.visualid 8
-XVisualInfo.screen 16
-XVisualInfo.depth 20
-XVisualInfo.class 24
-XVisualInfo.red_mask 32
-XVisualInfo.green_mask 40
-XVisualInfo.blue_mask 48
-XVisualInfo.colormap_size 56
-XVisualInfo.bits_per_rgb 60
-XVisualInfo 64
-XkbControlsNotifyEvent.type 0
-XkbControlsNotifyEvent.serial 8
-XkbControlsNotifyEvent.send_event 16
-XkbControlsNotifyEvent.display 24
-XkbControlsNotifyEvent.time 32
-XkbControlsNotifyEvent.xkb_type 40
-XkbControlsNotifyEvent.device 44
-XkbControlsNotifyEvent.changed_ctrls 48
-XkbControlsNotifyEvent.enabled_ctrls 52
-XkbControlsNotifyEvent.enabled_ctrl_changes 56
-XkbControlsNotifyEvent.num_groups 60
-XkbControlsNotifyEvent.keycode 64
-XkbControlsNotifyEvent.event_type 65
-XkbControlsNotifyEvent.req_major 66
-XkbControlsNotifyEvent.req_minor 67
-XkbControlsNotifyEvent 72
-PropMwmHints.flags 0
-PropMwmHints.functions 8
-PropMwmHints.decorations 16
-PropMwmHints.inputMode 24
-PropMwmHints.status 32
-PropMwmHints 40
-XClientMessageEvent.type 0
-XClientMessageEvent.serial 8
-XClientMessageEvent.send_event 16
-XClientMessageEvent.display 24
-XClientMessageEvent.window 32
-XClientMessageEvent.message_type 40
-XClientMessageEvent.format 48
-XClientMessageEvent.data 56
-XClientMessageEvent 96
-XAnyEvent.type 0
-XAnyEvent.serial 8
-XAnyEvent.send_event 16
-XAnyEvent.display 24
-XAnyEvent.window 32
-XAnyEvent 40
-XkbIndicatorNotifyEvent.type 0
-XkbIndicatorNotifyEvent.serial 8
-XkbIndicatorNotifyEvent.send_event 16
-XkbIndicatorNotifyEvent.display 24
-XkbIndicatorNotifyEvent.time 32
-XkbIndicatorNotifyEvent.xkb_type 40
-XkbIndicatorNotifyEvent.device 44
-XkbIndicatorNotifyEvent.changed 48
-XkbIndicatorNotifyEvent.state 52
-XkbIndicatorNotifyEvent 56
-XIMPreeditStateNotifyCallbackStruct.state 0
-XIMPreeditStateNotifyCallbackStruct 8
-XkbAnyEvent.type 0
-XkbAnyEvent.serial 8
-XkbAnyEvent.send_event 16
-XkbAnyEvent.display 24
-XkbAnyEvent.time 32
-XkbAnyEvent.xkb_type 40
-XkbAnyEvent.device 44
-XkbAnyEvent 48
-XMotionEvent.type 0
-XMotionEvent.serial 8
-XMotionEvent.send_event 16
-XMotionEvent.display 24
-XMotionEvent.window 32
-XMotionEvent.root 40
-XMotionEvent.subwindow 48
-XMotionEvent.time 56
-XMotionEvent.x 64
-XMotionEvent.y 68
-XMotionEvent.x_root 72
-XMotionEvent.y_root 76
-XMotionEvent.state 80
-XMotionEvent.is_hint 84
-XMotionEvent.same_screen 88
-XMotionEvent 96
-XIMHotKeyTriggers.num_hot_key 0
-XIMHotKeyTriggers.key 8
-XIMHotKeyTriggers 16
-XIMStyles.count_styles 0
-XIMStyles.supported_styles 8
-XIMStyles 16
-XkbExtensionDeviceNotifyEvent.type 0
-XkbExtensionDeviceNotifyEvent.serial 8
-XkbExtensionDeviceNotifyEvent.send_event 16
-XkbExtensionDeviceNotifyEvent.display 24
-XkbExtensionDeviceNotifyEvent.time 32
-XkbExtensionDeviceNotifyEvent.xkb_type 40
-XkbExtensionDeviceNotifyEvent.device 44
-XkbExtensionDeviceNotifyEvent.reason 48
-XkbExtensionDeviceNotifyEvent.supported 52
-XkbExtensionDeviceNotifyEvent.unsupported 56
-XkbExtensionDeviceNotifyEvent.first_btn 60
-XkbExtensionDeviceNotifyEvent.num_btns 64
-XkbExtensionDeviceNotifyEvent.leds_defined 68
-XkbExtensionDeviceNotifyEvent.led_state 72
-XkbExtensionDeviceNotifyEvent.led_class 76
-XkbExtensionDeviceNotifyEvent.led_id 80
-XkbExtensionDeviceNotifyEvent 88
-XwcTextItem.chars 0
-XwcTextItem.nchars 8
-XwcTextItem.delta 12
-XwcTextItem.font_set 16
-XwcTextItem 24
-XClassHint.res_name 0
-XClassHint.res_class 8
-XClassHint 16
-XChar2b.byte1 0
-XChar2b.byte2 1
-XChar2b 2
-XSetWindowAttributes.background_pixmap 0
-XSetWindowAttributes.background_pixel 8
-XSetWindowAttributes.border_pixmap 16
-XSetWindowAttributes.border_pixel 24
-XSetWindowAttributes.bit_gravity 32
-XSetWindowAttributes.win_gravity 36
-XSetWindowAttributes.backing_store 40
-XSetWindowAttributes.backing_planes 48
-XSetWindowAttributes.backing_pixel 56
-XSetWindowAttributes.save_under 64
-XSetWindowAttributes.event_mask 72
-XSetWindowAttributes.do_not_propagate_mask 80
-XSetWindowAttributes.override_redirect 88
-XSetWindowAttributes.colormap 96
-XSetWindowAttributes.cursor 104
-XSetWindowAttributes 112
-XRenderPictFormat.id 0
-XRenderPictFormat.type 8
-XRenderPictFormat.depth 12
-XRenderPictFormat.direct 16
-XRenderPictFormat.colormap 32
-XRenderPictFormat 40
-XReparentEvent.type 0
-XReparentEvent.serial 8
-XReparentEvent.send_event 16
-XReparentEvent.display 24
-XReparentEvent.event 32
-XReparentEvent.window 40
-XReparentEvent.parent 48
-XReparentEvent.x 56
-XReparentEvent.y 60
-XReparentEvent.override_redirect 64
-XReparentEvent 72
-XCirculateRequestEvent.type 0
-XCirculateRequestEvent.serial 8
-XCirculateRequestEvent.send_event 16
-XCirculateRequestEvent.display 24
-XCirculateRequestEvent.parent 32
-XCirculateRequestEvent.window 40
-XCirculateRequestEvent.place 48
-XCirculateRequestEvent 56
-XImage.width 0
-XImage.height 4
-XImage.xoffset 8
-XImage.format 12
-XImage.data 16
-XImage.byte_order 24
-XImage.bitmap_unit 28
-XImage.bitmap_bit_order 32
-XImage.bitmap_pad 36
-XImage.depth 40
-XImage.bytes_per_line 44
-XImage.bits_per_pixel 48
-XImage.red_mask 56
-XImage.green_mask 64
-XImage.blue_mask 72
-XImage.obdata 80
-XImage.f.create_image 88
-XImage.f.destroy_image 96
-XImage.f.get_pixel 104
-XImage.f.put_pixel 112
-XImage.f.sub_image 120
-XImage.f.add_pixel 128
-XImage 136
-XKeyEvent.type 0
-XKeyEvent.serial 8
-XKeyEvent.send_event 16
-XKeyEvent.display 24
-XKeyEvent.window 32
-XKeyEvent.root 40
-XKeyEvent.subwindow 48
-XKeyEvent.time 56
-XKeyEvent.x 64
-XKeyEvent.y 68
-XKeyEvent.x_root 72
-XKeyEvent.y_root 76
-XKeyEvent.state 80
-XKeyEvent.keycode 84
-XKeyEvent.same_screen 88
-XKeyEvent 96
-XkbActionMessageEvent.type 0
-XkbActionMessageEvent.serial 8
-XkbActionMessageEvent.send_event 16
-XkbActionMessageEvent.display 24
-XkbActionMessageEvent.time 32
-XkbActionMessageEvent.xkb_type 40
-XkbActionMessageEvent.device 44
-XkbActionMessageEvent.keycode 48
-XkbActionMessageEvent.press 52
-XkbActionMessageEvent.key_event_follows 56
-XkbActionMessageEvent.group 60
-XkbActionMessageEvent.mods 64
-XkbActionMessageEvent.message 68
-XkbActionMessageEvent 80
-XdbeSwapInfo.swap_window 0
-XdbeSwapInfo.swap_action 8
-XdbeSwapInfo 16
-XTextItem.chars 0
-XTextItem.nchars 8
-XTextItem.delta 12
-XTextItem.font 16
-XTextItem 24
-XModifierKeymap.max_keypermod 0
-XModifierKeymap.modifiermap 8
-XModifierKeymap 16
-XCharStruct.lbearing 0
-XCharStruct.rbearing 2
-XCharStruct.width 4
-XCharStruct.ascent 6
-XCharStruct.descent 8
-XCharStruct.attributes 10
-XCharStruct 12
-XGravityEvent.type 0
-XGravityEvent.serial 8
-XGravityEvent.send_event 16
-XGravityEvent.display 24
-XGravityEvent.event 32
-XGravityEvent.window 40
-XGravityEvent.x 48
-XGravityEvent.y 52
-XGravityEvent 56
-Visual.ext_data 0
-Visual.visualid 8
-Visual.class 16
-Visual.red_mask 24
-Visual.green_mask 32
-Visual.blue_mask 40
-Visual.bits_per_rgb 48
-Visual.map_entries 52
-Visual 56
-XOMOrientation.num_orientation 0
-XOMOrientation.orientation 8
-XOMOrientation 16
-XkbAccessXNotifyEvent.type 0
-XkbAccessXNotifyEvent.serial 8
-XkbAccessXNotifyEvent.send_event 16
-XkbAccessXNotifyEvent.display 24
-XkbAccessXNotifyEvent.time 32
-XkbAccessXNotifyEvent.xkb_type 40
-XkbAccessXNotifyEvent.device 44
-XkbAccessXNotifyEvent.detail 48
-XkbAccessXNotifyEvent.keycode 52
-XkbAccessXNotifyEvent.sk_delay 56
-XkbAccessXNotifyEvent.debounce_delay 60
-XkbAccessXNotifyEvent 64
-XWindowAttributes.x 0
-XWindowAttributes.y 4
-XWindowAttributes.width 8
-XWindowAttributes.height 12
-XWindowAttributes.border_width 16
-XWindowAttributes.depth 20
-XWindowAttributes.visual 24
-XWindowAttributes.root 32
-XWindowAttributes.class 40
-XWindowAttributes.bit_gravity 44
-XWindowAttributes.win_gravity 48
-XWindowAttributes.backing_store 52
-XWindowAttributes.backing_planes 56
-XWindowAttributes.backing_pixel 64
-XWindowAttributes.save_under 72
-XWindowAttributes.colormap 80
-XWindowAttributes.map_installed 88
-XWindowAttributes.map_state 92
-XWindowAttributes.all_event_masks 96
-XWindowAttributes.your_event_mask 104
-XWindowAttributes.do_not_propagate_mask 112
-XWindowAttributes.override_redirect 120
-XWindowAttributes.screen 128
-XWindowAttributes 136
-XmbTextItem.chars 0
-XmbTextItem.nchars 8
-XmbTextItem.delta 12
-XmbTextItem.font_set 16
-XmbTextItem 24
-XMappingEvent.type 0
-XMappingEvent.serial 8
-XMappingEvent.send_event 16
-XMappingEvent.display 24
-XMappingEvent.window 32
-XMappingEvent.request 40
-XMappingEvent.first_keycode 44
-XMappingEvent.count 48
-XMappingEvent 56
-XSizeHints.flags 0
-XSizeHints.x 8
-XSizeHints.y 12
-XSizeHints.width 16
-XSizeHints.height 20
-XSizeHints.min_width 24
-XSizeHints.min_height 28
-XSizeHints.max_width 32
-XSizeHints.max_height 36
-XSizeHints.width_inc 40
-XSizeHints.height_inc 44
-XSizeHints.min_aspect.x 48
-XSizeHints.min_aspect.y 52
-XSizeHints.max_aspect.x 56
-XSizeHints.max_aspect.y 60
-XSizeHints.base_width 64
-XSizeHints.base_height 68
-XSizeHints.win_gravity 72
-XSizeHints 80
-XUnmapEvent.type 0
-XUnmapEvent.serial 8
-XUnmapEvent.send_event 16
-XUnmapEvent.display 24
-XUnmapEvent.event 32
-XUnmapEvent.window 40
-XUnmapEvent.from_configure 48
-XUnmapEvent 56
-awtImageData.Depth 0
-awtImageData.wsImageFormat 4
-awtImageData.clrdata 16
-awtImageData.convert 48
-awtImageData 560
-XkbStateNotifyEvent.type 0
-XkbStateNotifyEvent.serial 8
-XkbStateNotifyEvent.send_event 16
-XkbStateNotifyEvent.display 24
-XkbStateNotifyEvent.time 32
-XkbStateNotifyEvent.xkb_type 40
-XkbStateNotifyEvent.device 44
-XkbStateNotifyEvent.changed 48
-XkbStateNotifyEvent.group 52
-XkbStateNotifyEvent.base_group 56
-XkbStateNotifyEvent.latched_group 60
-XkbStateNotifyEvent.locked_group 64
-XkbStateNotifyEvent.mods 68
-XkbStateNotifyEvent.base_mods 72
-XkbStateNotifyEvent.latched_mods 76
-XkbStateNotifyEvent.locked_mods 80
-XkbStateNotifyEvent.compat_state 84
-XkbStateNotifyEvent.grab_mods 88
-XkbStateNotifyEvent.compat_grab_mods 89
-XkbStateNotifyEvent.lookup_mods 90
-XkbStateNotifyEvent.compat_lookup_mods 91
-XkbStateNotifyEvent.ptr_buttons 92
-XkbStateNotifyEvent.keycode 96
-XkbStateNotifyEvent.event_type 97
-XkbStateNotifyEvent.req_major 98
-XkbStateNotifyEvent.req_minor 99
-XkbStateNotifyEvent 104
-XExposeEvent.type 0
-XExposeEvent.serial 8
-XExposeEvent.send_event 16
-XExposeEvent.display 24
-XExposeEvent.window 32
-XExposeEvent.x 40
-XExposeEvent.y 44
-XExposeEvent.width 48
-XExposeEvent.height 52
-XExposeEvent.count 56
-XExposeEvent 64
-XkbMapNotifyEvent.type 0
-XkbMapNotifyEvent.serial 8
-XkbMapNotifyEvent.send_event 16
-XkbMapNotifyEvent.display 24
-XkbMapNotifyEvent.time 32
-XkbMapNotifyEvent.xkb_type 40
-XkbMapNotifyEvent.device 44
-XkbMapNotifyEvent.changed 48
-XkbMapNotifyEvent.flags 52
-XkbMapNotifyEvent.first_type 56
-XkbMapNotifyEvent.num_types 60
-XkbMapNotifyEvent.min_key_code 64
-XkbMapNotifyEvent.max_key_code 65
-XkbMapNotifyEvent.first_key_sym 66
-XkbMapNotifyEvent.first_key_act 67
-XkbMapNotifyEvent.first_key_behavior 68
-XkbMapNotifyEvent.first_key_explicit 69
-XkbMapNotifyEvent.first_modmap_key 70
-XkbMapNotifyEvent.first_vmodmap_key 71
-XkbMapNotifyEvent.num_key_syms 72
-XkbMapNotifyEvent.num_key_acts 76
-XkbMapNotifyEvent.num_key_behaviors 80
-XkbMapNotifyEvent.num_key_explicit 84
-XkbMapNotifyEvent.num_modmap_keys 88
-XkbMapNotifyEvent.num_vmodmap_keys 92
-XkbMapNotifyEvent.vmods 96
-XkbMapNotifyEvent 104
-XGCValues.function 0
-XGCValues.plane_mask 8
-XGCValues.foreground 16
-XGCValues.background 24
-XGCValues.line_width 32
-XGCValues.line_style 36
-XGCValues.cap_style 40
-XGCValues.join_style 44
-XGCValues.fill_style 48
-XGCValues.fill_rule 52
-XGCValues.arc_mode 56
-XGCValues.tile 64
-XGCValues.stipple 72
-XGCValues.ts_x_origin 80
-XGCValues.ts_y_origin 84
-XGCValues.font 88
-XGCValues.subwindow_mode 96
-XGCValues.graphics_exposures 100
-XGCValues.clip_x_origin 104
-XGCValues.clip_y_origin 108
-XGCValues.clip_mask 112
-XGCValues.dash_offset 120
-XGCValues.dashes 124
-XGCValues 128
-XFocusChangeEvent.type 0
-XFocusChangeEvent.serial 8
-XFocusChangeEvent.send_event 16
-XFocusChangeEvent.display 24
-XFocusChangeEvent.window 32
-XFocusChangeEvent.mode 40
-XFocusChangeEvent.detail 44
-XFocusChangeEvent 48
-XPixmapFormatValues.depth 0
-XPixmapFormatValues.bits_per_pixel 4
-XPixmapFormatValues.scanline_pad 8
-XPixmapFormatValues 12
-XMapEvent.type 0
-XMapEvent.serial 8
-XMapEvent.send_event 16
-XMapEvent.display 24
-XMapEvent.event 32
-XMapEvent.window 40
-XMapEvent.override_redirect 48
-XMapEvent 56
-XkbBellNotifyEvent.type 0
-XkbBellNotifyEvent.serial 8
-XkbBellNotifyEvent.send_event 16
-XkbBellNotifyEvent.display 24
-XkbBellNotifyEvent.time 32
-XkbBellNotifyEvent.xkb_type 40
-XkbBellNotifyEvent.device 44
-XkbBellNotifyEvent.percent 48
-XkbBellNotifyEvent.pitch 52
-XkbBellNotifyEvent.duration 56
-XkbBellNotifyEvent.bell_class 60
-XkbBellNotifyEvent.bell_id 64
-XkbBellNotifyEvent.name 72
-XkbBellNotifyEvent.window 80
-XkbBellNotifyEvent.event_only 88
-XkbBellNotifyEvent 96
-XIMStringConversionText.length 0
-XIMStringConversionText.feedback 8
-XIMStringConversionText.encoding_is_wchar 16
-XIMStringConversionText.string 24
-XIMStringConversionText 32
-XKeyboardState.key_click_percent 0
-XKeyboardState.bell_percent 4
-XKeyboardState.bell_pitch 8
-XKeyboardState.bell_duration 12
-XKeyboardState.led_mask 16
-XKeyboardState.global_auto_repeat 24
-XKeyboardState.auto_repeats 28
-XKeyboardState 64
-XkbEvent.type 0
-XkbEvent.any 0
-XkbEvent.new_kbd 0
-XkbEvent.map 0
-XkbEvent.state 0
-XkbEvent.ctrls 0
-XkbEvent.indicators 0
-XkbEvent.names 0
-XkbEvent.compat 0
-XkbEvent.bell 0
-XkbEvent.message 0
-XkbEvent.accessx 0
-XkbEvent.device 0
-XkbEvent.core 0
-XkbEvent 192
-XPoint.x 0
-XPoint.y 2
-XPoint 4
-XSegment.x1 0
-XSegment.y1 2
-XSegment.x2 4
-XSegment.y2 6
-XSegment 8
-XIconSize.min_width 0
-XIconSize.min_height 4
-XIconSize.max_width 8
-XIconSize.max_height 12
-XIconSize.width_inc 16
-XIconSize.height_inc 20
-XIconSize 24
-XIMCallback.client_data 0
-XIMCallback.callback 8
-XIMCallback 16
-XConfigureEvent.type 0
-XConfigureEvent.serial 8
-XConfigureEvent.send_event 16
-XConfigureEvent.display 24
-XConfigureEvent.event 32
-XConfigureEvent.window 40
-XConfigureEvent.x 48
-XConfigureEvent.y 52
-XConfigureEvent.width 56
-XConfigureEvent.height 60
-XConfigureEvent.border_width 64
-XConfigureEvent.above 72
-XConfigureEvent.override_redirect 80
-XConfigureEvent 88
-XRectangle.x 0
-XRectangle.y 2
-XRectangle.width 4
-XRectangle.height 6
-XRectangle 8
-XkbNamesNotifyEvent.type 0
-XkbNamesNotifyEvent.serial 8
-XkbNamesNotifyEvent.send_event 16
-XkbNamesNotifyEvent.display 24
-XkbNamesNotifyEvent.time 32
-XkbNamesNotifyEvent.xkb_type 40
-XkbNamesNotifyEvent.device 44
-XkbNamesNotifyEvent.changed 48
-XkbNamesNotifyEvent.first_type 52
-XkbNamesNotifyEvent.num_types 56
-XkbNamesNotifyEvent.first_lvl 60
-XkbNamesNotifyEvent.num_lvls 64
-XkbNamesNotifyEvent.num_aliases 68
-XkbNamesNotifyEvent.num_radio_groups 72
-XkbNamesNotifyEvent.changed_vmods 76
-XkbNamesNotifyEvent.changed_groups 80
-XkbNamesNotifyEvent.changed_indicators 84
-XkbNamesNotifyEvent.first_key 88
-XkbNamesNotifyEvent.num_keys 92
-XkbNamesNotifyEvent 96
-XCreateWindowEvent.type 0
-XCreateWindowEvent.serial 8
-XCreateWindowEvent.send_event 16
-XCreateWindowEvent.display 24
-XCreateWindowEvent.parent 32
-XCreateWindowEvent.window 40
-XCreateWindowEvent.x 48
-XCreateWindowEvent.y 52
-XCreateWindowEvent.width 56
-XCreateWindowEvent.height 60
-XCreateWindowEvent.border_width 64
-XCreateWindowEvent.override_redirect 68
-XCreateWindowEvent 72
-XVisibilityEvent.type 0
-XVisibilityEvent.serial 8
-XVisibilityEvent.send_event 16
-XVisibilityEvent.display 24
-XVisibilityEvent.window 32
-XVisibilityEvent.state 40
-XVisibilityEvent 48
-XWMHints.flags 0
-XWMHints.initial_state 12
-XWMHints.icon_pixmap 16
-XWMHints.icon_window 24
-XWMHints.icon_x 32
-XWMHints.icon_y 36
-XWMHints.icon_mask 40
-XWMHints.input 8
-XWMHints.window_group 48
-XWMHints 56
-XCrossingEvent.type 0
-XCrossingEvent.serial 8
-XCrossingEvent.send_event 16
-XCrossingEvent.display 24
-XCrossingEvent.window 32
-XCrossingEvent.root 40
-XCrossingEvent.subwindow 48
-XCrossingEvent.time 56
-XCrossingEvent.x 64
-XCrossingEvent.y 68
-XCrossingEvent.x_root 72
-XCrossingEvent.y_root 76
-XCrossingEvent.mode 80
-XCrossingEvent.detail 84
-XCrossingEvent.same_screen 88
-XCrossingEvent.focus 92
-XCrossingEvent.state 96
-XCrossingEvent 104
-XSelectionRequestEvent.type 0
-XSelectionRequestEvent.serial 8
-XSelectionRequestEvent.send_event 16
-XSelectionRequestEvent.display 24
-XSelectionRequestEvent.owner 32
-XSelectionRequestEvent.requestor 40
-XSelectionRequestEvent.selection 48
-XSelectionRequestEvent.target 56
-XSelectionRequestEvent.property 64
-XSelectionRequestEvent.time 72
-XSelectionRequestEvent 80
-XNoExposeEvent.type 0
-XNoExposeEvent.serial 8
-XNoExposeEvent.send_event 16
-XNoExposeEvent.display 24
-XNoExposeEvent.drawable 32
-XNoExposeEvent.major_code 40
-XNoExposeEvent.minor_code 44
-XNoExposeEvent 48
-XHostAddress.family 0
-XHostAddress.length 4
-XHostAddress.address 8
-XHostAddress 16
-XColormapEvent.type 0
-XColormapEvent.serial 8
-XColormapEvent.send_event 16
-XColormapEvent.display 24
-XColormapEvent.window 32
-XColormapEvent.colormap 40
-XColormapEvent.new 48
-XColormapEvent.state 52
-XColormapEvent 56
-ColorEntry.r 0
-ColorEntry.g 1
-ColorEntry.b 2
-ColorEntry.flags 3
-ColorEntry 4
-XResizeRequestEvent.type 0
-XResizeRequestEvent.serial 8
-XResizeRequestEvent.send_event 16
-XResizeRequestEvent.display 24
-XResizeRequestEvent.window 32
-XResizeRequestEvent.width 40
-XResizeRequestEvent.height 44
-XResizeRequestEvent 48
-Depth.depth 0
-Depth.nvisuals 4
-Depth.visuals 8
-Depth 16
-XPropertyEvent.type 0
-XPropertyEvent.serial 8
-XPropertyEvent.send_event 16
-XPropertyEvent.display 24
-XPropertyEvent.window 32
-XPropertyEvent.atom 40
-XPropertyEvent.time 48
-XPropertyEvent.state 56
-XPropertyEvent 64
-XDestroyWindowEvent.type 0
-XDestroyWindowEvent.serial 8
-XDestroyWindowEvent.send_event 16
-XDestroyWindowEvent.display 24
-XDestroyWindowEvent.event 32
-XDestroyWindowEvent.window 40
-XDestroyWindowEvent 48
-XStandardColormap.colormap 0
-XStandardColormap.red_max 8
-XStandardColormap.red_mult 16
-XStandardColormap.green_max 24
-XStandardColormap.green_mult 32
-XStandardColormap.blue_max 40
-XStandardColormap.blue_mult 48
-XStandardColormap.base_pixel 56
-XStandardColormap.visualid 64
-XStandardColormap.killid 72
-XStandardColormap 80
-XComposeStatus.compose_ptr 0
-XComposeStatus.chars_matched 8
-XComposeStatus 16
-AwtGraphicsConfigData.awt_depth 0
-AwtGraphicsConfigData.awt_cmap 8
-AwtGraphicsConfigData.awt_visInfo 16
-AwtGraphicsConfigData.awt_num_colors 80
-AwtGraphicsConfigData.awtImage 88
-AwtGraphicsConfigData.AwtColorMatch 96
-AwtGraphicsConfigData.monoImage 104
-AwtGraphicsConfigData.monoPixmap 112
-AwtGraphicsConfigData.monoPixmapWidth 120
-AwtGraphicsConfigData.monoPixmapHeight 124
-AwtGraphicsConfigData.monoPixmapGC 128
-AwtGraphicsConfigData.pixelStride 136
-AwtGraphicsConfigData.color_data 144
-AwtGraphicsConfigData.glxInfo 152
-AwtGraphicsConfigData.isTranslucencySupported 160
-AwtGraphicsConfigData.renderPictFormat 168
-AwtGraphicsConfigData 208
-XColor.pixel 0
-XColor.red 8
-XColor.green 10
-XColor.blue 12
-XColor.flags 14
-XColor.pad 15
-XColor 16
-XTextProperty.value 0
-XTextProperty.encoding 8
-XTextProperty.format 16
-XTextProperty.nitems 24
-XTextProperty 32
diff -r c3ec048aad63 -r ece10494786c make/data/x11wrappergen/sizes.64-solaris-i386
--- a/make/data/x11wrappergen/sizes.64-solaris-i386 Thu Mar 01 16:35:36 2018 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1017 +0,0 @@
-long 8
-int 4
-short 2
-ptr 8
-Bool 4
-Atom 8
-Window 8
-XExtData.number 0
-XExtData.next 8
-XExtData.free_private 16
-XExtData.private_data 24
-XExtData 32
-XIMStringConversionCallbackStruct.position 0
-XIMStringConversionCallbackStruct.direction 4
-XIMStringConversionCallbackStruct.operation 8
-XIMStringConversionCallbackStruct.factor 10
-XIMStringConversionCallbackStruct.text 16
-XIMStringConversionCallbackStruct 24
-XkbNewKeyboardNotifyEvent.type 0
-XkbNewKeyboardNotifyEvent.serial 8
-XkbNewKeyboardNotifyEvent.send_event 16
-XkbNewKeyboardNotifyEvent.display 24
-XkbNewKeyboardNotifyEvent.time 32
-XkbNewKeyboardNotifyEvent.xkb_type 40
-XkbNewKeyboardNotifyEvent.device 44
-XkbNewKeyboardNotifyEvent.old_device 48
-XkbNewKeyboardNotifyEvent.min_key_code 52
-XkbNewKeyboardNotifyEvent.max_key_code 56
-XkbNewKeyboardNotifyEvent.old_min_key_code 60
-XkbNewKeyboardNotifyEvent.old_max_key_code 64
-XkbNewKeyboardNotifyEvent.changed 68
-XkbNewKeyboardNotifyEvent.req_major 72
-XkbNewKeyboardNotifyEvent.req_minor 73
-XkbNewKeyboardNotifyEvent 80
-XTimeCoord.time 0
-XTimeCoord.x 8
-XTimeCoord.y 10
-XTimeCoord 16
-XkbCompatMapNotifyEvent.type 0
-XkbCompatMapNotifyEvent.serial 8
-XkbCompatMapNotifyEvent.send_event 16
-XkbCompatMapNotifyEvent.display 24
-XkbCompatMapNotifyEvent.time 32
-XkbCompatMapNotifyEvent.xkb_type 40
-XkbCompatMapNotifyEvent.device 44
-XkbCompatMapNotifyEvent.changed_groups 48
-XkbCompatMapNotifyEvent.first_si 52
-XkbCompatMapNotifyEvent.num_si 56
-XkbCompatMapNotifyEvent.num_total_si 60
-XkbCompatMapNotifyEvent 64
-XIMStatusDrawCallbackStruct.type 0
-XIMStatusDrawCallbackStruct.data 8
-XIMStatusDrawCallbackStruct 16
-XKeyboardControl.key_click_percent 0
-XKeyboardControl.bell_percent 4
-XKeyboardControl.bell_pitch 8
-XKeyboardControl.bell_duration 12
-XKeyboardControl.led 16
-XKeyboardControl.led_mode 20
-XKeyboardControl.key 24
-XKeyboardControl.auto_repeat_mode 28
-XKeyboardControl 32
-XSelectionClearEvent.type 0
-XSelectionClearEvent.serial 8
-XSelectionClearEvent.send_event 16
-XSelectionClearEvent.display 24
-XSelectionClearEvent.window 32
-XSelectionClearEvent.selection 40
-XSelectionClearEvent.time 48
-XSelectionClearEvent 56
-XWindowChanges.x 0
-XWindowChanges.y 4
-XWindowChanges.width 8
-XWindowChanges.height 12
-XWindowChanges.border_width 16
-XWindowChanges.sibling 24
-XWindowChanges.stack_mode 32
-XWindowChanges 40
-XIMPreeditCaretCallbackStruct.position 0
-XIMPreeditCaretCallbackStruct.direction 4
-XIMPreeditCaretCallbackStruct.style 8
-XIMPreeditCaretCallbackStruct 12
-XOMCharSetList.charset_count 0
-XOMCharSetList.charset_list 8
-XOMCharSetList 16
-XOMFontInfo.num_font 0
-XOMFontInfo.font_struct_list 8
-XOMFontInfo.font_name_list 16
-XOMFontInfo 24
-AwtScreenData.numConfigs 0
-AwtScreenData.root 8
-AwtScreenData.whitepixel 16
-AwtScreenData.blackpixel 24
-AwtScreenData.defaultConfig 32
-AwtScreenData.configs 40
-AwtScreenData 48
-XIMHotKeyTrigger.keysym 0
-XIMHotKeyTrigger.modifier 8
-XIMHotKeyTrigger.modifier_mask 12
-XIMHotKeyTrigger 16
-XCirculateEvent.type 0
-XCirculateEvent.serial 8
-XCirculateEvent.send_event 16
-XCirculateEvent.display 24
-XCirculateEvent.event 32
-XCirculateEvent.window 40
-XCirculateEvent.place 48
-XCirculateEvent 56
-Screen.ext_data 0
-Screen.display 8
-Screen.root 16
-Screen.width 24
-Screen.height 28
-Screen.mwidth 32
-Screen.mheight 36
-Screen.ndepths 40
-Screen.depths 48
-Screen.root_depth 56
-Screen.root_visual 64
-Screen.default_gc 72
-Screen.cmap 80
-Screen.white_pixel 88
-Screen.black_pixel 96
-Screen.max_maps 104
-Screen.min_maps 108
-Screen.backing_store 112
-Screen.save_unders 116
-Screen.root_input_mask 120
-Screen 128
-XMapRequestEvent.type 0
-XMapRequestEvent.serial 8
-XMapRequestEvent.send_event 16
-XMapRequestEvent.display 24
-XMapRequestEvent.parent 32
-XMapRequestEvent.window 40
-XMapRequestEvent 48
-XIMText.length 0
-XIMText.feedback 8
-XIMText.encoding_is_wchar 16
-XIMText.string 24
-XIMText 32
-XGraphicsExposeEvent.type 0
-XGraphicsExposeEvent.serial 8
-XGraphicsExposeEvent.send_event 16
-XGraphicsExposeEvent.display 24
-XGraphicsExposeEvent.drawable 32
-XGraphicsExposeEvent.x 40
-XGraphicsExposeEvent.y 44
-XGraphicsExposeEvent.width 48
-XGraphicsExposeEvent.height 52
-XGraphicsExposeEvent.count 56
-XGraphicsExposeEvent.major_code 60
-XGraphicsExposeEvent.minor_code 64
-XGraphicsExposeEvent 72
-XEvent.type 0
-XEvent.xany 0
-XEvent.xkey 0
-XEvent.xbutton 0
-XEvent.xmotion 0
-XEvent.xcrossing 0
-XEvent.xfocus 0
-XEvent.xexpose 0
-XEvent.xgraphicsexpose 0
-XEvent.xnoexpose 0
-XEvent.xvisibility 0
-XEvent.xcreatewindow 0
-XEvent.xdestroywindow 0
-XEvent.xunmap 0
-XEvent.xmap 0
-XEvent.xmaprequest 0
-XEvent.xreparent 0
-XEvent.xconfigure 0
-XEvent.xgravity 0
-XEvent.xresizerequest 0
-XEvent.xconfigurerequest 0
-XEvent.xcirculate 0
-XEvent.xcirculaterequest 0
-XEvent.xproperty 0
-XEvent.xselectionclear 0
-XEvent.xselectionrequest 0
-XEvent.xselection 0
-XEvent.xcolormap 0
-XEvent.xclient 0
-XEvent.xmapping 0
-XEvent.xerror 0
-XEvent.xkeymap 0
-XEvent.pad 0
-XEvent 192
-XRenderDirectFormat.red 0
-XRenderDirectFormat.redMask 2
-XRenderDirectFormat.green 4
-XRenderDirectFormat.greenMask 6
-XRenderDirectFormat.blue 8
-XRenderDirectFormat.blueMask 10
-XRenderDirectFormat.alpha 12
-XRenderDirectFormat.alphaMask 14
-XRenderDirectFormat 16
-ColorData.awt_Colors 0
-ColorData.awt_numICMcolors 8
-ColorData.awt_icmLUT 16
-ColorData.awt_icmLUT2Colors 24
-ColorData.img_grays 32
-ColorData.img_clr_tbl 40
-ColorData.img_oda_red 48
-ColorData.img_oda_green 56
-ColorData.img_oda_blue 64
-ColorData.pGrayInverseLutData 72
-ColorData.screendata 80
-ColorData.representsPrimaries 84
-ColorData 88
-XFontStruct.ext_data 0
-XFontStruct.fid 8
-XFontStruct.direction 16
-XFontStruct.min_char_or_byte2 20
-XFontStruct.max_char_or_byte2 24
-XFontStruct.min_byte1 28
-XFontStruct.max_byte1 32
-XFontStruct.all_chars_exist 36
-XFontStruct.n_properties 44
-XFontStruct.properties 48
-XFontStruct.min_bounds 56
-XFontStruct.max_bounds 68
-XFontStruct.per_char 80
-XFontStruct.ascent 88
-XFontStruct.descent 92
-XFontStruct 96
-XExtCodes.extension 0
-XExtCodes.major_opcode 4
-XExtCodes.first_event 8
-XExtCodes.first_error 12
-XExtCodes 16
-XFontSetExtents.max_ink_extent 0
-XFontSetExtents.max_logical_extent 8
-XFontSetExtents 16
-XSelectionEvent.type 0
-XSelectionEvent.serial 8
-XSelectionEvent.send_event 16
-XSelectionEvent.display 24
-XSelectionEvent.requestor 32
-XSelectionEvent.selection 40
-XSelectionEvent.target 48
-XSelectionEvent.property 56
-XSelectionEvent.time 64
-XSelectionEvent 72
-XArc.x 0
-XArc.y 2
-XArc.width 4
-XArc.height 6
-XArc.angle1 8
-XArc.angle2 10
-XArc 12
-XErrorEvent.type 0
-XErrorEvent.display 8
-XErrorEvent.resourceid 16
-XErrorEvent.serial 24
-XErrorEvent.error_code 32
-XErrorEvent.request_code 33
-XErrorEvent.minor_code 34
-XErrorEvent 40
-XConfigureRequestEvent.type 0
-XConfigureRequestEvent.serial 8
-XConfigureRequestEvent.send_event 16
-XConfigureRequestEvent.display 24
-XConfigureRequestEvent.parent 32
-XConfigureRequestEvent.window 40
-XConfigureRequestEvent.x 48
-XConfigureRequestEvent.y 52
-XConfigureRequestEvent.width 56
-XConfigureRequestEvent.height 60
-XConfigureRequestEvent.border_width 64
-XConfigureRequestEvent.above 72
-XConfigureRequestEvent.detail 80
-XConfigureRequestEvent.value_mask 88
-XConfigureRequestEvent 96
-ScreenFormat.ext_data 0
-ScreenFormat.depth 8
-ScreenFormat.bits_per_pixel 12
-ScreenFormat.scanline_pad 16
-ScreenFormat 24
-XButtonEvent.type 0
-XButtonEvent.serial 8
-XButtonEvent.send_event 16
-XButtonEvent.display 24
-XButtonEvent.window 32
-XButtonEvent.root 40
-XButtonEvent.subwindow 48
-XButtonEvent.time 56
-XButtonEvent.x 64
-XButtonEvent.y 68
-XButtonEvent.x_root 72
-XButtonEvent.y_root 76
-XButtonEvent.state 80
-XButtonEvent.button 84
-XButtonEvent.same_screen 88
-XButtonEvent 96
-XFontProp.name 0
-XFontProp.card32 8
-XFontProp 16
-XIMValuesList.count_values 0
-XIMValuesList.supported_values 8
-XIMValuesList 16
-XKeymapEvent.type 0
-XKeymapEvent.serial 8
-XKeymapEvent.send_event 16
-XKeymapEvent.display 24
-XKeymapEvent.window 32
-XKeymapEvent.key_vector 40
-XKeymapEvent 72
-XTextItem16.chars 0
-XTextItem16.nchars 8
-XTextItem16.delta 12
-XTextItem16.font 16
-XTextItem16 24
-XIMPreeditDrawCallbackStruct.caret 0
-XIMPreeditDrawCallbackStruct.chg_first 4
-XIMPreeditDrawCallbackStruct.chg_length 8
-XIMPreeditDrawCallbackStruct.text 16
-XIMPreeditDrawCallbackStruct 24
-XVisualInfo.visual 0
-XVisualInfo.visualid 8
-XVisualInfo.screen 16
-XVisualInfo.depth 20
-XVisualInfo.class 24
-XVisualInfo.red_mask 32
-XVisualInfo.green_mask 40
-XVisualInfo.blue_mask 48
-XVisualInfo.colormap_size 56
-XVisualInfo.bits_per_rgb 60
-XVisualInfo 64
-XkbControlsNotifyEvent.type 0
-XkbControlsNotifyEvent.serial 8
-XkbControlsNotifyEvent.send_event 16
-XkbControlsNotifyEvent.display 24
-XkbControlsNotifyEvent.time 32
-XkbControlsNotifyEvent.xkb_type 40
-XkbControlsNotifyEvent.device 44
-XkbControlsNotifyEvent.changed_ctrls 48
-XkbControlsNotifyEvent.enabled_ctrls 52
-XkbControlsNotifyEvent.enabled_ctrl_changes 56
-XkbControlsNotifyEvent.num_groups 60
-XkbControlsNotifyEvent.keycode 64
-XkbControlsNotifyEvent.event_type 65
-XkbControlsNotifyEvent.req_major 66
-XkbControlsNotifyEvent.req_minor 67
-XkbControlsNotifyEvent 72
-PropMwmHints.flags 0
-PropMwmHints.functions 8
-PropMwmHints.decorations 16
-PropMwmHints.inputMode 24
-PropMwmHints.status 32
-PropMwmHints 40
-XClientMessageEvent.type 0
-XClientMessageEvent.serial 8
-XClientMessageEvent.send_event 16
-XClientMessageEvent.display 24
-XClientMessageEvent.window 32
-XClientMessageEvent.message_type 40
-XClientMessageEvent.format 48
-XClientMessageEvent.data 56
-XClientMessageEvent 96
-XAnyEvent.type 0
-XAnyEvent.serial 8
-XAnyEvent.send_event 16
-XAnyEvent.display 24
-XAnyEvent.window 32
-XAnyEvent 40
-XkbIndicatorNotifyEvent.type 0
-XkbIndicatorNotifyEvent.serial 8
-XkbIndicatorNotifyEvent.send_event 16
-XkbIndicatorNotifyEvent.display 24
-XkbIndicatorNotifyEvent.time 32
-XkbIndicatorNotifyEvent.xkb_type 40
-XkbIndicatorNotifyEvent.device 44
-XkbIndicatorNotifyEvent.changed 48
-XkbIndicatorNotifyEvent.state 52
-XkbIndicatorNotifyEvent 56
-XIMPreeditStateNotifyCallbackStruct.state 0
-XIMPreeditStateNotifyCallbackStruct 8
-XkbAnyEvent.type 0
-XkbAnyEvent.serial 8
-XkbAnyEvent.send_event 16
-XkbAnyEvent.display 24
-XkbAnyEvent.time 32
-XkbAnyEvent.xkb_type 40
-XkbAnyEvent.device 44
-XkbAnyEvent 48
-XMotionEvent.type 0
-XMotionEvent.serial 8
-XMotionEvent.send_event 16
-XMotionEvent.display 24
-XMotionEvent.window 32
-XMotionEvent.root 40
-XMotionEvent.subwindow 48
-XMotionEvent.time 56
-XMotionEvent.x 64
-XMotionEvent.y 68
-XMotionEvent.x_root 72
-XMotionEvent.y_root 76
-XMotionEvent.state 80
-XMotionEvent.is_hint 84
-XMotionEvent.same_screen 88
-XMotionEvent 96
-XIMHotKeyTriggers.num_hot_key 0
-XIMHotKeyTriggers.key 8
-XIMHotKeyTriggers 16
-XIMStyles.count_styles 0
-XIMStyles.supported_styles 8
-XIMStyles 16
-XkbExtensionDeviceNotifyEvent.type 0
-XkbExtensionDeviceNotifyEvent.serial 8
-XkbExtensionDeviceNotifyEvent.send_event 16
-XkbExtensionDeviceNotifyEvent.display 24
-XkbExtensionDeviceNotifyEvent.time 32
-XkbExtensionDeviceNotifyEvent.xkb_type 40
-XkbExtensionDeviceNotifyEvent.device 44
-XkbExtensionDeviceNotifyEvent.reason 48
-XkbExtensionDeviceNotifyEvent.supported 52
-XkbExtensionDeviceNotifyEvent.unsupported 56
-XkbExtensionDeviceNotifyEvent.first_btn 60
-XkbExtensionDeviceNotifyEvent.num_btns 64
-XkbExtensionDeviceNotifyEvent.leds_defined 68
-XkbExtensionDeviceNotifyEvent.led_state 72
-XkbExtensionDeviceNotifyEvent.led_class 76
-XkbExtensionDeviceNotifyEvent.led_id 80
-XkbExtensionDeviceNotifyEvent 88
-XwcTextItem.chars 0
-XwcTextItem.nchars 8
-XwcTextItem.delta 12
-XwcTextItem.font_set 16
-XwcTextItem 24
-XClassHint.res_name 0
-XClassHint.res_class 8
-XClassHint 16
-XChar2b.byte1 0
-XChar2b.byte2 1
-XChar2b 2
-XSetWindowAttributes.background_pixmap 0
-XSetWindowAttributes.background_pixel 8
-XSetWindowAttributes.border_pixmap 16
-XSetWindowAttributes.border_pixel 24
-XSetWindowAttributes.bit_gravity 32
-XSetWindowAttributes.win_gravity 36
-XSetWindowAttributes.backing_store 40
-XSetWindowAttributes.backing_planes 48
-XSetWindowAttributes.backing_pixel 56
-XSetWindowAttributes.save_under 64
-XSetWindowAttributes.event_mask 72
-XSetWindowAttributes.do_not_propagate_mask 80
-XSetWindowAttributes.override_redirect 88
-XSetWindowAttributes.colormap 96
-XSetWindowAttributes.cursor 104
-XSetWindowAttributes 112
-XRenderPictFormat.id 0
-XRenderPictFormat.type 8
-XRenderPictFormat.depth 12
-XRenderPictFormat.direct 16
-XRenderPictFormat.colormap 32
-XRenderPictFormat 40
-XReparentEvent.type 0
-XReparentEvent.serial 8
-XReparentEvent.send_event 16
-XReparentEvent.display 24
-XReparentEvent.event 32
-XReparentEvent.window 40
-XReparentEvent.parent 48
-XReparentEvent.x 56
-XReparentEvent.y 60
-XReparentEvent.override_redirect 64
-XReparentEvent 72
-XCirculateRequestEvent.type 0
-XCirculateRequestEvent.serial 8
-XCirculateRequestEvent.send_event 16
-XCirculateRequestEvent.display 24
-XCirculateRequestEvent.parent 32
-XCirculateRequestEvent.window 40
-XCirculateRequestEvent.place 48
-XCirculateRequestEvent 56
-XImage.width 0
-XImage.height 4
-XImage.xoffset 8
-XImage.format 12
-XImage.data 16
-XImage.byte_order 24
-XImage.bitmap_unit 28
-XImage.bitmap_bit_order 32
-XImage.bitmap_pad 36
-XImage.depth 40
-XImage.bytes_per_line 44
-XImage.bits_per_pixel 48
-XImage.red_mask 56
-XImage.green_mask 64
-XImage.blue_mask 72
-XImage.obdata 80
-XImage.f.create_image 88
-XImage.f.destroy_image 96
-XImage.f.get_pixel 104
-XImage.f.put_pixel 112
-XImage.f.sub_image 120
-XImage.f.add_pixel 128
-XImage 136
-XKeyEvent.type 0
-XKeyEvent.serial 8
-XKeyEvent.send_event 16
-XKeyEvent.display 24
-XKeyEvent.window 32
-XKeyEvent.root 40
-XKeyEvent.subwindow 48
-XKeyEvent.time 56
-XKeyEvent.x 64
-XKeyEvent.y 68
-XKeyEvent.x_root 72
-XKeyEvent.y_root 76
-XKeyEvent.state 80
-XKeyEvent.keycode 84
-XKeyEvent.same_screen 88
-XKeyEvent 96
-XkbActionMessageEvent.type 0
-XkbActionMessageEvent.serial 8
-XkbActionMessageEvent.send_event 16
-XkbActionMessageEvent.display 24
-XkbActionMessageEvent.time 32
-XkbActionMessageEvent.xkb_type 40
-XkbActionMessageEvent.device 44
-XkbActionMessageEvent.keycode 48
-XkbActionMessageEvent.press 52
-XkbActionMessageEvent.key_event_follows 56
-XkbActionMessageEvent.group 60
-XkbActionMessageEvent.mods 64
-XkbActionMessageEvent.message 68
-XkbActionMessageEvent 80
-XdbeSwapInfo.swap_window 0
-XdbeSwapInfo.swap_action 8
-XdbeSwapInfo 16
-XTextItem.chars 0
-XTextItem.nchars 8
-XTextItem.delta 12
-XTextItem.font 16
-XTextItem 24
-XModifierKeymap.max_keypermod 0
-XModifierKeymap.modifiermap 8
-XModifierKeymap 16
-XCharStruct.lbearing 0
-XCharStruct.rbearing 2
-XCharStruct.width 4
-XCharStruct.ascent 6
-XCharStruct.descent 8
-XCharStruct.attributes 10
-XCharStruct 12
-XGravityEvent.type 0
-XGravityEvent.serial 8
-XGravityEvent.send_event 16
-XGravityEvent.display 24
-XGravityEvent.event 32
-XGravityEvent.window 40
-XGravityEvent.x 48
-XGravityEvent.y 52
-XGravityEvent 56
-Visual.ext_data 0
-Visual.visualid 8
-Visual.class 16
-Visual.red_mask 24
-Visual.green_mask 32
-Visual.blue_mask 40
-Visual.bits_per_rgb 48
-Visual.map_entries 52
-Visual 56
-XOMOrientation.num_orientation 0
-XOMOrientation.orientation 8
-XOMOrientation 16
-XkbAccessXNotifyEvent.type 0
-XkbAccessXNotifyEvent.serial 8
-XkbAccessXNotifyEvent.send_event 16
-XkbAccessXNotifyEvent.display 24
-XkbAccessXNotifyEvent.time 32
-XkbAccessXNotifyEvent.xkb_type 40
-XkbAccessXNotifyEvent.device 44
-XkbAccessXNotifyEvent.detail 48
-XkbAccessXNotifyEvent.keycode 52
-XkbAccessXNotifyEvent.sk_delay 56
-XkbAccessXNotifyEvent.debounce_delay 60
-XkbAccessXNotifyEvent 64
-XWindowAttributes.x 0
-XWindowAttributes.y 4
-XWindowAttributes.width 8
-XWindowAttributes.height 12
-XWindowAttributes.border_width 16
-XWindowAttributes.depth 20
-XWindowAttributes.visual 24
-XWindowAttributes.root 32
-XWindowAttributes.class 40
-XWindowAttributes.bit_gravity 44
-XWindowAttributes.win_gravity 48
-XWindowAttributes.backing_store 52
-XWindowAttributes.backing_planes 56
-XWindowAttributes.backing_pixel 64
-XWindowAttributes.save_under 72
-XWindowAttributes.colormap 80
-XWindowAttributes.map_installed 88
-XWindowAttributes.map_state 92
-XWindowAttributes.all_event_masks 96
-XWindowAttributes.your_event_mask 104
-XWindowAttributes.do_not_propagate_mask 112
-XWindowAttributes.override_redirect 120
-XWindowAttributes.screen 128
-XWindowAttributes 136
-XmbTextItem.chars 0
-XmbTextItem.nchars 8
-XmbTextItem.delta 12
-XmbTextItem.font_set 16
-XmbTextItem 24
-XMappingEvent.type 0
-XMappingEvent.serial 8
-XMappingEvent.send_event 16
-XMappingEvent.display 24
-XMappingEvent.window 32
-XMappingEvent.request 40
-XMappingEvent.first_keycode 44
-XMappingEvent.count 48
-XMappingEvent 56
-XSizeHints.flags 0
-XSizeHints.x 8
-XSizeHints.y 12
-XSizeHints.width 16
-XSizeHints.height 20
-XSizeHints.min_width 24
-XSizeHints.min_height 28
-XSizeHints.max_width 32
-XSizeHints.max_height 36
-XSizeHints.width_inc 40
-XSizeHints.height_inc 44
-XSizeHints.min_aspect.x 48
-XSizeHints.min_aspect.y 52
-XSizeHints.max_aspect.x 56
-XSizeHints.max_aspect.y 60
-XSizeHints.base_width 64
-XSizeHints.base_height 68
-XSizeHints.win_gravity 72
-XSizeHints 80
-XUnmapEvent.type 0
-XUnmapEvent.serial 8
-XUnmapEvent.send_event 16
-XUnmapEvent.display 24
-XUnmapEvent.event 32
-XUnmapEvent.window 40
-XUnmapEvent.from_configure 48
-XUnmapEvent 56
-awtImageData.Depth 0
-awtImageData.wsImageFormat 4
-awtImageData.clrdata 16
-awtImageData.convert 48
-awtImageData 560
-XkbStateNotifyEvent.type 0
-XkbStateNotifyEvent.serial 8
-XkbStateNotifyEvent.send_event 16
-XkbStateNotifyEvent.display 24
-XkbStateNotifyEvent.time 32
-XkbStateNotifyEvent.xkb_type 40
-XkbStateNotifyEvent.device 44
-XkbStateNotifyEvent.changed 48
-XkbStateNotifyEvent.group 52
-XkbStateNotifyEvent.base_group 56
-XkbStateNotifyEvent.latched_group 60
-XkbStateNotifyEvent.locked_group 64
-XkbStateNotifyEvent.mods 68
-XkbStateNotifyEvent.base_mods 72
-XkbStateNotifyEvent.latched_mods 76
-XkbStateNotifyEvent.locked_mods 80
-XkbStateNotifyEvent.compat_state 84
-XkbStateNotifyEvent.grab_mods 88
-XkbStateNotifyEvent.compat_grab_mods 89
-XkbStateNotifyEvent.lookup_mods 90
-XkbStateNotifyEvent.compat_lookup_mods 91
-XkbStateNotifyEvent.ptr_buttons 92
-XkbStateNotifyEvent.keycode 96
-XkbStateNotifyEvent.event_type 97
-XkbStateNotifyEvent.req_major 98
-XkbStateNotifyEvent.req_minor 99
-XkbStateNotifyEvent 104
-XExposeEvent.type 0
-XExposeEvent.serial 8
-XExposeEvent.send_event 16
-XExposeEvent.display 24
-XExposeEvent.window 32
-XExposeEvent.x 40
-XExposeEvent.y 44
-XExposeEvent.width 48
-XExposeEvent.height 52
-XExposeEvent.count 56
-XExposeEvent 64
-XkbMapNotifyEvent.type 0
-XkbMapNotifyEvent.serial 8
-XkbMapNotifyEvent.send_event 16
-XkbMapNotifyEvent.display 24
-XkbMapNotifyEvent.time 32
-XkbMapNotifyEvent.xkb_type 40
-XkbMapNotifyEvent.device 44
-XkbMapNotifyEvent.changed 48
-XkbMapNotifyEvent.flags 52
-XkbMapNotifyEvent.first_type 56
-XkbMapNotifyEvent.num_types 60
-XkbMapNotifyEvent.min_key_code 64
-XkbMapNotifyEvent.max_key_code 65
-XkbMapNotifyEvent.first_key_sym 66
-XkbMapNotifyEvent.first_key_act 67
-XkbMapNotifyEvent.first_key_behavior 68
-XkbMapNotifyEvent.first_key_explicit 69
-XkbMapNotifyEvent.first_modmap_key 70
-XkbMapNotifyEvent.first_vmodmap_key 71
-XkbMapNotifyEvent.num_key_syms 72
-XkbMapNotifyEvent.num_key_acts 76
-XkbMapNotifyEvent.num_key_behaviors 80
-XkbMapNotifyEvent.num_key_explicit 84
-XkbMapNotifyEvent.num_modmap_keys 88
-XkbMapNotifyEvent.num_vmodmap_keys 92
-XkbMapNotifyEvent.vmods 96
-XkbMapNotifyEvent 104
-XGCValues.function 0
-XGCValues.plane_mask 8
-XGCValues.foreground 16
-XGCValues.background 24
-XGCValues.line_width 32
-XGCValues.line_style 36
-XGCValues.cap_style 40
-XGCValues.join_style 44
-XGCValues.fill_style 48
-XGCValues.fill_rule 52
-XGCValues.arc_mode 56
-XGCValues.tile 64
-XGCValues.stipple 72
-XGCValues.ts_x_origin 80
-XGCValues.ts_y_origin 84
-XGCValues.font 88
-XGCValues.subwindow_mode 96
-XGCValues.graphics_exposures 100
-XGCValues.clip_x_origin 104
-XGCValues.clip_y_origin 108
-XGCValues.clip_mask 112
-XGCValues.dash_offset 120
-XGCValues.dashes 124
-XGCValues 128
-XFocusChangeEvent.type 0
-XFocusChangeEvent.serial 8
-XFocusChangeEvent.send_event 16
-XFocusChangeEvent.display 24
-XFocusChangeEvent.window 32
-XFocusChangeEvent.mode 40
-XFocusChangeEvent.detail 44
-XFocusChangeEvent 48
-XPixmapFormatValues.depth 0
-XPixmapFormatValues.bits_per_pixel 4
-XPixmapFormatValues.scanline_pad 8
-XPixmapFormatValues 12
-XMapEvent.type 0
-XMapEvent.serial 8
-XMapEvent.send_event 16
-XMapEvent.display 24
-XMapEvent.event 32
-XMapEvent.window 40
-XMapEvent.override_redirect 48
-XMapEvent 56
-XkbBellNotifyEvent.type 0
-XkbBellNotifyEvent.serial 8
-XkbBellNotifyEvent.send_event 16
-XkbBellNotifyEvent.display 24
-XkbBellNotifyEvent.time 32
-XkbBellNotifyEvent.xkb_type 40
-XkbBellNotifyEvent.device 44
-XkbBellNotifyEvent.percent 48
-XkbBellNotifyEvent.pitch 52
-XkbBellNotifyEvent.duration 56
-XkbBellNotifyEvent.bell_class 60
-XkbBellNotifyEvent.bell_id 64
-XkbBellNotifyEvent.name 72
-XkbBellNotifyEvent.window 80
-XkbBellNotifyEvent.event_only 88
-XkbBellNotifyEvent 96
-XIMStringConversionText.length 0
-XIMStringConversionText.feedback 8
-XIMStringConversionText.encoding_is_wchar 16
-XIMStringConversionText.string 24
-XIMStringConversionText 32
-XKeyboardState.key_click_percent 0
-XKeyboardState.bell_percent 4
-XKeyboardState.bell_pitch 8
-XKeyboardState.bell_duration 12
-XKeyboardState.led_mask 16
-XKeyboardState.global_auto_repeat 24
-XKeyboardState.auto_repeats 28
-XKeyboardState 64
-XkbEvent.type 0
-XkbEvent.any 0
-XkbEvent.new_kbd 0
-XkbEvent.map 0
-XkbEvent.state 0
-XkbEvent.ctrls 0
-XkbEvent.indicators 0
-XkbEvent.names 0
-XkbEvent.compat 0
-XkbEvent.bell 0
-XkbEvent.message 0
-XkbEvent.accessx 0
-XkbEvent.device 0
-XkbEvent.core 0
-XkbEvent 192
-XPoint.x 0
-XPoint.y 2
-XPoint 4
-XSegment.x1 0
-XSegment.y1 2
-XSegment.x2 4
-XSegment.y2 6
-XSegment 8
-XIconSize.min_width 0
-XIconSize.min_height 4
-XIconSize.max_width 8
-XIconSize.max_height 12
-XIconSize.width_inc 16
-XIconSize.height_inc 20
-XIconSize 24
-XIMCallback.client_data 0
-XIMCallback.callback 8
-XIMCallback 16
-XConfigureEvent.type 0
-XConfigureEvent.serial 8
-XConfigureEvent.send_event 16
-XConfigureEvent.display 24
-XConfigureEvent.event 32
-XConfigureEvent.window 40
-XConfigureEvent.x 48
-XConfigureEvent.y 52
-XConfigureEvent.width 56
-XConfigureEvent.height 60
-XConfigureEvent.border_width 64
-XConfigureEvent.above 72
-XConfigureEvent.override_redirect 80
-XConfigureEvent 88
-XRectangle.x 0
-XRectangle.y 2
-XRectangle.width 4
-XRectangle.height 6
-XRectangle 8
-XkbNamesNotifyEvent.type 0
-XkbNamesNotifyEvent.serial 8
-XkbNamesNotifyEvent.send_event 16
-XkbNamesNotifyEvent.display 24
-XkbNamesNotifyEvent.time 32
-XkbNamesNotifyEvent.xkb_type 40
-XkbNamesNotifyEvent.device 44
-XkbNamesNotifyEvent.changed 48
-XkbNamesNotifyEvent.first_type 52
-XkbNamesNotifyEvent.num_types 56
-XkbNamesNotifyEvent.first_lvl 60
-XkbNamesNotifyEvent.num_lvls 64
-XkbNamesNotifyEvent.num_aliases 68
-XkbNamesNotifyEvent.num_radio_groups 72
-XkbNamesNotifyEvent.changed_vmods 76
-XkbNamesNotifyEvent.changed_groups 80
-XkbNamesNotifyEvent.changed_indicators 84
-XkbNamesNotifyEvent.first_key 88
-XkbNamesNotifyEvent.num_keys 92
-XkbNamesNotifyEvent 96
-XCreateWindowEvent.type 0
-XCreateWindowEvent.serial 8
-XCreateWindowEvent.send_event 16
-XCreateWindowEvent.display 24
-XCreateWindowEvent.parent 32
-XCreateWindowEvent.window 40
-XCreateWindowEvent.x 48
-XCreateWindowEvent.y 52
-XCreateWindowEvent.width 56
-XCreateWindowEvent.height 60
-XCreateWindowEvent.border_width 64
-XCreateWindowEvent.override_redirect 68
-XCreateWindowEvent 72
-XVisibilityEvent.type 0
-XVisibilityEvent.serial 8
-XVisibilityEvent.send_event 16
-XVisibilityEvent.display 24
-XVisibilityEvent.window 32
-XVisibilityEvent.state 40
-XVisibilityEvent 48
-XWMHints.flags 0
-XWMHints.initial_state 12
-XWMHints.icon_pixmap 16
-XWMHints.icon_window 24
-XWMHints.icon_x 32
-XWMHints.icon_y 36
-XWMHints.icon_mask 40
-XWMHints.input 8
-XWMHints.window_group 48
-XWMHints 56
-XCrossingEvent.type 0
-XCrossingEvent.serial 8
-XCrossingEvent.send_event 16
-XCrossingEvent.display 24
-XCrossingEvent.window 32
-XCrossingEvent.root 40
-XCrossingEvent.subwindow 48
-XCrossingEvent.time 56
-XCrossingEvent.x 64
-XCrossingEvent.y 68
-XCrossingEvent.x_root 72
-XCrossingEvent.y_root 76
-XCrossingEvent.mode 80
-XCrossingEvent.detail 84
-XCrossingEvent.same_screen 88
-XCrossingEvent.focus 92
-XCrossingEvent.state 96
-XCrossingEvent 104
-XSelectionRequestEvent.type 0
-XSelectionRequestEvent.serial 8
-XSelectionRequestEvent.send_event 16
-XSelectionRequestEvent.display 24
-XSelectionRequestEvent.owner 32
-XSelectionRequestEvent.requestor 40
-XSelectionRequestEvent.selection 48
-XSelectionRequestEvent.target 56
-XSelectionRequestEvent.property 64
-XSelectionRequestEvent.time 72
-XSelectionRequestEvent 80
-XNoExposeEvent.type 0
-XNoExposeEvent.serial 8
-XNoExposeEvent.send_event 16
-XNoExposeEvent.display 24
-XNoExposeEvent.drawable 32
-XNoExposeEvent.major_code 40
-XNoExposeEvent.minor_code 44
-XNoExposeEvent 48
-XHostAddress.family 0
-XHostAddress.length 4
-XHostAddress.address 8
-XHostAddress 16
-XColormapEvent.type 0
-XColormapEvent.serial 8
-XColormapEvent.send_event 16
-XColormapEvent.display 24
-XColormapEvent.window 32
-XColormapEvent.colormap 40
-XColormapEvent.new 48
-XColormapEvent.state 52
-XColormapEvent 56
-ColorEntry.r 0
-ColorEntry.g 1
-ColorEntry.b 2
-ColorEntry.flags 3
-ColorEntry 4
-XResizeRequestEvent.type 0
-XResizeRequestEvent.serial 8
-XResizeRequestEvent.send_event 16
-XResizeRequestEvent.display 24
-XResizeRequestEvent.window 32
-XResizeRequestEvent.width 40
-XResizeRequestEvent.height 44
-XResizeRequestEvent 48
-Depth.depth 0
-Depth.nvisuals 4
-Depth.visuals 8
-Depth 16
-XPropertyEvent.type 0
-XPropertyEvent.serial 8
-XPropertyEvent.send_event 16
-XPropertyEvent.display 24
-XPropertyEvent.window 32
-XPropertyEvent.atom 40
-XPropertyEvent.time 48
-XPropertyEvent.state 56
-XPropertyEvent 64
-XDestroyWindowEvent.type 0
-XDestroyWindowEvent.serial 8
-XDestroyWindowEvent.send_event 16
-XDestroyWindowEvent.display 24
-XDestroyWindowEvent.event 32
-XDestroyWindowEvent.window 40
-XDestroyWindowEvent 48
-XStandardColormap.colormap 0
-XStandardColormap.red_max 8
-XStandardColormap.red_mult 16
-XStandardColormap.green_max 24
-XStandardColormap.green_mult 32
-XStandardColormap.blue_max 40
-XStandardColormap.blue_mult 48
-XStandardColormap.base_pixel 56
-XStandardColormap.visualid 64
-XStandardColormap.killid 72
-XStandardColormap 80
-XComposeStatus.compose_ptr 0
-XComposeStatus.chars_matched 8
-XComposeStatus 16
-AwtGraphicsConfigData.awt_depth 0
-AwtGraphicsConfigData.awt_cmap 8
-AwtGraphicsConfigData.awt_visInfo 16
-AwtGraphicsConfigData.awt_num_colors 80
-AwtGraphicsConfigData.awtImage 88
-AwtGraphicsConfigData.AwtColorMatch 96
-AwtGraphicsConfigData.monoImage 104
-AwtGraphicsConfigData.monoPixmap 112
-AwtGraphicsConfigData.monoPixmapWidth 120
-AwtGraphicsConfigData.monoPixmapHeight 124
-AwtGraphicsConfigData.monoPixmapGC 128
-AwtGraphicsConfigData.pixelStride 136
-AwtGraphicsConfigData.color_data 144
-AwtGraphicsConfigData.glxInfo 152
-AwtGraphicsConfigData.isTranslucencySupported 160
-AwtGraphicsConfigData.renderPictFormat 168
-AwtGraphicsConfigData 208
-XColor.pixel 0
-XColor.red 8
-XColor.green 10
-XColor.blue 12
-XColor.flags 14
-XColor.pad 15
-XColor 16
-XTextProperty.value 0
-XTextProperty.encoding 8
-XTextProperty.format 16
-XTextProperty.nitems 24
-XTextProperty 32
diff -r c3ec048aad63 -r ece10494786c make/data/x11wrappergen/xlibtypes.txt
--- a/make/data/x11wrappergen/xlibtypes.txt Thu Mar 01 16:35:36 2018 -0500
+++ b/make/data/x11wrappergen/xlibtypes.txt Fri Mar 02 21:00:12 2018 +0100
@@ -1,9 +1,9 @@
-//
//
// This file is used for automated generation of java classes to wrap native structures.
-// The detail on format of this file see WrapperGenerator.java
+// For details on format of this file, see WrapperGenerator.java
//
-// WARNING: if you modified this file, you need to regenerate sizes.64-solaris-i386
+// WARNING: If you modify this file, you need to regenerate sizes-32.txt and sizes-64.txt.
+// Run "make update-x11wrappers" to do this.
//
XExtData
diff -r c3ec048aad63 -r ece10494786c make/gensrc/Gensrc-java.desktop.gmk
--- a/make/gensrc/Gensrc-java.desktop.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/gensrc/Gensrc-java.desktop.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -30,10 +30,10 @@
ifneq ($(OPENJDK_TARGET_OS), windows)
include GensrcIcons.gmk
+endif
- ifneq ($(OPENJDK_TARGET_OS), macosx)
- include GensrcX11Wrappers.gmk
- endif
+ifneq ($(filter $(OPENJDK_TARGET_OS), linux solaris aix), )
+ include GensrcX11Wrappers.gmk
endif
include GensrcSwing.gmk
diff -r c3ec048aad63 -r ece10494786c make/gensrc/GensrcX11Wrappers.gmk
--- a/make/gensrc/GensrcX11Wrappers.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/gensrc/GensrcX11Wrappers.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2018, 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
@@ -23,106 +23,32 @@
# questions.
#
-# This file is responsible for extracting the x11 native struct offsets to
-# the xawt Java library. The tool needs to be run on the os/arch that
-# will host the final jvm, thus the tool cannot be used when cross compiling.
+# Generate java sources using the X11 offsets that are precalculated in files
+# make/data/x11wrappergen/sizes-.txt.
-# To enable cross compiling, the two versions of the generated offset file,
-# sizes.32 and sizes.64 are committed into the source code repository.
-# These are the ones used.
+GENSRC_X11WRAPPERS_OUTPUT_TOP := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop
-# However when not cross compiling, the offset generator tool is built and
-# run, to verify that it still generates the same sizes.32 and sizes.64.
+GENSRC_X11WRAPPERS_MARKER := $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/_x11wrappers.marker
-GENSRC_X11WRAPPERS :=
-# Put temporary c-code and executable to calculate offsets here.
-# Also put verification offset file here as well.
-GENSRC_X11WRAPPERS_TMP := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_x11wrappers
# Put the generated Java classes used to interface X11 from awt here.
-GENSRC_X11WRAPPERS_DST := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/sun/awt/X11
+GENSRC_X11WRAPPERS_OUTPUTDIR := $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/sun/awt/X11
# The pre-calculated offset file are stored here:
-GENSRC_SIZER_DIR := $(TOPDIR)/make/data/x11wrappergen
+GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen
+GENSRC_X11WRAPPERS_DATA := $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(OPENJDK_TARGET_CPU_BITS).txt
+
+$(info ExecuteWithLog is $(call ExecuteWithLog $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/foobar, CMDLINE))
-# Normal case is to generate only according to target bits
-GENSRC_X11_VERSION := $(OPENJDK_TARGET_CPU_BITS)
-ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
- ifneq ($(OPENJDK_TARGET_OS), linux)
- # On all 64-bit systems except Linux, generate both 32 and 64 bit versions
- GENSRC_X11_VERSION := 32 64
- endif
-else
- ifeq ($(OPENJDK_TARGET_OS), solaris)
- # As a special case, solaris 32-bit also generates the 64-bit version
- GENSRC_X11_VERSION := 32 64
- endif
-endif
-
-GENSRC_X11_SIZES_USED := $(addprefix $(GENSRC_X11WRAPPERS_TMP)/sizes., $(GENSRC_X11_VERSION))
-
-# Copy only the sizes.* files that are actually needed. WrapperGenerator picks up any it finds from the
-# file prefix it is given so those not needed need to be hidden.
-$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.%
- $(call MakeDir, $(@D))
- $(RM) '$@'
- $(SORT) $< > $@
-
-# Run the tool on the offset files copied from the source repository to generate several Java classes
-# used in awt.
-$(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated.x11: $(GENSRC_X11_SIZES_USED) $(BUILD_TOOLS_JDK)
- $(call MakeDir, $(GENSRC_X11WRAPPERS_DST))
- $(TOOL_WRAPPERGENERATOR) $(GENSRC_X11WRAPPERS_DST) $(GENSRC_SIZER_DIR)/xlibtypes.txt "gen" $(GENSRC_X11WRAPPERS_TMP)/sizes
+# Run the tool on the offset files to generate several Java classes used in awt.
+$(GENSRC_X11WRAPPERS_MARKER): $(BUILD_TOOLS_JDK) $(GENSRC_X11WRAPPERS_DATA) \
+ $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt
+ $(call MakeDir, $(GENSRC_X11WRAPPERS_OUTPUTDIR))
+ $(call LogInfo, Generating X11 wrapper source files)
+ $(call ExecuteWithLog, $@, \
+ $(TOOL_WRAPPERGENERATOR) gen_java $(GENSRC_X11WRAPPERS_OUTPUTDIR) \
+ $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(GENSRC_X11WRAPPERS_DATA) \
+ $(OPENJDK_TARGET_CPU_BITS))
$(TOUCH) $@
-GENSRC_X11WRAPPERS += $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated.x11
-ifneq ($(COMPILE_TYPE), cross)
- # This is not a cross compile, regenerate the offset file, so that we
- # can compare it with the version in the source code repository.
-
- # Generate the C code for the program that will output the offset file.
- $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c: $(GENSRC_SIZER_DIR)/xlibtypes.txt $(BUILD_TOOLS_JDK)
- $(call LogInfo, Generating X11 wrapper ($*-bit version))
- $(call MakeDir, $(@D))
- $(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
-
- # use -m32/-m64 only if the compiler supports it
- ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG), true)
- MEMORY_MODEL_FLAG="$(COMPILER_TARGET_BITS_FLAG)$*"
- endif
-
- SIZER_CFLAGS := \
- -I$(TOPDIR)/src/hotspot/share/include \
- -I$(TOPDIR)/src/hotspot/os/$(HOTSPOT_TARGET_OS_TYPE)/include \
- -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
- -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
- -I$(TOPDIR)/src/java.base/share/native/libjava \
- -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
- -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
- -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
- -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
- #
-
- # Compile the C code into an executable.
- $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
- $(call MakeDir, $(@D))
- (cd $(@D) && $(CC) $(MEMORY_MODEL_FLAG) -o $@ $< \
- $(X_CFLAGS) \
- $(X_LIBS) \
- $(SIZER_CFLAGS) -lc)
-
- .PRECIOUS: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
-
- # Run the executable create the offset file and check that it is identical
- # to the offset file in the source code repository.
- $(GENSRC_X11WRAPPERS_TMP)/sizes.%.verification: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe
- $(call LogInfo, Verifying X11 wrapper sizes)
- $(call MakeDir, $(@D))
- $(GENSRC_X11WRAPPERS_TMP)/sizer.$*.exe | $(SORT) > $@.tmp
- $(DIFF) $(GENSRC_X11WRAPPERS_TMP)/sizes.$*.verification.tmp $(GENSRC_X11WRAPPERS_TMP)/sizes.$*
- mv $@.tmp $@
-
- GENSRC_X11WRAPPERS += $(GENSRC_X11WRAPPERS_TMP)/sizes.$(OPENJDK_TARGET_CPU_BITS).verification
-endif
-
-GENSRC_JAVA_DESKTOP += $(GENSRC_X11WRAPPERS)
+GENSRC_JAVA_DESKTOP += $(GENSRC_X11WRAPPERS_MARKER)
diff -r c3ec048aad63 -r ece10494786c make/hotspot/gensrc/GensrcAdlc.gmk
--- a/make/hotspot/gensrc/GensrcAdlc.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/gensrc/GensrcAdlc.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2018, 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
@@ -52,8 +52,8 @@
endif
# Set the C++ standard if supported
- ADLC_CFLAGS += $(CXXSTD_CXXFLAG)
-
+ ADLC_CFLAGS += $(ADLC_CXXFLAG)
+
# NOTE: The old build didn't set -DASSERT for windows but it doesn't seem to
# hurt.
ADLC_CFLAGS += -DASSERT
@@ -63,6 +63,8 @@
ADLC_CFLAGS += -I$(TOPDIR)/src/hotspot/share
$(eval $(call SetupNativeCompilation, BUILD_ADLC, \
+ NAME := adlc, \
+ TYPE := EXECUTABLE, \
TOOLCHAIN := TOOLCHAIN_BUILD_LINK_CXX, \
SRC := $(TOPDIR)/src/hotspot/share/adlc, \
EXTRA_FILES := $(TOPDIR)/src/hotspot/share/opto/opcodes.cpp, \
@@ -71,7 +73,6 @@
LIBS := $(ADLC_LIBS), \
OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc/objs, \
OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc, \
- PROGRAM := adlc, \
DEBUG_SYMBOLS := false, \
DISABLED_WARNINGS_clang := tautological-compare, \
DISABLED_WARNINGS_solstudio := notemsource, \
diff -r c3ec048aad63 -r ece10494786c make/hotspot/gensrc/GensrcDtrace.gmk
--- a/make/hotspot/gensrc/GensrcDtrace.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/gensrc/GensrcDtrace.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2018, 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
@@ -46,7 +46,7 @@
$(call LogInfo, Generating dtrace header file $(@F))
$(call MakeDir, $(@D) $(DTRACE_SUPPORT_DIR))
$(call ExecuteWithLog, $(DTRACE_SUPPORT_DIR)/$(@F).d, \
- ( $(CC) -E $(DTRACE_CPP_FLAGS) $< > $(DTRACE_SUPPORT_DIR)/$(@F).d ) )
+ ($(CPP) $(DTRACE_CPP_FLAGS) $< > $(DTRACE_SUPPORT_DIR)/$(@F).d))
$(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -h -o $@ -s $(DTRACE_SUPPORT_DIR)/$(@F).d)
# Process all .d files in DTRACE_SOURCE_DIR. They are:
diff -r c3ec048aad63 -r ece10494786c make/hotspot/lib/CompileDtracePostJvm.gmk
--- a/make/hotspot/lib/CompileDtracePostJvm.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/lib/CompileDtracePostJvm.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2018, 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
@@ -46,17 +46,14 @@
# in the libjvm.so, using JVM_CFLAGS as setup in CompileJvm.gmk. Otherwise
# this would preferrably have been done as a part of GensrcDtrace.gmk.
$(eval $(call SetupNativeCompilation, BUILD_DTRACE_GEN_OFFSETS, \
+ NAME := dtraceGenOffsets, \
+ TYPE := EXECUTABLE, \
SRC := $(TOPDIR)/make/hotspot/src/native/dtrace, \
- CC := $(BUILD_CXX), \
- CXX := $(BUILD_CXX), \
- LDEXE := $(BUILD_CXX), \
- generateJvmOffsets.cpp_CXXFLAGS := $(JVM_CFLAGS) -mt -xnolib -norunpath, \
- generateJvmOffsetsMain.c_CFLAGS := -mt -m64 -norunpath -z nodefs, \
+ TOOLCHAIN := $(TOOLCHAIN_BUILD), \
LDFLAGS := -m64, \
- LIBS := -lc, \
+ CFLAGS := -m64 $(JVM_CFLAGS), \
OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets/objs, \
OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets, \
- PROGRAM := dtraceGenOffsets, \
))
DTRACE_GEN_OFFSETS_TOOL := $(BUILD_DTRACE_GEN_OFFSETS_TARGET)
@@ -77,25 +74,12 @@
JVM_OFFSETS_INDEX_H := $(DTRACE_SUPPORT_DIR)/JvmOffsetsIndex.h
# Run the dtrace-gen-offset tool to generate these three files.
+ # The generated JvmOffsets.cpp is compiled with the rest of libjvm.
$(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_H), header))
$(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_INDEX_H), index))
$(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_CPP), table))
############################################################################
- # Compile JVM_OFFSETS_OBJ which is linked with libjvm.so.
-
- # JvmOffsets.cpp is compiled without the common JVM_CFLAGS. Otherwise, the
- # natural way would have been to included this source code in BUILD_LIBJVM.
- JVM_OFFSETS_CFLAGS := -m64
- ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
- JVM_OFFSETS_CFLAGS += -xarch=sparc
- endif
-
- $(JVM_OFFSETS_OBJ): $(JVM_OFFSETS_CPP) $(JVM_OFFSETS_H)
- $(call LogInfo, Compiling dtrace file JvmOffsets.cpp (for libjvm.so))
- $(call ExecuteWithLog, $@, $(CXX) -c -I$( $(DTRACE_SUPPORT_DIR)/$(@F).d)
+ $(call ExecuteWithLog, $(DTRACE_SUPPORT_DIR)/$(@F).d, \
+ ($(CPP) $(DTRACE_CPP_FLAGS) $< > $(DTRACE_SUPPORT_DIR)/$(@F).d))
$(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -xlazyload -o $@ \
-s $(DTRACE_SUPPORT_DIR)/$(@F).d $(sort $(DTRACE_INSTRUMENTED_OBJS)))
@@ -156,21 +140,29 @@
# Unfortunately dtrace generates incorrect types for some symbols in
# dtrace_jhelper.o, resulting in "warning: symbol X has differing types"
- # This is tracked in JDK-6890703.
- $(DTRACE_JHELPER_OBJ): $(TOPDIR)/src/hotspot/os/solaris/dtrace/jhelper.d \
- $(JVM_OFFSETS_INDEX_H)
- $(call LogInfo, Running dtrace for $( $(DTRACE_SUPPORT_DIR)/$(@F).d)
- # $(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -o $@ \
- # -s $(DTRACE_SUPPORT_DIR)/$(@F).d)
+ # Make sure we run our selected compiler for preprocessing instead of letting
+ # the dtrace tool pick it on it's own.
+ $(DTRACE_JHELPER_OBJ): $(JHELPER_DTRACE_SRC) $(JVM_OFFSETS_INDEX_H)
+ $(call LogInfo, Running dtrace for $( $(DTRACE_SUPPORT_DIR)/$(@F).d))
+ $(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -o $@ \
+ -s $(DTRACE_SUPPORT_DIR)/$(@F).d)
+ ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
+ $(call ExecuteWithLog, $@.elfedit, $(ELFEDIT) $(call GetElfeditCommands) $@)
+ endif
############################################################################
# Build the stand-alone dtrace libraries
@@ -178,7 +170,7 @@
LIBJVM_DTRACE_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm_dtrace
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM_DTRACE, \
- LIBRARY := jvm_dtrace, \
+ NAME := jvm_dtrace, \
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
SRC := $(TOPDIR)/src/java.base/solaris/native/libjvm_dtrace, \
CFLAGS := -m64 -G -mt -KPIC, \
@@ -193,7 +185,7 @@
# Note that libjvm_db.c has tests for COMPILER2, but this was never set by
# the old build.
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM_DB, \
- LIBRARY := jvm_db, \
+ NAME := jvm_db, \
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
SRC := $(TOPDIR)/src/java.base/solaris/native/libjvm_db, \
CFLAGS := -I$(JVM_VARIANT_OUTPUTDIR)/gensrc -I$(DTRACE_SUPPORT_DIR) \
diff -r c3ec048aad63 -r ece10494786c make/hotspot/lib/CompileDtracePreJvm.gmk
--- a/make/hotspot/lib/CompileDtracePreJvm.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/lib/CompileDtracePreJvm.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, 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
@@ -29,8 +29,11 @@
# CompileJvm.gmk
DTRACE_OBJ := $(JVM_OUTPUTDIR)/objs/dtrace.o
DTRACE_JHELPER_OBJ := $(JVM_OUTPUTDIR)/objs/dtrace_jhelper.o
- JVM_OFFSETS_OBJ := $(JVM_OUTPUTDIR)/objs/JvmOffsets.o
+ DTRACE_EXTRA_OBJECT_FILES := $(DTRACE_OBJ) $(DTRACE_JHELPER_OBJ)
- DTRACE_EXTRA_OBJECT_FILES := $(DTRACE_OBJ) $(DTRACE_JHELPER_OBJ) $(JVM_OFFSETS_OBJ)
+ # Since we cannot generate JvmOffsets.cpp as part of the gensrc step,
+ # we need this special hook to get it to compile with the rest of libjvm.
+ JVM_OFFSETS_CPP := $(DTRACE_SUPPORT_DIR)/JvmOffsets.cpp
+ DTRACE_EXTRA_SOURCE_FILES := $(JVM_OFFSETS_CPP)
endif
endif
diff -r c3ec048aad63 -r ece10494786c make/hotspot/lib/CompileGtest.gmk
--- a/make/hotspot/lib/CompileGtest.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/lib/CompileGtest.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -63,8 +63,8 @@
# exclusive to the gtest libjvm.so.
$(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
+ NAME := jvm, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
- LIBRARY := jvm, \
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
SRC := $(GTEST_TEST_SRC), \
@@ -81,8 +81,6 @@
CFLAGS_solaris := -DGTEST_HAS_EXCEPTIONS=0 -library=stlport4, \
CFLAGS_macosx := -DGTEST_OS_MAC=1, \
CFLAGS_aix := -qpic=large, \
- CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
- CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
DISABLED_WARNINGS_gcc := undef, \
DISABLED_WARNINGS_clang := undef switch format-nonliteral \
tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \
@@ -108,14 +106,13 @@
$(eval $(call SetupNativeCompilation, BUILD_GTEST_LAUNCHER, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
- PROGRAM := gtestLauncher, \
+ NAME := gtestLauncher, \
+ TYPE := EXECUTABLE, \
OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \
CFLAGS := $(JVM_CFLAGS) -I$(GTEST_FRAMEWORK_SRC) \
-I$(GTEST_FRAMEWORK_SRC)/include, \
- CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
- CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
LDFLAGS := $(LDFLAGS_JDKEXE), \
LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/gtest $(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_solaris := -library=stlport4, \
diff -r c3ec048aad63 -r ece10494786c make/hotspot/lib/CompileJvm.gmk
--- a/make/hotspot/lib/CompileJvm.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/lib/CompileJvm.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2018, 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
@@ -210,17 +210,16 @@
# Now set up the actual compilation of the main hotspot native library
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
+ NAME := jvm, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
- LIBRARY := jvm, \
OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
SRC := $(JVM_SRC_DIRS), \
+ EXTRA_FILES := $(DTRACE_EXTRA_SOURCE_FILES), \
EXCLUDES := $(JVM_EXCLUDES), \
EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
CFLAGS := $(JVM_CFLAGS), \
- CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
- CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
DISABLED_WARNINGS_clang := tautological-compare, \
diff -r c3ec048aad63 -r ece10494786c make/hotspot/lib/CompileLibjsig.gmk
--- a/make/hotspot/lib/CompileLibjsig.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/lib/CompileLibjsig.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2018, 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
@@ -36,7 +36,7 @@
ifeq ($(STATIC_BUILD), false)
ifeq ($(OPENJDK_TARGET_OS), linux)
LIBJSIG_CFLAGS := -fPIC -D_GNU_SOURCE -D_REENTRANT $(EXTRA_CFLAGS)
- LIBJSIG_LDFLAGS := $(LDFLAGS_HASH_STYLE) ${LDFLAGS_NO_EXEC_STACK} $(EXTRA_CFLAGS)
+ LIBJSIG_LDFLAGS := $(LIBJSIG_HASHSTYLE_LDFLAGS) ${LIBJSIG_NOEXECSTACK_LDFLAGS} $(EXTRA_CFLAGS)
LIBJSIG_LIBS := $(LIBDL)
# NOTE: The old build compiled this library without -soname.
@@ -76,7 +76,7 @@
else ifeq ($(OPENJDK_TARGET_OS), macosx)
LIBJSIG_CFLAGS := -m64 -D_GNU_SOURCE -pthread -mno-omit-leaf-frame-pointer -mstack-alignment=16 -fPIC
- LIBJSIG_LDFLAGS := $(LDFLAGS_HASH_STYLE)
+ LIBJSIG_LDFLAGS := $(LIBJSIG_HASHSTYLE_LDFLAGS)
else
$(error Unknown target OS $(OPENJDK_TARGET_OS) in CompileLibjsig.gmk)
endif
@@ -90,7 +90,7 @@
LIB_OUTPUTDIR := $(call FindLibDirForModule, java.base)
$(eval $(call SetupNativeCompilation, BUILD_LIBJSIG, \
- LIBRARY := jsig, \
+ NAME := jsig, \
SRC := $(LIBJSIG_SRC_DIR), \
OUTPUT_DIR := $(LIB_OUTPUTDIR), \
LANG := C, \
diff -r c3ec048aad63 -r ece10494786c make/hotspot/src/native/dtrace/generateJvmOffsets.cpp
--- a/make/hotspot/src/native/dtrace/generateJvmOffsets.cpp Thu Mar 01 16:35:36 2018 -0500
+++ b/make/hotspot/src/native/dtrace/generateJvmOffsets.cpp Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, 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
@@ -297,3 +297,30 @@
fflush(stdout);
return 0;
}
+
+const char *HELP =
+ "HELP: generateJvmOffsets {-header | -index | -table} \n";
+
+int main(int argc, const char *argv[]) {
+ GEN_variant gen_var;
+
+ if (argc != 2) {
+ printf("%s", HELP);
+ return 1;
+ }
+
+ if (0 == strcmp(argv[1], "-header")) {
+ gen_var = GEN_OFFSET;
+ }
+ else if (0 == strcmp(argv[1], "-index")) {
+ gen_var = GEN_INDEX;
+ }
+ else if (0 == strcmp(argv[1], "-table")) {
+ gen_var = GEN_TABLE;
+ }
+ else {
+ printf("%s", HELP);
+ return 1;
+ }
+ return generateJvmOffsets(gen_var);
+}
diff -r c3ec048aad63 -r ece10494786c make/hotspot/src/native/dtrace/generateJvmOffsetsMain.c
--- a/make/hotspot/src/native/dtrace/generateJvmOffsetsMain.c Thu Mar 01 16:35:36 2018 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2003, 2010, 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.
- *
- * 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.
- *
- */
-
-
-#include "generateJvmOffsets.h"
-
-const char *HELP =
- "HELP: generateJvmOffsets {-header | -index | -table} \n";
-
-int main(int argc, const char *argv[]) {
- GEN_variant gen_var;
-
- if (argc != 2) {
- printf("%s", HELP);
- return 1;
- }
-
- if (0 == strcmp(argv[1], "-header")) {
- gen_var = GEN_OFFSET;
- }
- else if (0 == strcmp(argv[1], "-index")) {
- gen_var = GEN_INDEX;
- }
- else if (0 == strcmp(argv[1], "-table")) {
- gen_var = GEN_TABLE;
- }
- else {
- printf("%s", HELP);
- return 1;
- }
- return generateJvmOffsets(gen_var);
-}
diff -r c3ec048aad63 -r ece10494786c make/jdk/src/classes/build/tools/jigsaw/GenGraphs.java
--- a/make/jdk/src/classes/build/tools/jigsaw/GenGraphs.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/jdk/src/classes/build/tools/jigsaw/GenGraphs.java Fri Mar 02 21:00:12 2018 +0100
@@ -142,6 +142,7 @@
ranks.add(Set.of("java.logging", "java.scripting", "java.xml"));
ranks.add(Set.of("java.sql"));
+ ranks.add(Set.of("java.transaction.xa"));
ranks.add(Set.of("java.compiler", "java.instrument"));
ranks.add(Set.of("java.desktop", "java.management"));
diff -r c3ec048aad63 -r ece10494786c make/jdk/src/classes/build/tools/jigsaw/technology-summary.html
--- a/make/jdk/src/classes/build/tools/jigsaw/technology-summary.html Thu Mar 01 16:35:36 2018 -0500
+++ b/make/jdk/src/classes/build/tools/jigsaw/technology-summary.html Fri Mar 02 21:00:12 2018 +0100
@@ -20,8 +20,8 @@
diff -r c3ec048aad63 -r ece10494786c make/jdk/src/classes/build/tools/taglet/ExtLink.java
--- a/make/jdk/src/classes/build/tools/taglet/ExtLink.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/jdk/src/classes/build/tools/taglet/ExtLink.java Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, 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
@@ -49,14 +49,14 @@
* will produce the following html
*
* {@code
- * Please see a spectacular sight.
+ * Please see a spectacular sight.
* }
*/
public class ExtLink implements Taglet {
static final String TAG_NAME = "extLink";
- static final String URL = "https://www.oracle.com/pls/topic/lookup?ctx=javase9&id=";
+ static final String URL = "https://www.oracle.com/pls/topic/lookup?ctx=javase10&id=";
static final Pattern TAG_PATTERN = Pattern.compile("(?s)(\\s*)(?\\w+)(\\s+)(?.*)$");
diff -r c3ec048aad63 -r ece10494786c make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java
--- a/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, 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
@@ -1109,7 +1109,6 @@
}
public void writeJavaWrapperClass(String outputDir) {
-// (new File(outputDir, package_path)).mkdirs();
try {
for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) {
BaseType tp = (BaseType) e.nextElement();
@@ -1126,7 +1125,6 @@
}
}
-
public void writeNativeSizer(String file)
{
int type;
@@ -1136,7 +1134,6 @@
StructType stp;
Enumeration eo;
-
try {
FileOutputStream fs = new FileOutputStream(file);
@@ -1158,7 +1155,6 @@
pw.println(" unsigned long status;\n");
pw.println("} PropMwmHints;\n");
-
pw.println("\n\nint main(){");
j=0;
for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
@@ -1182,7 +1178,6 @@
pw.println("printf(\"Atom\t%d\\n\",(int)sizeof(Atom));");
pw.println("printf(\"Window\t%d\\n\",(int)sizeof(Window));");
-
for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
@@ -1234,7 +1229,8 @@
symbolTable.put("Atom", new AtomicType(AtomicType.TYPE_ATOM, "", "Atom"));
symbolTable.put("ulong", new AtomicType(AtomicType.TYPE_ULONG, "", "ulong"));
}
- public WrapperGenerator(String outputDir, String xlibFilename) {
+
+ public WrapperGenerator(String xlibFilename) {
initTypes();
try {
BufferedReader in = new BufferedReader(new FileReader(xlibFilename));
@@ -1303,33 +1299,19 @@
catch (Exception e) {
e.printStackTrace();
}
+ }
- }
- private void makeSizer(String outputDir) {
- if (wide) {
- sizerFileName = "sizer.64.c";
- } else {
- sizerFileName = "sizer.32.c";
- }
- File fp = new File(outputDir, sizerFileName);
+ private void makeSizer(String sizerFileName) {
+ File fp = new File(sizerFileName);
writeNativeSizer(fp.getAbsolutePath());
}
- private boolean readSizeInfo(String sizeInfo) {
+
+ private boolean readFileSizeInfo(String filename, boolean wide) {
try {
- File f = new File(sizeInfo+".32");
boolean res = true;
- FileInputStream fis = null;
- if (f.exists()) {
- fis = new FileInputStream(f);
- res = readSizeInfo(fis, false);
- fis.close();
- }
- f = new File(sizeInfo+".64");
- if (f.exists()) {
- fis = new FileInputStream(f);
- res &= readSizeInfo(fis, true);
- fis.close();
- }
+ FileInputStream fis = new FileInputStream(filename);
+ res = readSizeInfo(fis, wide);
+ fis.close();
return res;
} catch (Exception e) {
e.printStackTrace();
@@ -1337,8 +1319,8 @@
}
}
- private void startGeneration(String outputDir, String sizeInfo) {
- if (readSizeInfo(sizeInfo))
+ private void startGeneration(String outputDir, String filename, boolean wide) {
+ if (readFileSizeInfo(filename, wide))
{
writeJavaWrapperClass(outputDir);
}
@@ -1348,21 +1330,22 @@
}
public static void main(String[] args) {
+ if (args.length < 4) {
+ System.out.println("Usage:\nWrapperGenerator gen_java ");
+ System.out.println(" or");
+ System.out.println("WrapperGenerator gen_c_source ");
+ System.out.println("Where : 32, 64");
- if (args.length < 4) {
- System.out.println("Usage:\nWrapperGenerator [ | ]");
- System.out.println("Where : gen, sizer");
- System.out.println(" : 32, 64");
System.exit(1);
}
- WrapperGenerator xparser = new WrapperGenerator(args[0], args[1]);
- if (args[2].equals("sizer")) {
+ WrapperGenerator xparser = new WrapperGenerator(args[2]);
+ if (args[0].equals("gen_c_source")) {
xparser.wide = args[3].equals("64");
- xparser.makeSizer(args[0]);
- } else if (args[2].equals("gen")) {
- xparser.startGeneration(args[0], args[3]);
+ xparser.makeSizer(args[1]);
+ } else if (args[0].equals("gen_java")) {
+ boolean wide = args[4].equals("64");
+ xparser.startGeneration(args[1], args[3], wide);
}
}
-
}
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/crules/AbstractCodingRulesAnalyzer.java
--- a/make/langtools/tools/crules/AbstractCodingRulesAnalyzer.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/crules/AbstractCodingRulesAnalyzer.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/crules/AssertCheckAnalyzer.java
--- a/make/langtools/tools/crules/AssertCheckAnalyzer.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/crules/AssertCheckAnalyzer.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/crules/CodingRulesAnalyzerPlugin.java
--- a/make/langtools/tools/crules/CodingRulesAnalyzerPlugin.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/crules/CodingRulesAnalyzerPlugin.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/crules/DefinedByAnalyzer.java
--- a/make/langtools/tools/crules/DefinedByAnalyzer.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/crules/DefinedByAnalyzer.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/crules/LegacyLogMethodAnalyzer.java
--- a/make/langtools/tools/crules/LegacyLogMethodAnalyzer.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/crules/LegacyLogMethodAnalyzer.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/crules/MutableFieldsAnalyzer.java
--- a/make/langtools/tools/crules/MutableFieldsAnalyzer.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/crules/MutableFieldsAnalyzer.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/propertiesparser/gen/ClassGenerator.java
--- a/make/langtools/tools/propertiesparser/gen/ClassGenerator.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/propertiesparser/gen/ClassGenerator.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/propertiesparser/parser/Message.java
--- a/make/langtools/tools/propertiesparser/parser/Message.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/propertiesparser/parser/Message.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/propertiesparser/parser/MessageFile.java
--- a/make/langtools/tools/propertiesparser/parser/MessageFile.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/propertiesparser/parser/MessageFile.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/propertiesparser/parser/MessageInfo.java
--- a/make/langtools/tools/propertiesparser/parser/MessageInfo.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/propertiesparser/parser/MessageInfo.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/propertiesparser/parser/MessageLine.java
--- a/make/langtools/tools/propertiesparser/parser/MessageLine.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/propertiesparser/parser/MessageLine.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/langtools/tools/propertiesparser/parser/MessageType.java
--- a/make/langtools/tools/propertiesparser/parser/MessageType.java Thu Mar 01 16:35:36 2018 -0500
+++ b/make/langtools/tools/propertiesparser/parser/MessageType.java Fri Mar 02 21:00:12 2018 +0100
@@ -4,7 +4,9 @@
*
* 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.
+ * 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
diff -r c3ec048aad63 -r ece10494786c make/launcher/Launcher-java.base.gmk
--- a/make/launcher/Launcher-java.base.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/launcher/Launcher-java.base.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -73,6 +73,8 @@
ifeq ($(OPENJDK_TARGET_OS), linux)
$(eval $(call SetupNativeCompilation, BUILD_JEXEC, \
+ NAME := jexec, \
+ TYPE := EXECUTABLE, \
SRC := $(TOPDIR)/src/$(MODULE)/unix/native/launcher, \
INCLUDE_FILES := jexec.c, \
OPTIMIZATION := LOW, \
@@ -83,7 +85,6 @@
LDFLAGS := $(LDFLAGS_JDKEXE), \
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/jexec_obj, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
- PROGRAM := jexec, \
))
TARGETS += $(BUILD_JEXEC)
@@ -93,6 +94,8 @@
ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris aix), )
$(eval $(call SetupNativeCompilation, BUILD_JSPAWNHELPER, \
+ NAME := jspawnhelper, \
+ TYPE := EXECUTABLE, \
SRC := $(TOPDIR)/src/$(MODULE)/unix/native/jspawnhelper, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKEXE) -I$(TOPDIR)/src/$(MODULE)/unix/native/libjava, \
@@ -100,7 +103,6 @@
LDFLAGS := $(LDFLAGS_JDKEXE), \
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/jspawnhelper, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE), \
- PROGRAM := jspawnhelper, \
))
TARGETS += $(BUILD_JSPAWNHELPER)
diff -r c3ec048aad63 -r ece10494786c make/launcher/Launcher-jdk.accessibility.gmk
--- a/make/launcher/Launcher-jdk.accessibility.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/launcher/Launcher-jdk.accessibility.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2018, 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
@@ -33,7 +33,9 @@
JABSWITCH_SRC := $(TOPDIR)/src/jdk.accessibility/windows/native/jabswitch
ACCESSBRIDGE_SRC := $(TOPDIR)/src/jdk.accessibility/windows/native/common
- $(eval $(call SetupNativeCompilation,BUILD_JABSWITCH, \
+ $(eval $(call SetupNativeCompilation, BUILD_JABSWITCH, \
+ NAME := jabswitch, \
+ TYPE := EXECUTABLE, \
SRC := $(JABSWITCH_SRC), \
INCLUDE_FILES := jabswitch.cpp, \
CFLAGS := $(filter-out -Zc:wchar_t-, $(CFLAGS_JDKEXE)) -Zc:wchar_t \
@@ -44,7 +46,6 @@
LIBS := advapi32.lib version.lib user32.lib, \
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/jdk.accessibility/jabswitch, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/jdk.accessibility, \
- PROGRAM := jabswitch, \
VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRC)/AccessBridgeStatusWindow.RC, \
RC_FLAGS := $(RC_FLAGS) \
-D "JDK_FNAME=jabswitch.exe" \
@@ -70,6 +71,8 @@
# Parameter 2 ACCESSBRIDGE_ARCH_ -D suffix
$$(eval $$(call SetupNativeCompilation, BUILD_JACCESSINSPECTOR$1, \
+ NAME := jaccessinspector$1, \
+ TYPE := EXECUTABLE, \
SRC := $(TOPDIR)/jaccessinspector $(TOPDIR)/common \
$(TOPDIR)/toolscommon $(TOPDIR)/bridge, \
CFLAGS := $$(CFLAGS_JDKEXE) $(TOOLS_CFLAGS) -DACCESSBRIDGE_ARCH_$2 -EHsc, \
@@ -77,7 +80,6 @@
LIBS := advapi32.lib user32.lib, \
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/jdk.accessibility/jaccessinspector$1, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/jdk.accessibility, \
- PROGRAM := jaccessinspector$1, \
VERSIONINFO_RESOURCE := $(TOPDIR)/jaccessinspector/jaccessinspectorWindow.rc, \
RC_FLAGS := $$(RC_FLAGS) \
-D "JDK_FNAME=jaccessinspector$1.exe" \
@@ -96,7 +98,9 @@
# Parameter 1 File name suffix
# Parameter 2 ACCESSBRIDGE_ARCH_ -D suffix
- $$(eval $$(call SetupNativeCompilation,BUILD_JACCESSWALKER$1, \
+ $$(eval $$(call SetupNativeCompilation, BUILD_JACCESSWALKER$1, \
+ NAME := jaccesswalker$1, \
+ TYPE := EXECUTABLE, \
SRC := $(TOPDIR)/jaccesswalker $(TOPDIR)/common \
$(TOPDIR)/toolscommon $(TOPDIR)/bridge, \
CFLAGS := $$(CFLAGS_JDKEXE) $(TOOLS_CFLAGS) -DACCESSBRIDGE_ARCH_$2 -EHsc, \
@@ -104,7 +108,6 @@
LIBS := advapi32.lib comctl32.lib gdi32.lib user32.lib, \
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/jdk.accessibility/jaccesswalker$1, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/jdk.accessibility, \
- PROGRAM := jaccesswalker$1, \
VERSIONINFO_RESOURCE := $(TOPDIR)/jaccesswalker/jaccesswalkerWindow.rc, \
RC_FLAGS := $$(RC_FLAGS) \
-D "JDK_FNAME=jaccesswalker$1.exe" \
diff -r c3ec048aad63 -r ece10494786c make/launcher/Launcher-jdk.pack.gmk
--- a/make/launcher/Launcher-jdk.pack.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/launcher/Launcher-jdk.pack.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -73,7 +73,9 @@
UNPACK_MAPFILE := $(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200
endif
-$(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
+$(eval $(call SetupNativeCompilation, BUILD_UNPACKEXE, \
+ NAME := unpack200, \
+ TYPE := EXECUTABLE, \
SRC := $(UNPACKEXE_SRC), \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
OPTIMIZATION := LOW, \
@@ -91,7 +93,6 @@
LIBS_solaris := -lc, \
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \
- PROGRAM := unpack200, \
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
RC_FLAGS := $(RC_FLAGS) \
-D "JDK_FNAME=unpack200.exe" \
diff -r c3ec048aad63 -r ece10494786c make/launcher/LauncherCommon.gmk
--- a/make/launcher/LauncherCommon.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/launcher/LauncherCommon.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -183,6 +183,8 @@
endif
$$(eval $$(call SetupNativeCompilation, BUILD_LAUNCHER_$1, \
+ NAME := $1, \
+ TYPE := EXECUTABLE, \
EXTRA_FILES := $(LAUNCHER_SRC)/main.c, \
OPTIMIZATION := $$($1_OPTIMIZATION), \
CFLAGS := $$($1_CFLAGS) \
@@ -211,7 +213,6 @@
$$($1_LIBS_windows), \
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$1_objs, \
OUTPUT_DIR := $$($1_OUTPUT_DIR), \
- PROGRAM := $1, \
VERSIONINFO_RESOURCE := $$($1_VERSION_INFO_RESOURCE), \
RC_FLAGS := $$(RC_FLAGS) \
-D "JDK_FNAME=$1$(EXE_SUFFIX)" \
diff -r c3ec048aad63 -r ece10494786c make/lib/Awt2dLibraries.gmk
--- a/make/lib/Awt2dLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Awt2dLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -48,8 +48,8 @@
BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL)
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \
- LIBRARY := mlib_image, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBMLIB_IMAGE, \
+ NAME := mlib_image, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(BUILD_LIBMLIB_SRC), \
EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \
@@ -107,8 +107,8 @@
LIBMLIB_IMAGE_V_CFLAGS += $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS))
- $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V, \
- LIBRARY := mlib_image_v, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBMLIB_IMAGE_V, \
+ NAME := mlib_image_v, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBMLIB_IMAGE_V_SRC), \
EXCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_EXFILES), \
@@ -226,8 +226,8 @@
LIBAWT_CFLAGS += -fgcse-after-reload
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \
- LIBRARY := awt, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBAWT, \
+ NAME := awt, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBAWT_DIRS), \
EXCLUDES := $(LIBAWT_EXCLUDES), \
@@ -347,8 +347,8 @@
BUILD_LIBAWT_XAWT_debug_mem.c_CFLAGS := -w
endif
- $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \
- LIBRARY := awt_xawt, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBAWT_XAWT, \
+ NAME := awt_xawt, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBAWT_XAWT_DIRS), \
EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
@@ -406,8 +406,8 @@
LIBLCMS_CPPFLAGS += $(addprefix -I, $(LIBLCMS_SRC))
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
- LIBRARY := lcms, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBLCMS, \
+ NAME := lcms, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBLCMS_SRC), \
INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
@@ -483,8 +483,8 @@
BUILD_LIBJAVAJPEG_HEADERS := $(addprefix -I, $(LIBJAVAJPEG_SRC))
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
- LIBRARY := javajpeg, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJAVAJPEG, \
+ NAME := javajpeg, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJAVAJPEG_SRC), \
INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
@@ -547,8 +547,8 @@
endif
endif
- $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \
- LIBRARY := awt_headless, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBAWT_HEADLESS, \
+ NAME := awt_headless, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBAWT_HEADLESS_DIRS), \
EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
@@ -657,8 +657,8 @@
BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
- LIBRARY := fontmanager, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBFONTMANAGER, \
+ NAME := fontmanager, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfontmanager, \
SRC := $(LIBFONTMANAGER_SRC), \
EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
@@ -691,7 +691,7 @@
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
LIBS_linux := -lc, \
- LIBS_solaris := -lawt_headless -lc, \
+ LIBS_solaris := -lc, \
LIBS_aix := -lawt_headless,\
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
$(WIN_AWT_LIB), \
@@ -744,8 +744,8 @@
ifeq ($(OPENJDK_TARGET_CPU), x86)
KERNEL32_LIB := kernel32.lib
endif
- $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
- LIBRARY := jawt, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJAWT, \
+ NAME := jawt, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJAWT_SRC), \
INCLUDE_FILES := $(LIBJAWT_INCLUDE_FILES), \
@@ -804,8 +804,8 @@
endif
endif
- $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \
- LIBRARY := jawt, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJAWT, \
+ NAME := jawt, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJAWT_SRC), \
INCLUDE_FILES := $(JAWT_FILES), \
@@ -935,8 +935,8 @@
LIBSPLASHSCREEN_LIBS += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread -ldl
endif
- $(eval $(call SetupNativeCompilation,BUILD_LIBSPLASHSCREEN, \
- LIBRARY := splashscreen, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBSPLASHSCREEN, \
+ NAME := splashscreen, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBSPLASHSCREEN_DIRS), \
EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
@@ -1008,8 +1008,8 @@
LIBAWT_LWAWT_EXFILES := fontpath.c awt_Font.c X11Color.c
LIBAWT_LWAWT_EXCLUDES := $(TOPDIR)/src/java.desktop/unix/native/common/awt/medialib
- $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \
- LIBRARY := awt_lwawt, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBAWT_LWAWT, \
+ NAME := awt_lwawt, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBAWT_LWAWT_DIRS), \
INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
@@ -1057,8 +1057,8 @@
ifeq ($(OPENJDK_TARGET_OS), macosx)
- $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \
- LIBRARY := osxui, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBOSXUI, \
+ NAME := osxui, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(TOPDIR)/src/java.desktop/macosx/native/libosxui, \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/CoreLibraries.gmk
--- a/make/lib/CoreLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/CoreLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -55,8 +55,9 @@
LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC)
ifneq ($(OPENJDK_TARGET_OS), macosx)
- $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
- STATIC_LIBRARY := fdlibm, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
+ NAME := fdlibm, \
+ TYPE := STATIC_LIBRARY, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
SRC := $(LIBFDLIBM_SRC), \
OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
@@ -77,8 +78,8 @@
# On macosx the old build does partial (incremental) linking of fdlibm instead of
# a plain static library.
- $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \
- LIBRARY := fdlibm, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM_MAC, \
+ NAME := fdlibm, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
SRC := $(LIBFDLIBM_SRC), \
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
@@ -107,8 +108,8 @@
endif
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
- LIBRARY := verify, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBVERIFY, \
+ NAME := verify, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(TOPDIR)/src/java.base/share/native/libverify, \
OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
@@ -155,8 +156,8 @@
endif
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \
- LIBRARY := java, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJAVA, \
+ NAME := java, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJAVA_SRC_DIRS), \
OPTIMIZATION := HIGH, \
@@ -218,8 +219,8 @@
BUILD_LIBZIP_MMAP := -DUSE_MMAP
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
- LIBRARY := zip, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBZIP, \
+ NAME := zip, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
OPTIMIZATION := LOW, \
SRC := $(TOPDIR)/src/java.base/share/native/libzip, \
@@ -262,8 +263,8 @@
-I$(SUPPORT_OUTPUTDIR)/headers/java.base \
#
-$(eval $(call SetupNativeCompilation,BUILD_LIBJIMAGE, \
- LIBRARY := jimage, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJIMAGE, \
+ NAME := jimage, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
OPTIMIZATION := LOW, \
@@ -358,8 +359,8 @@
)
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \
- LIBRARY := jli, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJLI, \
+ NAME := jli, \
OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
SRC := $(LIBJLI_SRC_DIRS), \
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
@@ -415,8 +416,9 @@
# with the shared library, so the static library is given a different name. No harm
# in doing it for all platform to reduce complexity.
ifeq ($(OPENJDK_TARGET_OS), windows)
- $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
- STATIC_LIBRARY := jli_static, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
+ NAME := jli_static, \
+ TYPE := STATIC_LIBRARY, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
SRC := $(LIBJLI_SRC_DIRS), \
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
@@ -434,8 +436,8 @@
# On macosx they do partial (incremental) linking of libjli_static.a
# code it here...rather than add support to NativeCompilation
# as this is first time I see it
- $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
- LIBRARY := jli_static, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
+ NAME := jli_static, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
SRC := $(LIBJLI_SRC_DIRS), \
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
@@ -457,8 +459,9 @@
else ifeq ($(OPENJDK_TARGET_OS), aix)
# AIX also requires a static libjli because the compiler doesn't support '-rpath'
- $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
- STATIC_LIBRARY := jli_static, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
+ NAME := jli_static, \
+ TYPE := STATIC_LIBRARY, \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
SRC := $(LIBJLI_SRC_DIRS), \
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-java.instrument.gmk
--- a/make/lib/Lib-java.instrument.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-java.instrument.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -49,8 +49,8 @@
LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT, \
- LIBRARY := instrument, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBINSTRUMENT, \
+ NAME := instrument, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBINSTRUMENT_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-java.management.gmk
--- a/make/lib/Lib-java.management.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-java.management.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -44,8 +44,8 @@
endif
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT, \
- LIBRARY := management, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBMANAGEMENT, \
+ NAME := management, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBMANAGEMENT_SRC), \
OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-java.prefs.gmk
--- a/make/lib/Lib-java.prefs.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-java.prefs.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -33,8 +33,8 @@
LIBPREF_SRC_DIRS := $(TOPDIR)/src/java.prefs/$(OPENJDK_TARGET_OS_TYPE)/native/libprefs
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBPREFS, \
- LIBRARY := prefs, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBPREFS, \
+ NAME := prefs, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBPREF_SRC_DIRS), \
OPTIMIZATION := HIGH, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-java.rmi.gmk
--- a/make/lib/Lib-java.rmi.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-java.rmi.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, 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
@@ -27,8 +27,8 @@
################################################################################
-$(eval $(call SetupNativeCompilation,BUILD_LIBRMI, \
- LIBRARY := rmi, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBRMI, \
+ NAME := rmi, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(TOPDIR)/src/java.rmi/share/native/librmi, \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-java.security.jgss.gmk
--- a/make/lib/Lib-java.security.jgss.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-java.security.jgss.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -32,8 +32,8 @@
$(TOPDIR)/src/java.security.jgss/$(OPENJDK_TARGET_OS_TYPE)/native/libj2gss \
#
- $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS, \
- LIBRARY := j2gss, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJ2GSS, \
+ NAME := j2gss, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJ2GSS_SRC), \
OPTIMIZATION := LOW, \
@@ -74,8 +74,8 @@
ifneq ($(BUILD_LIBKRB5_NAME), )
# libosxkrb5 needs to call deprecated krb5 APIs so that java
# can use the native credentials cache.
- $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5, \
- LIBRARY := $(BUILD_LIBKRB5_NAME), \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBKRB5, \
+ NAME := $(BUILD_LIBKRB5_NAME), \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(BUILD_LIBKRB5_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-java.smartcardio.gmk
--- a/make/lib/Lib-java.smartcardio.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-java.smartcardio.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -33,8 +33,8 @@
-I$(TOPDIR)/src/java.smartcardio/$(OPENJDK_TARGET_OS_TYPE)/native/libj2pcsc/MUSCLE \
-I$(SUPPORT_OUTPUTDIR)/headers/java.smartcardio
-$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \
- LIBRARY := j2pcsc, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJ2PCSC, \
+ NAME := j2pcsc, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJ2PCSC_SRC), \
CFLAGS_unix := -D__sun_jdk, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.accessibility.gmk
--- a/make/lib/Lib-jdk.accessibility.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.accessibility.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2018, 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
@@ -41,8 +41,8 @@
# Parameter 1 Suffix
# Parameter 2 ACCESSBRIDGE_ARCH_ suffix
- $(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1, \
- LIBRARY = javaaccessbridge$1, \
+ $(call SetupNativeCompilation, BUILD_JAVAACCESSBRIDGE$1, \
+ NAME := javaaccessbridge$1, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(JAVA_AB_SRCDIR), \
OPTIMIZATION := LOW, \
@@ -71,8 +71,8 @@
define SetupWinDLL
# Parameter 1 Suffix
# Parameter 2 ACCESSBRIDGE_ARCH_ suffix
- $(call SetupNativeCompilation,BUILD_WINDOWSACCESSBRIDGE$1, \
- LIBRARY = windowsaccessbridge$1, \
+ $(call SetupNativeCompilation, BUILD_WINDOWSACCESSBRIDGE$1, \
+ NAME := windowsaccessbridge$1, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(WIN_AB_SRCDIR), \
OPTIMIZATION := LOW, \
@@ -99,8 +99,8 @@
define SetupAccessBridgeSysInfo
- $(call SetupNativeCompilation,BUILD_ACCESSBRIDGESYSINFO, \
- LIBRARY = jabsysinfo, \
+ $(call SetupNativeCompilation, BUILD_ACCESSBRIDGESYSINFO, \
+ NAME := jabsysinfo, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(SYSINFO_SRCDIR), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.attach.gmk
--- a/make/lib/Lib-jdk.attach.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.attach.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -34,8 +34,8 @@
LIBATTACH_CFLAGS := -DPSAPI_VERSION=1
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH, \
- LIBRARY := attach, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBATTACH, \
+ NAME := attach, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(call FindSrcDirsForLib, jdk.attach, attach), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.crypto.cryptoki.gmk
--- a/make/lib/Lib-jdk.crypto.cryptoki.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.crypto.cryptoki.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -30,8 +30,8 @@
LIBJ2PKCS11_SRC := $(TOPDIR)/src/jdk.crypto.cryptoki/share/native/libj2pkcs11 \
$(TOPDIR)/src/jdk.crypto.cryptoki/$(OPENJDK_TARGET_OS_TYPE)/native/libj2pkcs11
-$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \
- LIBRARY := j2pkcs11, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJ2PKCS11, \
+ NAME := j2pkcs11, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJ2PKCS11_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.crypto.ec.gmk
--- a/make/lib/Lib-jdk.crypto.ec.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.crypto.ec.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -43,8 +43,8 @@
ECC_JNI_SOLSPARC_FILTER := -xregs=no%appl
endif
- $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \
- LIBRARY := sunec, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBSUNEC, \
+ NAME := sunec, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBSUNEC_SRC), \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.crypto.mscapi.gmk
--- a/make/lib/Lib-jdk.crypto.mscapi.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.crypto.mscapi.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -31,8 +31,8 @@
LIBSUNMSCAPI_SRC := $(TOPDIR)/src/jdk.crypto.mscapi/$(OPENJDK_TARGET_OS_TYPE)/native/libsunmscapi
- $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI, \
- LIBRARY := sunmscapi, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBSUNMSCAPI, \
+ NAME := sunmscapi, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBSUNMSCAPI_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.crypto.ucrypto.gmk
--- a/make/lib/Lib-jdk.crypto.ucrypto.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.crypto.ucrypto.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2018, 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
@@ -31,8 +31,8 @@
LIBJ2UCRYPTO_SRC := $(TOPDIR)/src/jdk.crypto.ucrypto/solaris/native/libj2ucrypto
- $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO, \
- LIBRARY := j2ucrypto, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJ2UCRYPTO, \
+ NAME := j2ucrypto, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJ2UCRYPTO_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.hotspot.agent.gmk
--- a/make/lib/Lib-jdk.hotspot.agent.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.hotspot.agent.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, 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
@@ -78,7 +78,7 @@
else ifeq ($(OPENJDK_TARGET_OS), windows)
SA_NAME := sawindbg
- COMMON_CFLAGS := -D_WINDOWS -D_DEBUG -D_CONSOLE -D_MBCS -EHsc -FD
+ COMMON_CFLAGS := -D_WINDOWS -D_DEBUG -D_CONSOLE -D_MBCS -EHsc
SA_CFLAGS := $(subst -DWIN32_LEAN_AND_MEAN,, $(CFLAGS_JDKLIB)) \
$(COMMON_CFLAGS)
SA_CXXFLAGS := $(subst -DWIN32_LEAN_AND_MEAN,, $(CXXFLAGS_JDKLIB)) \
@@ -98,12 +98,12 @@
################################################################################
$(eval $(call SetupNativeCompilation, BUILD_LIBSA, \
+ NAME := $(SA_NAME), \
TOOLCHAIN := $(SA_TOOLCHAIN), \
OPTIMIZATION := NONE, \
DISABLED_WARNINGS_microsoft := 4267, \
DISABLED_WARNINGS_gcc := sign-compare, \
DISABLED_WARNINGS_CXX_solstudio := truncwarn unknownpragma, \
- LIBRARY := $(SA_NAME), \
OUTPUT_DIR := $(call FindLibDirForModule, $(MODULE)), \
SRC := $(SA_SRC), \
EXCLUDE_FILES := test.c saproc_audit.cpp $(SA_EXCLUDE_FILES), \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.internal.le.gmk
--- a/make/lib/Lib-jdk.internal.le.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.internal.le.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, 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
@@ -36,8 +36,8 @@
-I$(SUPPORT_OUTPUTDIR)/headers/jdk.internal.le \
#
- $(eval $(call SetupNativeCompilation,BUILD_LIBLE, \
- LIBRARY := le, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBLE, \
+ NAME := le, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBLE_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.jdi.gmk
--- a/make/lib/Lib-jdk.jdi.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.jdi.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -39,8 +39,8 @@
-I$(SUPPORT_OUTPUTDIR)/headers/jdk.jdi \
#
- $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM, \
- LIBRARY := dt_shmem, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBDT_SHMEM, \
+ NAME := dt_shmem, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBDT_SHMEM_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.jdwp.agent.gmk
--- a/make/lib/Lib-jdk.jdwp.agent.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.jdwp.agent.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -36,8 +36,8 @@
-I$(TOPDIR)/src/jdk.jdwp.agent/share/native/include \
#
-$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET, \
- LIBRARY := dt_socket, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBDT_SOCKET, \
+ NAME := dt_socket, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBDT_SOCKET_SRC), \
OPTIMIZATION := LOW, \
@@ -73,8 +73,8 @@
$(addprefix -I, $(LIBJDWP_SRC))
# JDWP_LOGGING causes log messages to be compiled into the library.
-$(eval $(call SetupNativeCompilation,BUILD_LIBJDWP, \
- LIBRARY := jdwp, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJDWP, \
+ NAME := jdwp, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJDWP_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.management.agent.gmk
--- a/make/lib/Lib-jdk.management.agent.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.management.agent.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 2018, 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
@@ -33,8 +33,8 @@
$(LIBJAVA_HEADER_FLAGS) \
#
-$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT_AGENT, \
- LIBRARY := management_agent, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBMANAGEMENT_AGENT, \
+ NAME := management_agent, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBMANAGEMENT_AGENT_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.management.gmk
--- a/make/lib/Lib-jdk.management.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.management.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, 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
@@ -53,8 +53,8 @@
endif
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT_EXT, \
- LIBRARY := management_ext, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBMANAGEMENT_EXT, \
+ NAME := management_ext, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBMANAGEMENT_EXT_SRC), \
LANG := C, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.net.gmk
--- a/make/lib/Lib-jdk.net.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.net.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, 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
@@ -30,7 +30,7 @@
ifeq ($(OPENJDK_TARGET_OS), solaris)
$(eval $(call SetupNativeCompilation, BUILD_LIBEXTNET, \
- LIBRARY := extnet, \
+ NAME := extnet, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(TOPDIR)/src/jdk.net/solaris/native/libextnet, \
OPTIMIZATION := LOW, \
@@ -51,7 +51,7 @@
ifeq ($(OPENJDK_TARGET_OS), linux)
$(eval $(call SetupNativeCompilation, BUILD_LIBEXTNET, \
- LIBRARY := extnet, \
+ NAME := extnet, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(TOPDIR)/src/jdk.net/linux/native/libextnet, \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.pack.gmk
--- a/make/lib/Lib-jdk.pack.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.pack.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -27,8 +27,8 @@
################################################################################
-$(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \
- LIBRARY := unpack, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBUNPACK, \
+ NAME := unpack, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(TOPDIR)/src/jdk.pack/share/native/libunpack \
$(TOPDIR)/src/jdk.pack/share/native/common-unpack, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.sctp.gmk
--- a/make/lib/Lib-jdk.sctp.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.sctp.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -30,8 +30,8 @@
ifeq ($(OPENJDK_TARGET_OS_TYPE), unix)
ifeq (, $(filter $(OPENJDK_TARGET_OS), macosx aix))
- $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \
- LIBRARY := sctp, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBSCTP, \
+ NAME := sctp, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(TOPDIR)/src/jdk.sctp/$(OPENJDK_TARGET_OS_TYPE)/native/libsctp, \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/Lib-jdk.security.auth.gmk
--- a/make/lib/Lib-jdk.security.auth.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/Lib-jdk.security.auth.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -38,8 +38,8 @@
LIBJAAS_NAME := jaas_nt
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBJAAS, \
- LIBRARY := $(LIBJAAS_NAME), \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJAAS, \
+ NAME := $(LIBJAAS_NAME), \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(call FindSrcDirsForLib, jdk.security.auth, jaas), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/LibosxLibraries.gmk
--- a/make/lib/LibosxLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/LibosxLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -34,8 +34,8 @@
-I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
#
- $(eval $(call SetupNativeCompilation,BUILD_LIBOSX, \
- LIBRARY := osx, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBOSX, \
+ NAME := osx, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBOSX_DIRS), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/NetworkingLibraries.gmk
--- a/make/lib/NetworkingLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/NetworkingLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -25,8 +25,8 @@
LIBNET_SRC_DIRS := $(call FindSrcDirsForLib, java.base, net)
-$(eval $(call SetupNativeCompilation,BUILD_LIBNET, \
- LIBRARY := net, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBNET, \
+ NAME := net, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBNET_SRC_DIRS), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/NioLibraries.gmk
--- a/make/lib/NioLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/NioLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -56,8 +56,8 @@
BUILD_LIBNIO_MAPFILE := $(TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
endif
-$(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \
- LIBRARY := nio, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBNIO, \
+ NAME := nio, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(BUILD_LIBNIO_SRC), \
EXCLUDE_FILES := $(BUILD_LIBNIO_EXFILES), \
diff -r c3ec048aad63 -r ece10494786c make/lib/PlatformLibraries.gmk
--- a/make/lib/PlatformLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/PlatformLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -29,8 +29,8 @@
LIBOSXAPP_SRC := $(TOPDIR)/src/java.desktop/macosx/native/libosxapp
- $(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP, \
- LIBRARY := osxapp, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBOSXAPP, \
+ NAME := osxapp, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBOSXAPP_SRC), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/SecurityLibraries.gmk
--- a/make/lib/SecurityLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/SecurityLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, 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
@@ -26,7 +26,7 @@
include LibCommon.gmk
ifeq ($(OPENJDK_TARGET_OS), macosx)
- # JavaNativeFoundation framework not supported in static builds
+ # JavaNativeFoundation framework not supported in static builds
ifneq ($(STATIC_BUILD), true)
################################################################################
@@ -36,8 +36,8 @@
$(LIBJAVA_HEADER_FLAGS) \
-I$(SUPPORT_OUTPUTDIR)/headers/java.base \
- $(eval $(call SetupNativeCompilation,BUILD_LIBOSXSECURITY, \
- LIBRARY := osxsecurity, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBOSXSECURITY, \
+ NAME := osxsecurity, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBOSXSECURITY_DIRS), \
OPTIMIZATION := LOW, \
diff -r c3ec048aad63 -r ece10494786c make/lib/SoundLibraries.gmk
--- a/make/lib/SoundLibraries.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/lib/SoundLibraries.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, 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
@@ -114,8 +114,8 @@
LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
-$(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND, \
- LIBRARY := jsound, \
+$(eval $(call SetupNativeCompilation, BUILD_LIBJSOUND, \
+ NAME := jsound, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJSOUND_SRC_DIRS), \
INCLUDE_FILES := $(LIBJSOUND_SRC_FILES), \
@@ -149,8 +149,8 @@
ifneq ($(filter jsoundalsa, $(EXTRA_SOUND_JNI_LIBS)), )
- $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDALSA, \
- LIBRARY := jsoundalsa, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJSOUNDALSA, \
+ NAME := jsoundalsa, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJSOUND_SRC_DIRS), \
INCLUDE_FILES := Utilities.c $(LIBJSOUND_MIDIFILES) $(LIBJSOUND_PORTFILES) \
@@ -186,8 +186,8 @@
ifneq ($(filter jsoundds, $(EXTRA_SOUND_JNI_LIBS)), )
- $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDDS, \
- LIBRARY := jsoundds, \
+ $(eval $(call SetupNativeCompilation, BUILD_LIBJSOUNDDS, \
+ NAME := jsoundds, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(LIBJSOUND_SRC_DIRS), \
INCLUDE_FILES := Utilities.c $(LIBJSOUND_DAUDIOFILES) \
diff -r c3ec048aad63 -r ece10494786c make/test/BuildFailureHandler.gmk
--- a/make/test/BuildFailureHandler.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/test/BuildFailureHandler.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, 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
@@ -64,7 +64,7 @@
ifeq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupNativeCompilation, BUILD_LIBTIMEOUT_HANDLER, \
- LIBRARY := timeoutHandler, \
+ NAME := timeoutHandler, \
SRC := $(FH_BASEDIR)/src/windows/native/libtimeoutHandler, \
OBJECT_DIR := $(FH_SUPPORT)/libtimeoutHandler, \
OUTPUT_DIR := $(FH_SUPPORT), \
diff -r c3ec048aad63 -r ece10494786c make/test/JtregNativeJdk.gmk
--- a/make/test/JtregNativeJdk.gmk Thu Mar 01 16:35:36 2018 -0500
+++ b/make/test/JtregNativeJdk.gmk Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2018, 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
@@ -50,6 +50,7 @@
ifneq ($(OPENJDK_TARGET_OS), windows)
BUILD_JDK_JTREG_NATIVE_SRC += $(TOPDIR)/test/jdk/java/nio/channels/FileChannel/directio
+ BUILD_JDK_JTREG_NATIVE_SRC += $(TOPDIR)/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel
endif
BUILD_JDK_JTREG_OUTPUT_DIR := $(OUTPUTDIR)/support/test/jdk/jtreg/native
@@ -59,9 +60,14 @@
ifeq ($(OPENJDK_TARGET_OS), windows)
WIN_LIB_JAVA := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib
BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := $(WIN_LIB_JAVA)
+else ifeq ($(OPENJDK_TARGET_OS), linux)
+ BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := -ljava
+ BUILD_JDK_JTREG_LIBRARIES_LIBS_libDirectIO := -ljava
+ BUILD_JDK_JTREG_LIBRARIES_LIBS_libInheritedChannel := -ljava
else ifeq ($(OPENJDK_TARGET_OS), solaris)
BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := -ljava -lc
BUILD_JDK_JTREG_LIBRARIES_LIBS_libDirectIO := -ljava -lc
+ BUILD_JDK_JTREG_LIBRARIES_LIBS_libInheritedChannel := -ljava -lc
else
BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := -ljava
BUILD_JDK_JTREG_LIBRARIES_LIBS_libDirectIO := -ljava
diff -r c3ec048aad63 -r ece10494786c src/hotspot/os/solaris/dtrace/jhelper.d
--- a/src/hotspot/os/solaris/dtrace/jhelper.d Thu Mar 01 16:35:36 2018 -0500
+++ b/src/hotspot/os/solaris/dtrace/jhelper.d Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, 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
@@ -19,7 +19,7 @@
* 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 file is auto-generated */
@@ -30,7 +30,7 @@
#ifdef DEBUG
#define MARK_LINE this->line = __LINE__
#else
-#define MARK_LINE
+#define MARK_LINE
#endif
#ifdef _LP64
@@ -59,9 +59,8 @@
#define copyin_int32(ADDR) *(int32_t*) copyin((pointer) (ADDR), sizeof(int32_t))
#define copyin_uint8(ADDR) *(uint8_t*) copyin((pointer) (ADDR), sizeof(uint8_t))
-#define SAME(x) x
#define copyin_offset(JVM_CONST) JVM_CONST = \
- copyin_int32(JvmOffsetsPtr + SAME(IDX_)JVM_CONST * sizeof(int32_t))
+ copyin_int32(JvmOffsetsPtr + IDX_##JVM_CONST * sizeof(int32_t))
int init_done;
@@ -97,7 +96,7 @@
/!init_done && !this->done/
{
MARK_LINE;
-
+
copyin_offset(POINTER_SIZE);
copyin_offset(COMPILER);
copyin_offset(OFFSET_CollectedHeap_reserved);
@@ -158,7 +157,9 @@
#endif
/* Read address of GrowableArray */
- this->code_heaps_address = copyin_ptr(&``__1cJCodeCacheG_heaps_);
+ // this->code_heaps_address = copyin_ptr(&``__1cJCodeCacheG_heaps_);
+ this->code_heaps_address = * ( uint64_t * ) copyin ( ( uint64_t ) ( &``__1cJCodeCacheG_heaps_ ) , sizeof ( uint64_t ) );
+
/* Read address of _data array field in GrowableArray */
this->code_heaps_array_address = copyin_ptr(this->code_heaps_address + OFFSET_GrowableArray_CodeHeap_data);
this->number_of_heaps = copyin_uint32(this->code_heaps_address + OFFSET_GrowableArray_CodeHeap_len);
@@ -168,7 +169,9 @@
/*
* Get Java heap bounds
*/
- this->Universe_collectedHeap = copyin_ptr(&``__1cIUniverseO_collectedHeap_);
+ // this->Universe_collectedHeap = copyin_ptr(&``__1cIUniverseO_collectedHeap_);
+ this->Universe_collectedHeap = * ( uint64_t * ) copyin ( ( uint64_t ) ( &``__1cIUniverseO_collectedHeap_ ) , sizeof ( uint64_t ) );
+
this->heap_start = copyin_ptr(this->Universe_collectedHeap +
OFFSET_CollectedHeap_reserved +
OFFSET_MemRegion_start);
@@ -181,8 +184,8 @@
}
/*
- * IMPORTANT: At the moment the ustack helper supports up to 5 code heaps in
- * the code cache. If more code heaps are added the following probes have to
+ * IMPORTANT: At the moment the ustack helper supports up to 5 code heaps in
+ * the code cache. If more code heaps are added the following probes have to
* be extended. This is done by simply adding a probe to get the heap bounds
* and another probe to set the code heap address of the newly created heap.
*/
@@ -197,7 +200,7 @@
/* CodeHeap 1 */
init_done = 1;
this->code_heap1_address = copyin_ptr(this->code_heaps_array_address);
- this->code_heap1_low = copyin_ptr(this->code_heap1_address +
+ this->code_heap1_low = copyin_ptr(this->code_heap1_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low);
this->code_heap1_high = copyin_ptr(this->code_heap1_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high);
@@ -211,7 +214,7 @@
init_done = 2;
this->code_heaps_array_address = this->code_heaps_array_address + POINTER_SIZE;
this->code_heap2_address = copyin_ptr(this->code_heaps_array_address);
- this->code_heap2_low = copyin_ptr(this->code_heap2_address +
+ this->code_heap2_low = copyin_ptr(this->code_heap2_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low);
this->code_heap2_high = copyin_ptr(this->code_heap2_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high);
@@ -224,7 +227,7 @@
init_done = 3;
this->code_heaps_array_address = this->code_heaps_array_address + POINTER_SIZE;
this->code_heap3_address = copyin_ptr(this->code_heaps_array_address);
- this->code_heap3_low = copyin_ptr(this->code_heap3_address +
+ this->code_heap3_low = copyin_ptr(this->code_heap3_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low);
this->code_heap3_high = copyin_ptr(this->code_heap3_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high);
@@ -237,7 +240,7 @@
init_done = 4;
this->code_heaps_array_address = this->code_heaps_array_address + POINTER_SIZE;
this->code_heap4_address = copyin_ptr(this->code_heaps_array_address);
- this->code_heap4_low = copyin_ptr(this->code_heap4_address +
+ this->code_heap4_low = copyin_ptr(this->code_heap4_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low);
this->code_heap4_high = copyin_ptr(this->code_heap4_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high);
@@ -250,7 +253,7 @@
init_done = 5;
this->code_heaps_array_address = this->code_heaps_array_address + POINTER_SIZE;
this->code_heap5_address = copyin_ptr(this->code_heaps_array_address);
- this->code_heap5_low = copyin_ptr(this->code_heap5_address +
+ this->code_heap5_low = copyin_ptr(this->code_heap5_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low);
this->code_heap5_high = copyin_ptr(this->code_heap5_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high);
@@ -309,10 +312,10 @@
/!this->done && this->codecache/
{
MARK_LINE;
- /*
+ /*
* Get code heap configuration
*/
- this->code_heap_low = copyin_ptr(this->code_heap_address +
+ this->code_heap_low = copyin_ptr(this->code_heap_address +
OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low);
this->code_heap_segmap_low = copyin_ptr(this->code_heap_address +
OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_low);
@@ -506,10 +509,10 @@
/*
* Now we need to add a trailing '\0' and possibly a tag character.
*/
- this->result[this->klassSymbolLength + 1 +
+ this->result[this->klassSymbolLength + 1 +
this->nameSymbolLength +
this->signatureSymbolLength] = this->suffix;
- this->result[this->klassSymbolLength + 2 +
+ this->result[this->klassSymbolLength + 2 +
this->nameSymbolLength +
this->signatureSymbolLength] = '\0';
@@ -519,7 +522,7 @@
dtrace:helper:ustack:
/this->done && this->error == (char *) NULL/
{
- this->result;
+ this->result;
}
dtrace:helper:ustack:
diff -r c3ec048aad63 -r ece10494786c src/hotspot/share/gc/g1/g1CardTable.cpp
diff -r c3ec048aad63 -r ece10494786c src/hotspot/share/gc/g1/g1CardTable.hpp
diff -r c3ec048aad63 -r ece10494786c src/hotspot/share/gc/g1/g1RemSet.cpp
--- a/src/hotspot/share/gc/g1/g1RemSet.cpp Thu Mar 01 16:35:36 2018 -0500
+++ b/src/hotspot/share/gc/g1/g1RemSet.cpp Fri Mar 02 21:00:12 2018 +0100
@@ -587,6 +587,20 @@
return;
}
+ // While we are processing RSet buffers during the collection, we
+ // actually don't want to scan any cards on the collection set,
+ // since we don't want to update remembered sets with entries that
+ // point into the collection set, given that live objects from the
+ // collection set are about to move and such entries will be stale
+ // very soon. This change also deals with a reliability issue which
+ // involves scanning a card in the collection set and coming across
+ // an array that was being chunked and looking malformed. Note,
+ // however, that if evacuation fails, we have to scan any objects
+ // that were not moved and create any missing entries.
+ if (r->in_collection_set()) {
+ return;
+ }
+
// The result from the hot card cache insert call is either:
// * pointer to the current card
// (implying that the current card is not 'hot'),
@@ -611,7 +625,8 @@
// Check whether the region formerly in the cache should be
// ignored, as discussed earlier for the original card. The
- // region could have been freed while in the cache.
+ // region could have been freed while in the cache. The cset is
+ // not relevant here, since we're in concurrent phase.
if (!r->is_old_or_humongous()) {
return;
}
diff -r c3ec048aad63 -r ece10494786c src/hotspot/share/gc/parallel/psCardTable.cpp
diff -r c3ec048aad63 -r ece10494786c src/hotspot/share/gc/parallel/psCardTable.hpp
diff -r c3ec048aad63 -r ece10494786c src/hotspot/share/gc/shared/cardTable.cpp
diff -r c3ec048aad63 -r ece10494786c src/hotspot/share/gc/shared/cardTable.hpp
diff -r c3ec048aad63 -r ece10494786c src/java.base/share/classes/java/lang/AbstractStringBuilder.java
--- a/src/java.base/share/classes/java/lang/AbstractStringBuilder.java Thu Mar 01 16:35:36 2018 -0500
+++ b/src/java.base/share/classes/java/lang/AbstractStringBuilder.java Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, 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
@@ -89,6 +89,29 @@
}
/**
+ * Compares the objects of two AbstractStringBuilder implementations lexicographically.
+ *
+ * @since 11
+ */
+ int compareTo(AbstractStringBuilder another) {
+ if (this == another) {
+ return 0;
+ }
+
+ byte val1[] = value;
+ byte val2[] = another.value;
+ int count1 = this.count;
+ int count2 = another.count;
+
+ if (coder == another.coder) {
+ return isLatin1() ? StringLatin1.compareTo(val1, val2, count1, count2)
+ : StringUTF16.compareTo(val1, val2, count1, count2);
+ }
+ return isLatin1() ? StringLatin1.compareToUTF16(val1, val2, count1, count2)
+ : StringUTF16.compareToLatin1(val1, val2, count1, count2);
+ }
+
+ /**
* Returns the length (character count).
*
* @return the length of the sequence of characters currently
diff -r c3ec048aad63 -r ece10494786c src/java.base/share/classes/java/lang/CharSequence.java
--- a/src/java.base/share/classes/java/lang/CharSequence.java Thu Mar 01 16:35:36 2018 -0500
+++ b/src/java.base/share/classes/java/lang/CharSequence.java Fri Mar 02 21:00:12 2018 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, 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
@@ -26,6 +26,7 @@
package java.lang;
import java.util.NoSuchElementException;
+import java.util.Objects;
import java.util.PrimitiveIterator;
import java.util.Spliterator;
import java.util.Spliterators;
@@ -43,9 +44,9 @@
*
*
This interface does not refine the general contracts of the {@link
* java.lang.Object#equals(java.lang.Object) equals} and {@link
- * java.lang.Object#hashCode() hashCode} methods. The result of comparing two
- * objects that implement {@code CharSequence} is therefore, in general,
- * undefined. Each object may be implemented by a different class, and there
+ * java.lang.Object#hashCode() hashCode} methods. The result of testing two objects
+ * that implement {@code CharSequence} for equality is therefore, in general, undefined.
+ * Each object may be implemented by a different class, and there
* is no guarantee that each class will be capable of testing its instances
* for equality with those of the other. It is therefore inappropriate to use
* arbitrary {@code CharSequence} instances as elements in a set or as keys in
@@ -237,4 +238,54 @@
Spliterator.ORDERED,
false);
}
+
+ /**
+ * Compares two {@code CharSequence} instances lexicographically. Returns a
+ * negative value, zero, or a positive value if the first sequence is lexicographically
+ * less than, equal to, or greater than the second, respectively.
+ *
+ *
+ * The lexicographical ordering of {@code CharSequence} is defined as follows.
+ * Consider a {@code CharSequence} cs of length len to be a
+ * sequence of char values, cs[0] to cs[len-1]. Suppose k
+ * is the lowest index at which the corresponding char values from each sequence
+ * differ. The lexicographic ordering of the sequences is determined by a numeric
+ * comparison of the char values cs1[k] with cs2[k]. If there is
+ * no such index k, the shorter sequence is considered lexicographically
+ * less than the other. If the sequences have the same length, the sequences are
+ * considered lexicographically equal.
+ *
+ *
+ * @param cs1 the first {@code CharSequence}
+ * @param cs2 the second {@code CharSequence}
+ *
+ * @return the value {@code 0} if the two {@code CharSequence} are equal;
+ * a negative integer if the first {@code CharSequence}
+ * is lexicographically less than the second; or a
+ * positive integer if the first {@code CharSequence} is
+ * lexicographically greater than the second.
+ *
+ * @since 11
+ */
+ @SuppressWarnings("unchecked")
+ public static int compare(CharSequence cs1, CharSequence cs2) {
+ if (Objects.requireNonNull(cs1) == Objects.requireNonNull(cs2)) {
+ return 0;
+ }
+
+ if (cs1.getClass() == cs2.getClass() && cs1 instanceof Comparable) {
+ return ((Comparable