732 OPENJDK_BUILD_CXXFLAGS_JDKLIB
733 OPENJDK_BUILD_CFLAGS_JDKEXE
734 OPENJDK_BUILD_CFLAGS_JDKLIB
735 OPENJDK_BUILD_CXXSTD_CXXFLAG
736 JVM_LIBS
737 JVM_ASFLAGS
738 JVM_LDFLAGS
739 JVM_CFLAGS
740 LDFLAGS_HASH_STYLE
741 LDFLAGS_CXX_JDK
742 JDKEXE_LIBS
743 JDKLIB_LIBS
744 LDFLAGS_JDKEXE
745 LDFLAGS_JDKLIB
746 CXXFLAGS_JDKEXE
747 CXXFLAGS_JDKLIB
748 CFLAGS_JDKEXE
749 CFLAGS_JDKLIB
750 MACOSX_VERSION_MIN
751 CXXSTD_CXXFLAG
752 CXX_O_FLAG_SIZE
753 CXX_O_FLAG_NONE
754 CXX_O_FLAG_DEBUG
755 CXX_O_FLAG_NORM
756 CXX_O_FLAG_HI
757 CXX_O_FLAG_HIGHEST
758 CXX_O_FLAG_HIGHEST_JVM
759 C_O_FLAG_SIZE
760 C_O_FLAG_NONE
761 C_O_FLAG_DEBUG
762 C_O_FLAG_NORM
763 C_O_FLAG_HI
764 C_O_FLAG_HIGHEST
765 C_O_FLAG_HIGHEST_JVM
766 JVM_CFLAGS_SYMBOLS
767 CXXFLAGS_DEBUG_SYMBOLS
768 CFLAGS_DEBUG_SYMBOLS
769 CXX_FLAG_DEPS
770 C_FLAG_DEPS
771 SHARED_LIBRARY_FLAGS
1122 prefix
1123 exec_prefix
1124 PACKAGE_URL
1125 PACKAGE_BUGREPORT
1126 PACKAGE_STRING
1127 PACKAGE_VERSION
1128 PACKAGE_TARNAME
1129 PACKAGE_NAME
1130 PATH_SEPARATOR
1131 SHELL'
1132 ac_subst_files=''
1133 ac_user_opts='
1134 enable_option_checking
1135 with_target_bits
1136 enable_openjdk_only
1137 with_custom_make_dir
1138 with_jdk_variant
1139 enable_debug
1140 with_debug_level
1141 with_jvm_variants
1142 with_devkit
1143 with_sys_root
1144 with_sysroot
1145 with_tools_dir
1146 with_toolchain_path
1147 with_extra_path
1148 with_sdk_name
1149 with_conf_name
1150 with_output_sync
1151 with_default_make_target
1152 enable_headless_only
1153 with_cacerts_file
1154 enable_unlimited_crypto
1155 with_copyright_year
1156 enable_keep_packaged_modules
1157 with_milestone
1158 with_update_version
1159 with_user_release_suffix
1160 with_build_number
1161 with_version_string
1171 with_add_source_root
1172 with_override_source_root
1173 with_adds_and_overrides
1174 with_override_langtools
1175 with_override_corba
1176 with_override_jaxp
1177 with_override_jaxws
1178 with_override_hotspot
1179 with_override_nashorn
1180 with_override_jdk
1181 with_import_hotspot
1182 with_import_modules
1183 enable_static_build
1184 with_toolchain_type
1185 with_extra_cflags
1186 with_extra_cxxflags
1187 with_extra_ldflags
1188 with_toolchain_version
1189 with_build_devkit
1190 with_jtreg
1191 enable_warnings_as_errors
1192 with_native_debug_symbols
1193 enable_debug_symbols
1194 enable_zip_debug_info
1195 enable_native_coverage
1196 enable_dtrace
1197 with_jvm_features
1198 with_jvm_interpreter
1199 enable_hotspot_gtest
1200 with_stdc__lib
1201 with_msvcr_dll
1202 with_msvcp_dll
1203 with_x
1204 with_cups
1205 with_cups_include
1206 with_freetype
1207 with_freetype_include
1208 with_freetype_lib
1209 with_freetype_src
1210 enable_freetype_bundling
2013 icecc/icecream [disabled]
2014 --disable-precompiled-headers
2015 disable using precompiled headers when compiling C++
2016 [enabled]
2017 --enable-ccache enable using ccache to speed up recompilations
2018 [disabled]
2019
2020 Optional Packages:
2021 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
2022 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2023 --with-target-bits build 32-bit or 64-bit binaries (for platforms that
2024 support it), e.g. --with-target-bits=32 [guessed]
2025 --with-custom-make-dir Deprecated. Option is kept for backwards
2026 compatibility and is ignored
2027 --with-jdk-variant JDK variant to build (normal) [normal]
2028 --with-debug-level set the debug level (release, fastdebug, slowdebug,
2029 optimized) [release]
2030 --with-jvm-variants JVM variants (separated by commas) to build
2031 (server,client,minimal,core,zero,zeroshark,custom)
2032 [server]
2033 --with-devkit use this devkit for compilers, tools and resources
2034 --with-sys-root alias for --with-sysroot for backwards compatability
2035 --with-sysroot use this directory as sysroot
2036 --with-tools-dir alias for --with-toolchain-path for backwards
2037 compatibility
2038 --with-toolchain-path prepend these directories when searching for
2039 toolchain binaries (compilers etc)
2040 --with-extra-path prepend these directories to the default path
2041 --with-sdk-name use the platform SDK of the given name. [macosx]
2042 --with-conf-name use this as the name of the configuration [generated
2043 from important configuration options]
2044 --with-output-sync set make output sync type if supported by make.
2045 [recurse]
2046 --with-default-make-target
2047 set the default make target [exploded-image]
2048 --with-cacerts-file specify alternative cacerts file
2049 --with-copyright-year Set copyright year value for build [current year]
2050 --with-milestone Deprecated. Option is kept for backwards
2051 compatibility and is ignored
2052 --with-update-version Deprecated. Option is kept for backwards
2095 compatibility and is ignored
2096 --with-override-nashorn Deprecated. Option is kept for backwards
2097 compatibility and is ignored
2098 --with-override-jdk Deprecated. Option is kept for backwards
2099 compatibility and is ignored
2100 --with-import_hotspot Deprecated. Option is kept for backwards
2101 compatibility and is ignored
2102 --with-import-modules import a set of prebuilt modules either as a zip
2103 file or an exploded directory
2104 --with-toolchain-type the toolchain type (or family) to use, use '--help'
2105 to show possible values [platform dependent]
2106 --with-extra-cflags extra flags to be used when compiling jdk c-files
2107 --with-extra-cxxflags extra flags to be used when compiling jdk c++-files
2108 --with-extra-ldflags extra flags to be used when linking jdk
2109 --with-toolchain-version
2110 the version of the toolchain to look for, use
2111 '--help' to show possible values [platform
2112 dependent]
2113 --with-build-devkit Devkit to use for the build platform toolchain
2114 --with-jtreg Regression Test Harness [probed]
2115 --with-native-debug-symbols
2116 set the native debug symbol configuration (none,
2117 internal, external, zipped) [varying]
2118 --with-jvm-features additional JVM features to enable (separated by
2119 comma), use '--help' to show possible values [none]
2120 --with-jvm-interpreter Deprecated. Option is kept for backwards
2121 compatibility and is ignored
2122 --with-stdc++lib=<static>,<dynamic>,<default>
2123 force linking of the C++ runtime on Linux to either
2124 static or dynamic, default is static with dynamic as
2125 fallback
2126 --with-msvcr-dll path to microsoft C runtime dll (msvcr*.dll)
2127 (Windows only) [probed]
2128 --with-msvcp-dll path to microsoft C++ runtime dll (msvcp*.dll)
2129 (Windows only) [probed]
2130 --with-x use the X Window System
2131 --with-cups specify prefix directory for the cups package
2132 (expecting the headers under PATH/include)
2133 --with-cups-include specify directory for the cups include files
2134 --with-freetype specify prefix directory for the freetype package
3979 # under the terms of the GNU General Public License version 2 only, as
3980 # published by the Free Software Foundation. Oracle designates this
3981 # particular file as subject to the "Classpath" exception as provided
3982 # by Oracle in the LICENSE file that accompanied this code.
3983 #
3984 # This code is distributed in the hope that it will be useful, but WITHOUT
3985 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3986 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3987 # version 2 for more details (a copy is included in the LICENSE file that
3988 # accompanied this code).
3989 #
3990 # You should have received a copy of the GNU General Public License version
3991 # 2 along with this work; if not, write to the Free Software Foundation,
3992 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3993 #
3994 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3995 # or visit www.oracle.com if you need additional information or have any
3996 # questions.
3997 #
3998
3999 # Reset the global CFLAGS/LDFLAGS variables and initialize them with the
4000 # corresponding configure arguments instead
4001
4002
4003 # Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
4004 # that configure can use them while detecting compilers.
4005 # TOOLCHAIN_TYPE is available here.
4006 # Param 1 - Optional prefix to all variables. (e.g BUILD_)
4007
4008
4009
4010
4011
4012
4013 # Documentation on common flags used for solstudio in HIGHEST.
4014 #
4015 # WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
4016 # done with care, there are some assumptions below that need to
4017 # be understood about the use of pointers, and IEEE behavior.
4018 #
4235 # particular file as subject to the "Classpath" exception as provided
4236 # by Oracle in the LICENSE file that accompanied this code.
4237 #
4238 # This code is distributed in the hope that it will be useful, but WITHOUT
4239 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4240 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4241 # version 2 for more details (a copy is included in the LICENSE file that
4242 # accompanied this code).
4243 #
4244 # You should have received a copy of the GNU General Public License version
4245 # 2 along with this work; if not, write to the Free Software Foundation,
4246 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4247 #
4248 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4249 # or visit www.oracle.com if you need additional information or have any
4250 # questions.
4251 #
4252
4253 # All valid JVM features, regardless of platform
4254 VALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \
4255 fprof vm-structs jni-check services management all-gcs nmt cds static-build"
4256
4257 # All valid JVM variants
4258 VALID_JVM_VARIANTS="server client minimal core zero zeroshark custom"
4259
4260 ###############################################################################
4261 # Check if the specified JVM variant should be built. To be used in shell if
4262 # constructs, like this:
4263 # if HOTSPOT_CHECK_JVM_VARIANT(server); then
4264 #
4265 # Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants.
4266
4267 # Definition kept in one line to allow inlining in if statements.
4268 # Additional [] needed to keep m4 from mangling shell constructs.
4269
4270
4271 ###############################################################################
4272 # Check if the specified JVM features are explicitly enabled. To be used in
4273 # shell if constructs, like this:
4274 # if HOTSPOT_CHECK_JVM_FEATURE(jvmti); then
4275 #
4290 # custom: baseline JVM with no default features
4291 #
4292
4293
4294 ###############################################################################
4295 # Check if dtrace should be enabled and has all prerequisites present.
4296 #
4297
4298
4299 ###############################################################################
4300 # Set up all JVM features for each JVM variant.
4301 #
4302
4303
4304 ###############################################################################
4305 # Validate JVM features once all setup is complete, including custom setup.
4306 #
4307
4308
4309 ################################################################################
4310 # Check if gtest should be built
4311 #
4312
4313
4314 #
4315 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
4316 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4317 #
4318 # This code is free software; you can redistribute it and/or modify it
4319 # under the terms of the GNU General Public License version 2 only, as
4320 # published by the Free Software Foundation. Oracle designates this
4321 # particular file as subject to the "Classpath" exception as provided
4322 # by Oracle in the LICENSE file that accompanied this code.
4323 #
4324 # This code is distributed in the hope that it will be useful, but WITHOUT
4325 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4326 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4327 # version 2 for more details (a copy is included in the LICENSE file that
4328 # accompanied this code).
4329 #
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088 # This line needs to be here, verbatim, after all includes and the dummy hook
5089 # definitions. It is replaced with custom functionality when building
5090 # custom sources.
5091 #CUSTOM_AUTOCONF_INCLUDE
5092
5093 # Do not change or remove the following line, it is needed for consistency checks:
5094 DATE_WHEN_GENERATED=1479997584
5095
5096 ###############################################################################
5097 #
5098 # Initialization / Boot-strapping
5099 #
5100 # The bootstrapping process needs to solve the "chicken or the egg" problem,
5101 # thus it jumps back and forth, each time gaining something needed later on.
5102 #
5103 ###############################################################################
5104
5105 # If we are requested to print additional help, do that and then exit.
5106 # This must be the very first call.
5107
5108 if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
5109
5110 # Print available toolchains
5111 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
5112 $PRINTF "Which are valid to use depends on the build platform.\n"
5113 for toolchain in $VALID_TOOLCHAINS_all; do
5114 # Use indirect variable referencing
16691 # with the exception that it can contain additional code which is otherwise
16692 # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
16693 # test new and/or experimental features which are not intended for customer
16694 # shipment. Because these new features need to be tested and benchmarked in
16695 # real world scenarios, we want to build the containing JDK at the 'release'
16696 # debug level.
16697 DEBUG_LEVEL="release"
16698 fi
16699
16700
16701
16702
16703
16704
16705 # Check whether --with-jvm-variants was given.
16706 if test "${with_jvm_variants+set}" = set; then :
16707 withval=$with_jvm_variants;
16708 fi
16709
16710
16711 if test "x$with_jvm_variants" = x; then
16712 with_jvm_variants="server"
16713 fi
16714 JVM_VARIANTS_OPT="$with_jvm_variants"
16715
16716 # Has the user listed more than one variant?
16717 # Additional [] needed to keep m4 from mangling shell constructs.
16718 if [[ "$JVM_VARIANTS_OPT" =~ "," ]] ; then
16719 BUILDING_MULTIPLE_JVM_VARIANTS=true
16720 else
16721 BUILDING_MULTIPLE_JVM_VARIANTS=false
16722 fi
16723 # Replace the commas with AND for use in the build directory name.
16724 JVM_VARIANTS_WITH_AND=`$ECHO "$JVM_VARIANTS_OPT" | $SED -e 's/,/AND/g'`
16725
16726 { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM to build" >&5
16727 $as_echo_n "checking which variants of the JVM to build... " >&6; }
16728 # JVM_VARIANTS is a space-separated list.
16729 # Also use minimal, not minimal1 (which is kept for backwards compatibility).
16730 JVM_VARIANTS=`$ECHO $JVM_VARIANTS_OPT | $SED -e 's/,/ /g' -e 's/minimal1/minimal/'`
49076 C_FLAG_REORDER=''
49077 CXX_FLAG_REORDER=''
49078
49079 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
49080 # Linking is different on MacOSX
49081 PICFLAG=''
49082 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
49083 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
49084 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49085 SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/$1'
49086 SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,$1'
49087
49088 if test "x$STATIC_BUILD" = xfalse; then
49089 JVM_CFLAGS="$JVM_CFLAGS -fPIC"
49090 fi
49091 else
49092 # Default works for linux, might work on other platforms as well.
49093 PICFLAG='-fPIC'
49094 SHARED_LIBRARY_FLAGS='-shared'
49095 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN$1'
49096 SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
49097 SET_SHARED_LIBRARY_NAME='-Wl,-soname=$1'
49098 SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=$1'
49099 fi
49100 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49101 PICFLAG="-KPIC"
49102 C_FLAG_REORDER='-xF'
49103 CXX_FLAG_REORDER='-xF'
49104 SHARED_LIBRARY_FLAGS="-G"
49105 SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN$1'
49106 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49107 SET_SHARED_LIBRARY_NAME='-h $1'
49108 SET_SHARED_LIBRARY_MAPFILE='-M$1'
49109 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49110 # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
49111 # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
49112 # will have to patch this single instruction with a call to some out-of-order code which
49113 # does the load from the TOC. This is of course slow. But in that case we also would have
49114 # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
49115 # With 'qpic=large' the compiler will by default generate a two-instruction sequence which
49116 # can be patched directly by the linker and does not require a jump to out-of-order code.
49117 # Another alternative instead of using 'qpic=large -bbigtoc' may be to use '-qminimaltoc'
49118 # instead. This creates a distinct TOC for every compilation unit (and thus requires two
49664 esac
49665
49666
49667
49668
49669
49670
49671
49672
49673
49674
49675
49676
49677
49678
49679
49680
49681
49682
49683
49684 # Special extras...
49685 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49686 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
49687 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49688 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49689 fi
49690 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49691 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49692 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49693 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49694 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49695 elif test "x$TOOLCHAIN_TYPE" = xgcc; then
49696 CXXSTD_CXXFLAG="-std=gnu++98"
49697
49698
49699
49700
49701
49702
49703
49815
49816 # Setup compiler/platform specific flags into
49817 # CFLAGS_JDK - C Compiler flags
49818 # CXXFLAGS_JDK - C++ Compiler flags
49819 # COMMON_CCXXFLAGS_JDK - common to C and C++
49820 if test "x$TOOLCHAIN_TYPE" = xgcc; then
49821 JVM_CFLAGS="$JVM_CFLAGS -D_GNU_SOURCE"
49822 JVM_CFLAGS="$JVM_CFLAGS -D_REENTRANT"
49823 JVM_CFLAGS="$JVM_CFLAGS -fcheck-new"
49824 if test "x$OPENJDK_TARGET_CPU" = xx86; then
49825 # Force compatibility with i586 on 32 bit intel platforms.
49826 COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586"
49827 JVM_CFLAGS="$JVM_CFLAGS -march=i586"
49828 fi
49829 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
49830 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
49831 case $OPENJDK_TARGET_CPU_ARCH in
49832 arm )
49833 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49834 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49835 ;;
49836 ppc )
49837 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49838 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49839 ;;
49840 s390 )
49841 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
49842 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49843 ;;
49844 * )
49845 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
49846 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49847 ;;
49848 esac
49849
49850
49851
49852
49853
49854
50638
50639 # Setup compiler/platform specific flags into
50640 # OPENJDK_BUILD_CFLAGS_JDK - C Compiler flags
50641 # OPENJDK_BUILD_CXXFLAGS_JDK - C++ Compiler flags
50642 # OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK - common to C and C++
50643 if test "x$TOOLCHAIN_TYPE" = xgcc; then
50644 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_GNU_SOURCE"
50645 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_REENTRANT"
50646 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -fcheck-new"
50647 if test "x$OPENJDK_BUILD_CPU" = xx86; then
50648 # Force compatibility with i586 on 32 bit intel platforms.
50649 OPENJDK_BUILD_COMMON_CCXXFLAGS="${OPENJDK_BUILD_COMMON_CCXXFLAGS} -march=i586"
50650 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -march=i586"
50651 fi
50652 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS $OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
50653 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
50654 case $OPENJDK_BUILD_CPU_ARCH in
50655 arm )
50656 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50657 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50658 ;;
50659 ppc )
50660 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50661 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50662 ;;
50663 s390 )
50664 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
50665 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50666 ;;
50667 * )
50668 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
50669 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50670 ;;
50671 esac
50672
50673
50674
50675
50676
50677
52806 fi
52807
52808
52809
52810 # The user can in some cases supply additional jvm features. For the custom
52811 # variant, this defines the entire variant.
52812
52813 # Check whether --with-jvm-features was given.
52814 if test "${with_jvm_features+set}" = set; then :
52815 withval=$with_jvm_features;
52816 fi
52817
52818 if test "x$with_jvm_features" != x; then
52819 { $as_echo "$as_me:${as_lineno-$LINENO}: checking additional JVM features" >&5
52820 $as_echo_n "checking additional JVM features... " >&6; }
52821 JVM_FEATURES=`$ECHO $with_jvm_features | $SED -e 's/,/ /g'`
52822 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JVM_FEATURES" >&5
52823 $as_echo "$JVM_FEATURES" >&6; }
52824 fi
52825
52826 # Verify that dependencies are met for explicitly set features.
52827 if [[ " $JVM_FEATURES " =~ " jvmti " ]] && ! [[ " $JVM_FEATURES " =~ " services " ]] ; then
52828 as_fn_error $? "Specified JVM feature 'jvmti' requires feature 'services'" "$LINENO" 5
52829 fi
52830
52831 if [[ " $JVM_FEATURES " =~ " management " ]] && ! [[ " $JVM_FEATURES " =~ " nmt " ]] ; then
52832 as_fn_error $? "Specified JVM feature 'management' requires feature 'nmt'" "$LINENO" 5
52833 fi
52834
52835 if [[ " $JVM_FEATURES " =~ " jvmci " ]] && ! ( [[ " $JVM_FEATURES " =~ " compiler1 " ]] || [[ " $JVM_FEATURES " =~ " compiler2 " ]] ); then
52836 as_fn_error $? "Specified JVM feature 'jvmci' requires feature 'compiler2' or 'compiler1'" "$LINENO" 5
52837 fi
52838
52839 if [[ " $JVM_FEATURES " =~ " compiler2 " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
52840 as_fn_error $? "Specified JVM feature 'compiler2' requires feature 'all-gcs'" "$LINENO" 5
52841 fi
52842
52843 if [[ " $JVM_FEATURES " =~ " vm-structs " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
52844 as_fn_error $? "Specified JVM feature 'vm-structs' requires feature 'all-gcs'" "$LINENO" 5
52845 fi
52865 if [[ " $JVM_FEATURES " =~ " zero " ]] ; then
52866 as_fn_error $? "To enable zero/zeroshark, you must use --with-jvm-variants=zero/zeroshark" "$LINENO" 5
52867 fi
52868 fi
52869
52870 if ! [[ " $JVM_VARIANTS " =~ " zeroshark " ]] ; then
52871 if [[ " $JVM_FEATURES " =~ " shark " ]] ; then
52872 as_fn_error $? "To enable shark, you must use --with-jvm-variants=zeroshark" "$LINENO" 5
52873 fi
52874 fi
52875
52876 # Only enable jvmci on x86_64, sparcv9 and aarch64.
52877 if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
52878 test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \
52879 test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
52880 JVM_FEATURES_jvmci="jvmci"
52881 else
52882 JVM_FEATURES_jvmci=""
52883 fi
52884
52885 # All variants but minimal (and custom) get these features
52886 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds"
52887
52888 # Enable features depending on variant.
52889 JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
52890 JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
52891 JVM_FEATURES_core="$NON_MINIMAL_FEATURES $JVM_FEATURES"
52892 JVM_FEATURES_minimal="compiler1 minimal $JVM_FEATURES"
52893 JVM_FEATURES_zero="zero $NON_MINIMAL_FEATURES $JVM_FEATURES"
52894 JVM_FEATURES_zeroshark="zero shark $NON_MINIMAL_FEATURES $JVM_FEATURES"
52895 JVM_FEATURES_custom="$JVM_FEATURES"
52896
52897
52898
52899
52900
52901
52902
52903
52904
52905 # Used for verification of Makefiles by check-jvm-feature
52906
52907
52908 # We don't support --with-jvm-interpreter anymore, use zero instead.
52909
52910
52911 # Check whether --with-jvm-interpreter was given.
52912 if test "${with_jvm_interpreter+set}" = set; then :
|
732 OPENJDK_BUILD_CXXFLAGS_JDKLIB
733 OPENJDK_BUILD_CFLAGS_JDKEXE
734 OPENJDK_BUILD_CFLAGS_JDKLIB
735 OPENJDK_BUILD_CXXSTD_CXXFLAG
736 JVM_LIBS
737 JVM_ASFLAGS
738 JVM_LDFLAGS
739 JVM_CFLAGS
740 LDFLAGS_HASH_STYLE
741 LDFLAGS_CXX_JDK
742 JDKEXE_LIBS
743 JDKLIB_LIBS
744 LDFLAGS_JDKEXE
745 LDFLAGS_JDKLIB
746 CXXFLAGS_JDKEXE
747 CXXFLAGS_JDKLIB
748 CFLAGS_JDKEXE
749 CFLAGS_JDKLIB
750 MACOSX_VERSION_MIN
751 CXXSTD_CXXFLAG
752 JDK_ARCH_ABI_PROP_NAME
753 CXX_O_FLAG_SIZE
754 CXX_O_FLAG_NONE
755 CXX_O_FLAG_DEBUG
756 CXX_O_FLAG_NORM
757 CXX_O_FLAG_HI
758 CXX_O_FLAG_HIGHEST
759 CXX_O_FLAG_HIGHEST_JVM
760 C_O_FLAG_SIZE
761 C_O_FLAG_NONE
762 C_O_FLAG_DEBUG
763 C_O_FLAG_NORM
764 C_O_FLAG_HI
765 C_O_FLAG_HIGHEST
766 C_O_FLAG_HIGHEST_JVM
767 JVM_CFLAGS_SYMBOLS
768 CXXFLAGS_DEBUG_SYMBOLS
769 CFLAGS_DEBUG_SYMBOLS
770 CXX_FLAG_DEPS
771 C_FLAG_DEPS
772 SHARED_LIBRARY_FLAGS
1123 prefix
1124 exec_prefix
1125 PACKAGE_URL
1126 PACKAGE_BUGREPORT
1127 PACKAGE_STRING
1128 PACKAGE_VERSION
1129 PACKAGE_TARNAME
1130 PACKAGE_NAME
1131 PATH_SEPARATOR
1132 SHELL'
1133 ac_subst_files=''
1134 ac_user_opts='
1135 enable_option_checking
1136 with_target_bits
1137 enable_openjdk_only
1138 with_custom_make_dir
1139 with_jdk_variant
1140 enable_debug
1141 with_debug_level
1142 with_jvm_variants
1143 with_cpu_port
1144 with_devkit
1145 with_sys_root
1146 with_sysroot
1147 with_tools_dir
1148 with_toolchain_path
1149 with_extra_path
1150 with_sdk_name
1151 with_conf_name
1152 with_output_sync
1153 with_default_make_target
1154 enable_headless_only
1155 with_cacerts_file
1156 enable_unlimited_crypto
1157 with_copyright_year
1158 enable_keep_packaged_modules
1159 with_milestone
1160 with_update_version
1161 with_user_release_suffix
1162 with_build_number
1163 with_version_string
1173 with_add_source_root
1174 with_override_source_root
1175 with_adds_and_overrides
1176 with_override_langtools
1177 with_override_corba
1178 with_override_jaxp
1179 with_override_jaxws
1180 with_override_hotspot
1181 with_override_nashorn
1182 with_override_jdk
1183 with_import_hotspot
1184 with_import_modules
1185 enable_static_build
1186 with_toolchain_type
1187 with_extra_cflags
1188 with_extra_cxxflags
1189 with_extra_ldflags
1190 with_toolchain_version
1191 with_build_devkit
1192 with_jtreg
1193 with_abi_profile
1194 enable_warnings_as_errors
1195 with_native_debug_symbols
1196 enable_debug_symbols
1197 enable_zip_debug_info
1198 enable_native_coverage
1199 enable_dtrace
1200 with_jvm_features
1201 with_jvm_interpreter
1202 enable_hotspot_gtest
1203 with_stdc__lib
1204 with_msvcr_dll
1205 with_msvcp_dll
1206 with_x
1207 with_cups
1208 with_cups_include
1209 with_freetype
1210 with_freetype_include
1211 with_freetype_lib
1212 with_freetype_src
1213 enable_freetype_bundling
2016 icecc/icecream [disabled]
2017 --disable-precompiled-headers
2018 disable using precompiled headers when compiling C++
2019 [enabled]
2020 --enable-ccache enable using ccache to speed up recompilations
2021 [disabled]
2022
2023 Optional Packages:
2024 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
2025 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2026 --with-target-bits build 32-bit or 64-bit binaries (for platforms that
2027 support it), e.g. --with-target-bits=32 [guessed]
2028 --with-custom-make-dir Deprecated. Option is kept for backwards
2029 compatibility and is ignored
2030 --with-jdk-variant JDK variant to build (normal) [normal]
2031 --with-debug-level set the debug level (release, fastdebug, slowdebug,
2032 optimized) [release]
2033 --with-jvm-variants JVM variants (separated by commas) to build
2034 (server,client,minimal,core,zero,zeroshark,custom)
2035 [server]
2036 --with-cpu-port specify sources to use for Hotspot 64-bit ARM port
2037 (arm64,aarch64) [aarch64]
2038 --with-devkit use this devkit for compilers, tools and resources
2039 --with-sys-root alias for --with-sysroot for backwards compatability
2040 --with-sysroot use this directory as sysroot
2041 --with-tools-dir alias for --with-toolchain-path for backwards
2042 compatibility
2043 --with-toolchain-path prepend these directories when searching for
2044 toolchain binaries (compilers etc)
2045 --with-extra-path prepend these directories to the default path
2046 --with-sdk-name use the platform SDK of the given name. [macosx]
2047 --with-conf-name use this as the name of the configuration [generated
2048 from important configuration options]
2049 --with-output-sync set make output sync type if supported by make.
2050 [recurse]
2051 --with-default-make-target
2052 set the default make target [exploded-image]
2053 --with-cacerts-file specify alternative cacerts file
2054 --with-copyright-year Set copyright year value for build [current year]
2055 --with-milestone Deprecated. Option is kept for backwards
2056 compatibility and is ignored
2057 --with-update-version Deprecated. Option is kept for backwards
2100 compatibility and is ignored
2101 --with-override-nashorn Deprecated. Option is kept for backwards
2102 compatibility and is ignored
2103 --with-override-jdk Deprecated. Option is kept for backwards
2104 compatibility and is ignored
2105 --with-import_hotspot Deprecated. Option is kept for backwards
2106 compatibility and is ignored
2107 --with-import-modules import a set of prebuilt modules either as a zip
2108 file or an exploded directory
2109 --with-toolchain-type the toolchain type (or family) to use, use '--help'
2110 to show possible values [platform dependent]
2111 --with-extra-cflags extra flags to be used when compiling jdk c-files
2112 --with-extra-cxxflags extra flags to be used when compiling jdk c++-files
2113 --with-extra-ldflags extra flags to be used when linking jdk
2114 --with-toolchain-version
2115 the version of the toolchain to look for, use
2116 '--help' to show possible values [platform
2117 dependent]
2118 --with-build-devkit Devkit to use for the build platform toolchain
2119 --with-jtreg Regression Test Harness [probed]
2120 --with-abi-profile specify ABI profile for ARM builds
2121 (arm-vfp-sflt,arm-vfp-hflt,arm-sflt,
2122 armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64)
2123 [toolchain dependent]
2124 --with-native-debug-symbols
2125 set the native debug symbol configuration (none,
2126 internal, external, zipped) [varying]
2127 --with-jvm-features additional JVM features to enable (separated by
2128 comma), use '--help' to show possible values [none]
2129 --with-jvm-interpreter Deprecated. Option is kept for backwards
2130 compatibility and is ignored
2131 --with-stdc++lib=<static>,<dynamic>,<default>
2132 force linking of the C++ runtime on Linux to either
2133 static or dynamic, default is static with dynamic as
2134 fallback
2135 --with-msvcr-dll path to microsoft C runtime dll (msvcr*.dll)
2136 (Windows only) [probed]
2137 --with-msvcp-dll path to microsoft C++ runtime dll (msvcp*.dll)
2138 (Windows only) [probed]
2139 --with-x use the X Window System
2140 --with-cups specify prefix directory for the cups package
2141 (expecting the headers under PATH/include)
2142 --with-cups-include specify directory for the cups include files
2143 --with-freetype specify prefix directory for the freetype package
3988 # under the terms of the GNU General Public License version 2 only, as
3989 # published by the Free Software Foundation. Oracle designates this
3990 # particular file as subject to the "Classpath" exception as provided
3991 # by Oracle in the LICENSE file that accompanied this code.
3992 #
3993 # This code is distributed in the hope that it will be useful, but WITHOUT
3994 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3995 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3996 # version 2 for more details (a copy is included in the LICENSE file that
3997 # accompanied this code).
3998 #
3999 # You should have received a copy of the GNU General Public License version
4000 # 2 along with this work; if not, write to the Free Software Foundation,
4001 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4002 #
4003 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4004 # or visit www.oracle.com if you need additional information or have any
4005 # questions.
4006 #
4007
4008 ################################################################################
4009 #
4010 # Setup ABI profile (for arm)
4011 #
4012
4013
4014 # Reset the global CFLAGS/LDFLAGS variables and initialize them with the
4015 # corresponding configure arguments instead
4016
4017
4018 # Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
4019 # that configure can use them while detecting compilers.
4020 # TOOLCHAIN_TYPE is available here.
4021 # Param 1 - Optional prefix to all variables. (e.g BUILD_)
4022
4023
4024
4025
4026
4027
4028 # Documentation on common flags used for solstudio in HIGHEST.
4029 #
4030 # WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
4031 # done with care, there are some assumptions below that need to
4032 # be understood about the use of pointers, and IEEE behavior.
4033 #
4250 # particular file as subject to the "Classpath" exception as provided
4251 # by Oracle in the LICENSE file that accompanied this code.
4252 #
4253 # This code is distributed in the hope that it will be useful, but WITHOUT
4254 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4255 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4256 # version 2 for more details (a copy is included in the LICENSE file that
4257 # accompanied this code).
4258 #
4259 # You should have received a copy of the GNU General Public License version
4260 # 2 along with this work; if not, write to the Free Software Foundation,
4261 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4262 #
4263 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4264 # or visit www.oracle.com if you need additional information or have any
4265 # questions.
4266 #
4267
4268 # All valid JVM features, regardless of platform
4269 VALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \
4270 fprof vm-structs jni-check services management all-gcs nmt cds \
4271 static-build link-time-opt"
4272
4273 # All valid JVM variants
4274 VALID_JVM_VARIANTS="server client minimal core zero zeroshark custom"
4275
4276 ###############################################################################
4277 # Check if the specified JVM variant should be built. To be used in shell if
4278 # constructs, like this:
4279 # if HOTSPOT_CHECK_JVM_VARIANT(server); then
4280 #
4281 # Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants.
4282
4283 # Definition kept in one line to allow inlining in if statements.
4284 # Additional [] needed to keep m4 from mangling shell constructs.
4285
4286
4287 ###############################################################################
4288 # Check if the specified JVM features are explicitly enabled. To be used in
4289 # shell if constructs, like this:
4290 # if HOTSPOT_CHECK_JVM_FEATURE(jvmti); then
4291 #
4306 # custom: baseline JVM with no default features
4307 #
4308
4309
4310 ###############################################################################
4311 # Check if dtrace should be enabled and has all prerequisites present.
4312 #
4313
4314
4315 ###############################################################################
4316 # Set up all JVM features for each JVM variant.
4317 #
4318
4319
4320 ###############################################################################
4321 # Validate JVM features once all setup is complete, including custom setup.
4322 #
4323
4324
4325 ################################################################################
4326 #
4327 # Specify which sources will be used to build the 64-bit ARM port
4328 #
4329 # --with-cpu-port=arm64 will use hotspot/src/cpu/arm
4330 # --with-cpu-port=aarch64 will use hotspot/src/cpu/aarch64
4331 #
4332
4333
4334
4335 ################################################################################
4336 # Check if gtest should be built
4337 #
4338
4339
4340 #
4341 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
4342 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4343 #
4344 # This code is free software; you can redistribute it and/or modify it
4345 # under the terms of the GNU General Public License version 2 only, as
4346 # published by the Free Software Foundation. Oracle designates this
4347 # particular file as subject to the "Classpath" exception as provided
4348 # by Oracle in the LICENSE file that accompanied this code.
4349 #
4350 # This code is distributed in the hope that it will be useful, but WITHOUT
4351 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4352 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4353 # version 2 for more details (a copy is included in the LICENSE file that
4354 # accompanied this code).
4355 #
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114 # This line needs to be here, verbatim, after all includes and the dummy hook
5115 # definitions. It is replaced with custom functionality when building
5116 # custom sources.
5117 #CUSTOM_AUTOCONF_INCLUDE
5118
5119 # Do not change or remove the following line, it is needed for consistency checks:
5120 DATE_WHEN_GENERATED=1480631660
5121
5122 ###############################################################################
5123 #
5124 # Initialization / Boot-strapping
5125 #
5126 # The bootstrapping process needs to solve the "chicken or the egg" problem,
5127 # thus it jumps back and forth, each time gaining something needed later on.
5128 #
5129 ###############################################################################
5130
5131 # If we are requested to print additional help, do that and then exit.
5132 # This must be the very first call.
5133
5134 if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
5135
5136 # Print available toolchains
5137 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
5138 $PRINTF "Which are valid to use depends on the build platform.\n"
5139 for toolchain in $VALID_TOOLCHAINS_all; do
5140 # Use indirect variable referencing
16717 # with the exception that it can contain additional code which is otherwise
16718 # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
16719 # test new and/or experimental features which are not intended for customer
16720 # shipment. Because these new features need to be tested and benchmarked in
16721 # real world scenarios, we want to build the containing JDK at the 'release'
16722 # debug level.
16723 DEBUG_LEVEL="release"
16724 fi
16725
16726
16727
16728
16729
16730
16731 # Check whether --with-jvm-variants was given.
16732 if test "${with_jvm_variants+set}" = set; then :
16733 withval=$with_jvm_variants;
16734 fi
16735
16736
16737
16738
16739 # Check whether --with-cpu-port was given.
16740 if test "${with_cpu_port+set}" = set; then :
16741 withval=$with_cpu_port;
16742 fi
16743
16744
16745 if test "x$with_cpu_port" != x; then
16746 if test "x$OPENJDK_TARGET_CPU" != xaarch64; then
16747 as_fn_error $? "--with-cpu-port only available on aarch64" "$LINENO" 5
16748 fi
16749
16750 if test "x$with_cpu_port" != x; then
16751 if test "x$with_cpu_port" != xarm64 && \
16752 test "x$with_cpu_port" != xaarch64; then
16753 as_fn_error $? "--with-cpu-port must specify arm64 or aarch64" "$LINENO" 5
16754 fi
16755 fi
16756 fi
16757
16758
16759 if test "x$with_jvm_variants" = x; then
16760 with_jvm_variants="server"
16761 fi
16762 JVM_VARIANTS_OPT="$with_jvm_variants"
16763
16764 # Has the user listed more than one variant?
16765 # Additional [] needed to keep m4 from mangling shell constructs.
16766 if [[ "$JVM_VARIANTS_OPT" =~ "," ]] ; then
16767 BUILDING_MULTIPLE_JVM_VARIANTS=true
16768 else
16769 BUILDING_MULTIPLE_JVM_VARIANTS=false
16770 fi
16771 # Replace the commas with AND for use in the build directory name.
16772 JVM_VARIANTS_WITH_AND=`$ECHO "$JVM_VARIANTS_OPT" | $SED -e 's/,/AND/g'`
16773
16774 { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM to build" >&5
16775 $as_echo_n "checking which variants of the JVM to build... " >&6; }
16776 # JVM_VARIANTS is a space-separated list.
16777 # Also use minimal, not minimal1 (which is kept for backwards compatibility).
16778 JVM_VARIANTS=`$ECHO $JVM_VARIANTS_OPT | $SED -e 's/,/ /g' -e 's/minimal1/minimal/'`
49124 C_FLAG_REORDER=''
49125 CXX_FLAG_REORDER=''
49126
49127 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
49128 # Linking is different on MacOSX
49129 PICFLAG=''
49130 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
49131 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
49132 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49133 SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/$1'
49134 SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,$1'
49135
49136 if test "x$STATIC_BUILD" = xfalse; then
49137 JVM_CFLAGS="$JVM_CFLAGS -fPIC"
49138 fi
49139 else
49140 # Default works for linux, might work on other platforms as well.
49141 PICFLAG='-fPIC'
49142 SHARED_LIBRARY_FLAGS='-shared'
49143 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN$1'
49144 SET_SHARED_LIBRARY_NAME='-Wl,-soname=$1'
49145 SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=$1'
49146
49147 # arm specific settings
49148 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xarm"; then
49149 # '-Wl,-z,origin' isn't used on arm.
49150 SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN$1'
49151 else
49152 SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
49153 fi
49154
49155 fi
49156 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49157 PICFLAG="-KPIC"
49158 C_FLAG_REORDER='-xF'
49159 CXX_FLAG_REORDER='-xF'
49160 SHARED_LIBRARY_FLAGS="-G"
49161 SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN$1'
49162 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49163 SET_SHARED_LIBRARY_NAME='-h $1'
49164 SET_SHARED_LIBRARY_MAPFILE='-M$1'
49165 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49166 # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
49167 # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
49168 # will have to patch this single instruction with a call to some out-of-order code which
49169 # does the load from the TOC. This is of course slow. But in that case we also would have
49170 # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
49171 # With 'qpic=large' the compiler will by default generate a two-instruction sequence which
49172 # can be patched directly by the linker and does not require a jump to out-of-order code.
49173 # Another alternative instead of using 'qpic=large -bbigtoc' may be to use '-qminimaltoc'
49174 # instead. This creates a distinct TOC for every compilation unit (and thus requires two
49720 esac
49721
49722
49723
49724
49725
49726
49727
49728
49729
49730
49731
49732
49733
49734
49735
49736
49737
49738
49739
49740
49741 # Check whether --with-abi-profile was given.
49742 if test "${with_abi_profile+set}" = set; then :
49743 withval=$with_abi_profile;
49744 fi
49745
49746
49747 if test "x$with_abi_profile" != x; then
49748 if test "x$OPENJDK_TARGET_CPU" != xarm && \
49749 test "x$OPENJDK_TARGET_CPU" != xaarch64; then
49750 as_fn_error $? "--with-abi-profile only available on arm/aarch64" "$LINENO" 5
49751 fi
49752
49753 OPENJDK_TARGET_ABI_PROFILE=$with_abi_profile
49754 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ABI profle" >&5
49755 $as_echo_n "checking for ABI profle... " >&6; }
49756 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENJDK_TARGET_ABI_PROFILE" >&5
49757 $as_echo "$OPENJDK_TARGET_ABI_PROFILE" >&6; }
49758
49759 if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-sflt; then
49760 ARM_FLOAT_TYPE=vfp-sflt
49761 ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
49762 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-hflt; then
49763 ARM_FLOAT_TYPE=vfp-hflt
49764 ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
49765 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
49766 ARM_FLOAT_TYPE=sflt
49767 ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
49768 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
49769 ARM_FLOAT_TYPE=vfp-sflt
49770 ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
49771 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
49772 ARM_FLOAT_TYPE=vfp-hflt
49773 ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
49774 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm64; then
49775 # No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
49776 ARM_FLOAT_TYPE=
49777 ARM_ARCH_TYPE_FLAGS=
49778 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
49779 # No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
49780 ARM_FLOAT_TYPE=
49781 ARM_ARCH_TYPE_FLAGS=
49782 else
49783 as_fn_error $? "Invalid ABI profile: \"$OPENJDK_TARGET_ABI_PROFILE\"" "$LINENO" 5
49784 fi
49785
49786 if test "x$ARM_FLOAT_TYPE" = xvfp-sflt; then
49787 ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=softfp -mfpu=vfp -DFLOAT_ARCH=-vfp-sflt'
49788 elif test "x$ARM_FLOAT_TYPE" = xvfp-hflt; then
49789 ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=hard -mfpu=vfp -DFLOAT_ARCH=-vfp-hflt'
49790 elif test "x$ARM_FLOAT_TYPE" = xsflt; then
49791 ARM_FLOAT_TYPE_FLAGS='-msoft-float -mfpu=vfp'
49792 fi
49793 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ARM_FLOAT_TYPE floating point flags" >&5
49794 $as_echo_n "checking for $ARM_FLOAT_TYPE floating point flags... " >&6; }
49795 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ARM_FLOAT_TYPE_FLAGS" >&5
49796 $as_echo "$ARM_FLOAT_TYPE_FLAGS" >&6; }
49797
49798 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for arch type flags" >&5
49799 $as_echo_n "checking for arch type flags... " >&6; }
49800 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ARM_ARCH_TYPE_FLAGS" >&5
49801 $as_echo "$ARM_ARCH_TYPE_FLAGS" >&6; }
49802
49803 # Now set JDK_ARCH_ABI_PROP_NAME. This is equivalent to the last part of the
49804 # autoconf target triplet.
49805 JDK_ARCH_ABI_PROP_NAME=`$ECHO $OPENJDK_TARGET_AUTOCONF_NAME | $SED -e 's/.*-\([^-]*\)$/\1/'`
49806 # Sanity check that it is a known ABI.
49807 if test "x$JDK_ARCH_ABI_PROP_NAME" != xgnu && \
49808 test "x$JDK_ARCH_ABI_PROP_NAME" != xgnueabi && \
49809 test "x$JDK_ARCH_ABI_PROP_NAME" != xgnueabihf; then
49810 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unknown autoconf target triplet ABI: \"$JDK_ARCH_ABI_PROP_NAME\"" >&5
49811 $as_echo "$as_me: WARNING: Unknown autoconf target triplet ABI: \"$JDK_ARCH_ABI_PROP_NAME\"" >&2;}
49812 fi
49813 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ABI property name" >&5
49814 $as_echo_n "checking for ABI property name... " >&6; }
49815 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JDK_ARCH_ABI_PROP_NAME" >&5
49816 $as_echo "$JDK_ARCH_ABI_PROP_NAME" >&6; }
49817
49818
49819 # Pass these on to the open part of configure as if they were set using
49820 # --with-extra-c[xx]flags.
49821 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
49822 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
49823 # Get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
49824 # FIXME: This should not really be set using extra_cflags.
49825 if test "x$OPENJDK_TARGET_CPU" = xarm; then
49826 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-psabi"
49827 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -Wno-psabi"
49828 fi
49829 # Also add JDK_ARCH_ABI_PROP_NAME define, but only to CFLAGS.
49830 EXTRA_CFLAGS="$EXTRA_CFLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
49831 # And pass the architecture flags to the linker as well
49832 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
49833 fi
49834
49835 # When building with an abi profile, the name of that profile is appended on the
49836 # bundle platform, which is used in bundle names.
49837 if test "x$OPENJDK_TARGET_ABI_PROFILE" != x; then
49838 OPENJDK_TARGET_BUNDLE_PLATFORM="$OPENJDK_TARGET_OS_BUNDLE-$OPENJDK_TARGET_ABI_PROFILE"
49839 fi
49840
49841
49842 # Special extras...
49843 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49844 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
49845 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49846 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49847 fi
49848 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49849 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49850 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49851 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49852 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49853 elif test "x$TOOLCHAIN_TYPE" = xgcc; then
49854 CXXSTD_CXXFLAG="-std=gnu++98"
49855
49856
49857
49858
49859
49860
49861
49973
49974 # Setup compiler/platform specific flags into
49975 # CFLAGS_JDK - C Compiler flags
49976 # CXXFLAGS_JDK - C++ Compiler flags
49977 # COMMON_CCXXFLAGS_JDK - common to C and C++
49978 if test "x$TOOLCHAIN_TYPE" = xgcc; then
49979 JVM_CFLAGS="$JVM_CFLAGS -D_GNU_SOURCE"
49980 JVM_CFLAGS="$JVM_CFLAGS -D_REENTRANT"
49981 JVM_CFLAGS="$JVM_CFLAGS -fcheck-new"
49982 if test "x$OPENJDK_TARGET_CPU" = xx86; then
49983 # Force compatibility with i586 on 32 bit intel platforms.
49984 COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586"
49985 JVM_CFLAGS="$JVM_CFLAGS -march=i586"
49986 fi
49987 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
49988 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
49989 case $OPENJDK_TARGET_CPU_ARCH in
49990 arm )
49991 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49992 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49993 COMMON_CCXXFLAGS_JDK="${COMMON_CCXXFLAGS_JDK} -fsigned-char"
49994 ;;
49995 ppc )
49996 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49997 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49998 ;;
49999 s390 )
50000 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
50001 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
50002 ;;
50003 * )
50004 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
50005 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
50006 ;;
50007 esac
50008
50009
50010
50011
50012
50013
50797
50798 # Setup compiler/platform specific flags into
50799 # OPENJDK_BUILD_CFLAGS_JDK - C Compiler flags
50800 # OPENJDK_BUILD_CXXFLAGS_JDK - C++ Compiler flags
50801 # OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK - common to C and C++
50802 if test "x$TOOLCHAIN_TYPE" = xgcc; then
50803 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_GNU_SOURCE"
50804 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_REENTRANT"
50805 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -fcheck-new"
50806 if test "x$OPENJDK_BUILD_CPU" = xx86; then
50807 # Force compatibility with i586 on 32 bit intel platforms.
50808 OPENJDK_BUILD_COMMON_CCXXFLAGS="${OPENJDK_BUILD_COMMON_CCXXFLAGS} -march=i586"
50809 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -march=i586"
50810 fi
50811 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS $OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
50812 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
50813 case $OPENJDK_BUILD_CPU_ARCH in
50814 arm )
50815 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50816 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50817 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="${OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK} -fsigned-char"
50818 ;;
50819 ppc )
50820 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50821 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50822 ;;
50823 s390 )
50824 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
50825 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50826 ;;
50827 * )
50828 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
50829 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50830 ;;
50831 esac
50832
50833
50834
50835
50836
50837
52966 fi
52967
52968
52969
52970 # The user can in some cases supply additional jvm features. For the custom
52971 # variant, this defines the entire variant.
52972
52973 # Check whether --with-jvm-features was given.
52974 if test "${with_jvm_features+set}" = set; then :
52975 withval=$with_jvm_features;
52976 fi
52977
52978 if test "x$with_jvm_features" != x; then
52979 { $as_echo "$as_me:${as_lineno-$LINENO}: checking additional JVM features" >&5
52980 $as_echo_n "checking additional JVM features... " >&6; }
52981 JVM_FEATURES=`$ECHO $with_jvm_features | $SED -e 's/,/ /g'`
52982 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JVM_FEATURES" >&5
52983 $as_echo "$JVM_FEATURES" >&6; }
52984 fi
52985
52986 # Override hotspot cpu definitions for ARM platforms
52987 if test "x$OPENJDK_TARGET_CPU" = xarm; then
52988 HOTSPOT_TARGET_CPU=arm_32
52989 HOTSPOT_TARGET_CPU_DEFINE="ARM32"
52990 JVM_LDFLAGS="$JVM_LDFLAGS -fsigned-char"
52991 JVM_CFLAGS="$JVM_CFLAGS -DARM -fsigned-char"
52992 elif test "x$OPENJDK_TARGET_CPU" = xaarch64 && test "x$with_cpu_port" = xarm64; then
52993 HOTSPOT_TARGET_CPU=arm_64
52994 HOTSPOT_TARGET_CPU_ARCH=arm
52995 JVM_LDFLAGS="$JVM_LDFLAGS -fsigned-char"
52996 JVM_CFLAGS="$JVM_CFLAGS -DARM -fsigned-char"
52997 fi
52998
52999 # Verify that dependencies are met for explicitly set features.
53000 if [[ " $JVM_FEATURES " =~ " jvmti " ]] && ! [[ " $JVM_FEATURES " =~ " services " ]] ; then
53001 as_fn_error $? "Specified JVM feature 'jvmti' requires feature 'services'" "$LINENO" 5
53002 fi
53003
53004 if [[ " $JVM_FEATURES " =~ " management " ]] && ! [[ " $JVM_FEATURES " =~ " nmt " ]] ; then
53005 as_fn_error $? "Specified JVM feature 'management' requires feature 'nmt'" "$LINENO" 5
53006 fi
53007
53008 if [[ " $JVM_FEATURES " =~ " jvmci " ]] && ! ( [[ " $JVM_FEATURES " =~ " compiler1 " ]] || [[ " $JVM_FEATURES " =~ " compiler2 " ]] ); then
53009 as_fn_error $? "Specified JVM feature 'jvmci' requires feature 'compiler2' or 'compiler1'" "$LINENO" 5
53010 fi
53011
53012 if [[ " $JVM_FEATURES " =~ " compiler2 " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
53013 as_fn_error $? "Specified JVM feature 'compiler2' requires feature 'all-gcs'" "$LINENO" 5
53014 fi
53015
53016 if [[ " $JVM_FEATURES " =~ " vm-structs " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
53017 as_fn_error $? "Specified JVM feature 'vm-structs' requires feature 'all-gcs'" "$LINENO" 5
53018 fi
53038 if [[ " $JVM_FEATURES " =~ " zero " ]] ; then
53039 as_fn_error $? "To enable zero/zeroshark, you must use --with-jvm-variants=zero/zeroshark" "$LINENO" 5
53040 fi
53041 fi
53042
53043 if ! [[ " $JVM_VARIANTS " =~ " zeroshark " ]] ; then
53044 if [[ " $JVM_FEATURES " =~ " shark " ]] ; then
53045 as_fn_error $? "To enable shark, you must use --with-jvm-variants=zeroshark" "$LINENO" 5
53046 fi
53047 fi
53048
53049 # Only enable jvmci on x86_64, sparcv9 and aarch64.
53050 if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
53051 test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \
53052 test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
53053 JVM_FEATURES_jvmci="jvmci"
53054 else
53055 JVM_FEATURES_jvmci=""
53056 fi
53057
53058 if test "x$OPENJDK_TARGET_CPU" = xarm ; then
53059 # Default to use link time optimizations on minimal on arm
53060 JVM_FEATURES_link_time_opt="link-time-opt"
53061 else
53062 JVM_FEATURES_link_time_opt=""
53063 fi
53064
53065 # All variants but minimal (and custom) get these features
53066 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds"
53067
53068 # Enable features depending on variant.
53069 JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
53070 JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
53071 JVM_FEATURES_core="$NON_MINIMAL_FEATURES $JVM_FEATURES"
53072 JVM_FEATURES_minimal="compiler1 minimal $JVM_FEATURES $JVM_FEATURES_link_time_opt"
53073 JVM_FEATURES_zero="zero $NON_MINIMAL_FEATURES $JVM_FEATURES"
53074 JVM_FEATURES_zeroshark="zero shark $NON_MINIMAL_FEATURES $JVM_FEATURES"
53075 JVM_FEATURES_custom="$JVM_FEATURES"
53076
53077
53078
53079
53080
53081
53082
53083
53084
53085 # Used for verification of Makefiles by check-jvm-feature
53086
53087
53088 # We don't support --with-jvm-interpreter anymore, use zero instead.
53089
53090
53091 # Check whether --with-jvm-interpreter was given.
53092 if test "${with_jvm_interpreter+set}" = set; then :
|