736 OPENJDK_BUILD_CXXFLAGS_JDKLIB
737 OPENJDK_BUILD_CFLAGS_JDKEXE
738 OPENJDK_BUILD_CFLAGS_JDKLIB
739 OPENJDK_BUILD_CXXSTD_CXXFLAG
740 JVM_LIBS
741 JVM_ASFLAGS
742 JVM_LDFLAGS
743 JVM_CFLAGS
744 LDFLAGS_HASH_STYLE
745 LDFLAGS_CXX_JDK
746 JDKEXE_LIBS
747 JDKLIB_LIBS
748 LDFLAGS_JDKEXE
749 LDFLAGS_JDKLIB
750 CXXFLAGS_JDKEXE
751 CXXFLAGS_JDKLIB
752 CFLAGS_JDKEXE
753 CFLAGS_JDKLIB
754 MACOSX_VERSION_MIN
755 CXXSTD_CXXFLAG
756 CXX_O_FLAG_SIZE
757 CXX_O_FLAG_NONE
758 CXX_O_FLAG_DEBUG
759 CXX_O_FLAG_NORM
760 CXX_O_FLAG_HI
761 CXX_O_FLAG_HIGHEST
762 CXX_O_FLAG_HIGHEST_JVM
763 C_O_FLAG_SIZE
764 C_O_FLAG_NONE
765 C_O_FLAG_DEBUG
766 C_O_FLAG_NORM
767 C_O_FLAG_HI
768 C_O_FLAG_HIGHEST
769 C_O_FLAG_HIGHEST_JVM
770 JVM_CFLAGS_SYMBOLS
771 CXXFLAGS_DEBUG_SYMBOLS
772 CFLAGS_DEBUG_SYMBOLS
773 CXX_FLAG_DEPS
774 C_FLAG_DEPS
775 SHARED_LIBRARY_FLAGS
1117 prefix
1118 exec_prefix
1119 PACKAGE_URL
1120 PACKAGE_BUGREPORT
1121 PACKAGE_STRING
1122 PACKAGE_VERSION
1123 PACKAGE_TARNAME
1124 PACKAGE_NAME
1125 PATH_SEPARATOR
1126 SHELL'
1127 ac_subst_files=''
1128 ac_user_opts='
1129 enable_option_checking
1130 with_target_bits
1131 enable_openjdk_only
1132 with_custom_make_dir
1133 with_jdk_variant
1134 enable_debug
1135 with_debug_level
1136 with_jvm_variants
1137 with_devkit
1138 with_sys_root
1139 with_sysroot
1140 with_tools_dir
1141 with_toolchain_path
1142 with_extra_path
1143 with_sdk_name
1144 with_conf_name
1145 with_output_sync
1146 with_default_make_target
1147 enable_headless_only
1148 with_cacerts_file
1149 enable_unlimited_crypto
1150 with_copyright_year
1151 enable_keep_packaged_modules
1152 with_milestone
1153 with_update_version
1154 with_user_release_suffix
1155 with_build_number
1156 with_version_string
1166 with_add_source_root
1167 with_override_source_root
1168 with_adds_and_overrides
1169 with_override_langtools
1170 with_override_corba
1171 with_override_jaxp
1172 with_override_jaxws
1173 with_override_hotspot
1174 with_override_nashorn
1175 with_override_jdk
1176 with_import_hotspot
1177 with_import_modules
1178 enable_static_build
1179 with_toolchain_type
1180 with_extra_cflags
1181 with_extra_cxxflags
1182 with_extra_ldflags
1183 with_toolchain_version
1184 with_build_devkit
1185 with_jtreg
1186 enable_warnings_as_errors
1187 with_native_debug_symbols
1188 enable_debug_symbols
1189 enable_zip_debug_info
1190 enable_native_coverage
1191 enable_dtrace
1192 enable_aot
1193 enable_hotspot_gtest
1194 with_stdc__lib
1195 with_msvcr_dll
1196 with_msvcp_dll
1197 with_x
1198 with_cups
1199 with_cups_include
1200 with_freetype
1201 with_freetype_include
1202 with_freetype_lib
1203 with_freetype_src
1204 enable_freetype_bundling
1205 with_alsa
2022 icecc/icecream [disabled]
2023 --disable-precompiled-headers
2024 disable using precompiled headers when compiling C++
2025 [enabled]
2026 --enable-ccache enable using ccache to speed up recompilations
2027 [disabled]
2028
2029 Optional Packages:
2030 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
2031 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2032 --with-target-bits build 32-bit or 64-bit binaries (for platforms that
2033 support it), e.g. --with-target-bits=32 [guessed]
2034 --with-custom-make-dir Deprecated. Option is kept for backwards
2035 compatibility and is ignored
2036 --with-jdk-variant JDK variant to build (normal) [normal]
2037 --with-debug-level set the debug level (release, fastdebug, slowdebug,
2038 optimized) [release]
2039 --with-jvm-variants JVM variants (separated by commas) to build
2040 (server,client,minimal,core,zero,zeroshark,custom)
2041 [server]
2042 --with-devkit use this devkit for compilers, tools and resources
2043 --with-sys-root alias for --with-sysroot for backwards compatability
2044 --with-sysroot use this directory as sysroot
2045 --with-tools-dir alias for --with-toolchain-path for backwards
2046 compatibility
2047 --with-toolchain-path prepend these directories when searching for
2048 toolchain binaries (compilers etc)
2049 --with-extra-path prepend these directories to the default path
2050 --with-sdk-name use the platform SDK of the given name. [macosx]
2051 --with-conf-name use this as the name of the configuration [generated
2052 from important configuration options]
2053 --with-output-sync set make output sync type if supported by make.
2054 [recurse]
2055 --with-default-make-target
2056 set the default make target [exploded-image]
2057 --with-cacerts-file specify alternative cacerts file
2058 --with-copyright-year Set copyright year value for build [current year]
2059 --with-milestone Deprecated. Option is kept for backwards
2060 compatibility and is ignored
2061 --with-update-version Deprecated. Option is kept for backwards
2104 compatibility and is ignored
2105 --with-override-nashorn Deprecated. Option is kept for backwards
2106 compatibility and is ignored
2107 --with-override-jdk Deprecated. Option is kept for backwards
2108 compatibility and is ignored
2109 --with-import_hotspot Deprecated. Option is kept for backwards
2110 compatibility and is ignored
2111 --with-import-modules import a set of prebuilt modules either as a zip
2112 file or an exploded directory
2113 --with-toolchain-type the toolchain type (or family) to use, use '--help'
2114 to show possible values [platform dependent]
2115 --with-extra-cflags extra flags to be used when compiling jdk c-files
2116 --with-extra-cxxflags extra flags to be used when compiling jdk c++-files
2117 --with-extra-ldflags extra flags to be used when linking jdk
2118 --with-toolchain-version
2119 the version of the toolchain to look for, use
2120 '--help' to show possible values [platform
2121 dependent]
2122 --with-build-devkit Devkit to use for the build platform toolchain
2123 --with-jtreg Regression Test Harness [probed]
2124 --with-native-debug-symbols
2125 set the native debug symbol configuration (none,
2126 internal, external, zipped) [varying]
2127 --with-stdc++lib=<static>,<dynamic>,<default>
2128 force linking of the C++ runtime on Linux to either
2129 static or dynamic, default is static with dynamic as
2130 fallback
2131 --with-msvcr-dll path to microsoft C runtime dll (msvcr*.dll)
2132 (Windows only) [probed]
2133 --with-msvcp-dll path to microsoft C++ runtime dll (msvcp*.dll)
2134 (Windows only) [probed]
2135 --with-x use the X Window System
2136 --with-cups specify prefix directory for the cups package
2137 (expecting the headers under PATH/include)
2138 --with-cups-include specify directory for the cups include files
2139 --with-freetype specify prefix directory for the freetype package
2140 (expecting the libraries under PATH/lib and the
2141 headers under PATH/include)
2142 --with-freetype-include specify directory for the freetype include files
2143 --with-freetype-lib specify directory for the freetype library
3995 # under the terms of the GNU General Public License version 2 only, as
3996 # published by the Free Software Foundation. Oracle designates this
3997 # particular file as subject to the "Classpath" exception as provided
3998 # by Oracle in the LICENSE file that accompanied this code.
3999 #
4000 # This code is distributed in the hope that it will be useful, but WITHOUT
4001 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4002 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4003 # version 2 for more details (a copy is included in the LICENSE file that
4004 # accompanied this code).
4005 #
4006 # You should have received a copy of the GNU General Public License version
4007 # 2 along with this work; if not, write to the Free Software Foundation,
4008 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4009 #
4010 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4011 # or visit www.oracle.com if you need additional information or have any
4012 # questions.
4013 #
4014
4015 # Reset the global CFLAGS/LDFLAGS variables and initialize them with the
4016 # corresponding configure arguments instead
4017
4018
4019 # Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
4020 # that configure can use them while detecting compilers.
4021 # TOOLCHAIN_TYPE is available here.
4022 # Param 1 - Optional prefix to all variables. (e.g BUILD_)
4023
4024
4025
4026
4027
4028
4029 # Documentation on common flags used for solstudio in HIGHEST.
4030 #
4031 # WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
4032 # done with care, there are some assumptions below that need to
4033 # be understood about the use of pointers, and IEEE behavior.
4034 #
4255 # particular file as subject to the "Classpath" exception as provided
4256 # by Oracle in the LICENSE file that accompanied this code.
4257 #
4258 # This code is distributed in the hope that it will be useful, but WITHOUT
4259 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4260 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4261 # version 2 for more details (a copy is included in the LICENSE file that
4262 # accompanied this code).
4263 #
4264 # You should have received a copy of the GNU General Public License version
4265 # 2 along with this work; if not, write to the Free Software Foundation,
4266 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4267 #
4268 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4269 # or visit www.oracle.com if you need additional information or have any
4270 # questions.
4271 #
4272
4273 # All valid JVM features, regardless of platform
4274 VALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \
4275 graal fprof vm-structs jni-check services management all-gcs nmt cds static-build aot"
4276
4277 # All valid JVM variants
4278 VALID_JVM_VARIANTS="server client minimal core zero zeroshark custom"
4279
4280 ###############################################################################
4281 # Check if the specified JVM variant should be built. To be used in shell if
4282 # constructs, like this:
4283 # if HOTSPOT_CHECK_JVM_VARIANT(server); then
4284 #
4285 # Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants.
4286
4287 # Definition kept in one line to allow inlining in if statements.
4288 # Additional [] needed to keep m4 from mangling shell constructs.
4289
4290
4291 ###############################################################################
4292 # Check if the specified JVM features are explicitly enabled. To be used in
4293 # shell if constructs, like this:
4294 # if HOTSPOT_CHECK_JVM_FEATURE(jvmti); then
4295 #
4315 # Check if dtrace should be enabled and has all prerequisites present.
4316 #
4317
4318
4319 ################################################################################
4320 # Check if AOT should be enabled
4321 #
4322
4323
4324 ###############################################################################
4325 # Set up all JVM features for each JVM variant.
4326 #
4327
4328
4329 ###############################################################################
4330 # Validate JVM features once all setup is complete, including custom setup.
4331 #
4332
4333
4334 ################################################################################
4335 # Check if gtest should be built
4336 #
4337
4338
4339 #
4340 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
4341 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4342 #
4343 # This code is free software; you can redistribute it and/or modify it
4344 # under the terms of the GNU General Public License version 2 only, as
4345 # published by the Free Software Foundation. Oracle designates this
4346 # particular file as subject to the "Classpath" exception as provided
4347 # by Oracle in the LICENSE file that accompanied this code.
4348 #
4349 # This code is distributed in the hope that it will be useful, but WITHOUT
4350 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4351 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4352 # version 2 for more details (a copy is included in the LICENSE file that
4353 # accompanied this code).
4354 #
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139 # This line needs to be here, verbatim, after all includes and the dummy hook
5140 # definitions. It is replaced with custom functionality when building
5141 # custom sources.
5142 #CUSTOM_AUTOCONF_INCLUDE
5143
5144 # Do not change or remove the following line, it is needed for consistency checks:
5145 DATE_WHEN_GENERATED=1481496095
5146
5147 ###############################################################################
5148 #
5149 # Initialization / Boot-strapping
5150 #
5151 # The bootstrapping process needs to solve the "chicken or the egg" problem,
5152 # thus it jumps back and forth, each time gaining something needed later on.
5153 #
5154 ###############################################################################
5155
5156 # If we are requested to print additional help, do that and then exit.
5157 # This must be the very first call.
5158
5159 if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
5160
5161 # Print available toolchains
5162 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
5163 $PRINTF "Which are valid to use depends on the build platform.\n"
5164 for toolchain in $VALID_TOOLCHAINS_all; do
5165 # Use indirect variable referencing
16704 # with the exception that it can contain additional code which is otherwise
16705 # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
16706 # test new and/or experimental features which are not intended for customer
16707 # shipment. Because these new features need to be tested and benchmarked in
16708 # real world scenarios, we want to build the containing JDK at the 'release'
16709 # debug level.
16710 DEBUG_LEVEL="release"
16711 fi
16712
16713
16714
16715
16716
16717
16718 # Check whether --with-jvm-variants was given.
16719 if test "${with_jvm_variants+set}" = set; then :
16720 withval=$with_jvm_variants;
16721 fi
16722
16723
16724 if test "x$with_jvm_variants" = x; then
16725 with_jvm_variants="server"
16726 fi
16727 JVM_VARIANTS_OPT="$with_jvm_variants"
16728
16729 # Has the user listed more than one variant?
16730 # Additional [] needed to keep m4 from mangling shell constructs.
16731 if [[ "$JVM_VARIANTS_OPT" =~ "," ]] ; then
16732 BUILDING_MULTIPLE_JVM_VARIANTS=true
16733 else
16734 BUILDING_MULTIPLE_JVM_VARIANTS=false
16735 fi
16736 # Replace the commas with AND for use in the build directory name.
16737 JVM_VARIANTS_WITH_AND=`$ECHO "$JVM_VARIANTS_OPT" | $SED -e 's/,/AND/g'`
16738
16739 { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM to build" >&5
16740 $as_echo_n "checking which variants of the JVM to build... " >&6; }
16741 # JVM_VARIANTS is a space-separated list.
16742 # Also use minimal, not minimal1 (which is kept for backwards compatibility).
16743 JVM_VARIANTS=`$ECHO $JVM_VARIANTS_OPT | $SED -e 's/,/ /g' -e 's/minimal1/minimal/'`
49042 C_FLAG_REORDER=''
49043 CXX_FLAG_REORDER=''
49044
49045 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
49046 # Linking is different on MacOSX
49047 PICFLAG=''
49048 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
49049 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
49050 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49051 SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/$1'
49052 SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,$1'
49053
49054 if test "x$STATIC_BUILD" = xfalse; then
49055 JVM_CFLAGS="$JVM_CFLAGS -fPIC"
49056 fi
49057 else
49058 # Default works for linux, might work on other platforms as well.
49059 PICFLAG='-fPIC'
49060 SHARED_LIBRARY_FLAGS='-shared'
49061 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN$1'
49062 SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
49063 SET_SHARED_LIBRARY_NAME='-Wl,-soname=$1'
49064 SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=$1'
49065 fi
49066 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49067 if test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
49068 PICFLAG="-xcode=pic32"
49069 else
49070 PICFLAG="-KPIC"
49071 fi
49072 C_FLAG_REORDER='-xF'
49073 CXX_FLAG_REORDER='-xF'
49074 SHARED_LIBRARY_FLAGS="-G"
49075 SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN$1'
49076 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49077 SET_SHARED_LIBRARY_NAME='-h $1'
49078 SET_SHARED_LIBRARY_MAPFILE='-M$1'
49079 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49080 # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
49081 # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
49082 # will have to patch this single instruction with a call to some out-of-order code which
49083 # does the load from the TOC. This is of course slow. But in that case we also would have
49084 # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
49634 esac
49635
49636
49637
49638
49639
49640
49641
49642
49643
49644
49645
49646
49647
49648
49649
49650
49651
49652
49653
49654 # Special extras...
49655 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49656 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
49657 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49658 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49659 fi
49660 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49661 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49662 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49663 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49664 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49665 elif test "x$TOOLCHAIN_TYPE" = xgcc; then
49666 CXXSTD_CXXFLAG="-std=gnu++98"
49667
49668
49669
49670
49671
49672
49673
49785
49786 # Setup compiler/platform specific flags into
49787 # CFLAGS_JDK - C Compiler flags
49788 # CXXFLAGS_JDK - C++ Compiler flags
49789 # COMMON_CCXXFLAGS_JDK - common to C and C++
49790 if test "x$TOOLCHAIN_TYPE" = xgcc; then
49791 JVM_CFLAGS="$JVM_CFLAGS -D_GNU_SOURCE"
49792 JVM_CFLAGS="$JVM_CFLAGS -D_REENTRANT"
49793 JVM_CFLAGS="$JVM_CFLAGS -fcheck-new"
49794 if test "x$OPENJDK_TARGET_CPU" = xx86; then
49795 # Force compatibility with i586 on 32 bit intel platforms.
49796 COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586"
49797 JVM_CFLAGS="$JVM_CFLAGS -march=i586"
49798 fi
49799 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
49800 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
49801 case $OPENJDK_TARGET_CPU_ARCH in
49802 arm )
49803 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49804 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49805 ;;
49806 ppc )
49807 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49808 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49809 ;;
49810 s390 )
49811 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
49812 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49813 ;;
49814 * )
49815 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
49816 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49817 ;;
49818 esac
49819
49820
49821
49822
49823
49824
50607
50608 # Setup compiler/platform specific flags into
50609 # OPENJDK_BUILD_CFLAGS_JDK - C Compiler flags
50610 # OPENJDK_BUILD_CXXFLAGS_JDK - C++ Compiler flags
50611 # OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK - common to C and C++
50612 if test "x$TOOLCHAIN_TYPE" = xgcc; then
50613 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_GNU_SOURCE"
50614 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_REENTRANT"
50615 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -fcheck-new"
50616 if test "x$OPENJDK_BUILD_CPU" = xx86; then
50617 # Force compatibility with i586 on 32 bit intel platforms.
50618 OPENJDK_BUILD_COMMON_CCXXFLAGS="${OPENJDK_BUILD_COMMON_CCXXFLAGS} -march=i586"
50619 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -march=i586"
50620 fi
50621 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS $OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
50622 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
50623 case $OPENJDK_BUILD_CPU_ARCH in
50624 arm )
50625 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50626 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50627 ;;
50628 ppc )
50629 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50630 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50631 ;;
50632 s390 )
50633 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
50634 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50635 ;;
50636 * )
50637 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
50638 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50639 ;;
50640 esac
50641
50642
50643
50644
50645
50646
64055
64056 # Hotspot setup depends on lib checks (AOT needs libelf).
64057
64058
64059 # The user can in some cases supply additional jvm features. For the custom
64060 # variant, this defines the entire variant.
64061
64062 # Check whether --with-jvm-features was given.
64063 if test "${with_jvm_features+set}" = set; then :
64064 withval=$with_jvm_features;
64065 fi
64066
64067 if test "x$with_jvm_features" != x; then
64068 { $as_echo "$as_me:${as_lineno-$LINENO}: checking additional JVM features" >&5
64069 $as_echo_n "checking additional JVM features... " >&6; }
64070 JVM_FEATURES=`$ECHO $with_jvm_features | $SED -e 's/,/ /g'`
64071 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JVM_FEATURES" >&5
64072 $as_echo "$JVM_FEATURES" >&6; }
64073 fi
64074
64075 # Verify that dependencies are met for explicitly set features.
64076 if [[ " $JVM_FEATURES " =~ " jvmti " ]] && ! [[ " $JVM_FEATURES " =~ " services " ]] ; then
64077 as_fn_error $? "Specified JVM feature 'jvmti' requires feature 'services'" "$LINENO" 5
64078 fi
64079
64080 if [[ " $JVM_FEATURES " =~ " management " ]] && ! [[ " $JVM_FEATURES " =~ " nmt " ]] ; then
64081 as_fn_error $? "Specified JVM feature 'management' requires feature 'nmt'" "$LINENO" 5
64082 fi
64083
64084 if [[ " $JVM_FEATURES " =~ " jvmci " ]] && ! ( [[ " $JVM_FEATURES " =~ " compiler1 " ]] || [[ " $JVM_FEATURES " =~ " compiler2 " ]] ); then
64085 as_fn_error $? "Specified JVM feature 'jvmci' requires feature 'compiler2' or 'compiler1'" "$LINENO" 5
64086 fi
64087
64088 if [[ " $JVM_FEATURES " =~ " compiler2 " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
64089 as_fn_error $? "Specified JVM feature 'compiler2' requires feature 'all-gcs'" "$LINENO" 5
64090 fi
64091
64092 if [[ " $JVM_FEATURES " =~ " vm-structs " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
64093 as_fn_error $? "Specified JVM feature 'vm-structs' requires feature 'all-gcs'" "$LINENO" 5
64094 fi
64162 if test "x$ENABLE_AOT" = "xtrue"; then
64163 if test "x$enable_aot" = "xyes"; then
64164 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5
64165 $as_echo "yes, forced" >&6; }
64166 else
64167 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
64168 $as_echo "yes" >&6; }
64169 fi
64170 JVM_FEATURES_aot="aot"
64171 else
64172 if test "x$enable_aot" = "xno"; then
64173 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, forced" >&5
64174 $as_echo "no, forced" >&6; }
64175 else
64176 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
64177 $as_echo "no" >&6; }
64178 fi
64179 JVM_FEATURES_aot=""
64180 fi
64181
64182 # All variants but minimal (and custom) get these features
64183 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds"
64184
64185 # Enable features depending on variant.
64186 JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci $JVM_FEATURES_aot $JVM_FEATURES_graal"
64187 JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
64188 JVM_FEATURES_core="$NON_MINIMAL_FEATURES $JVM_FEATURES"
64189 JVM_FEATURES_minimal="compiler1 minimal $JVM_FEATURES"
64190 JVM_FEATURES_zero="zero $NON_MINIMAL_FEATURES $JVM_FEATURES"
64191 JVM_FEATURES_zeroshark="zero shark $NON_MINIMAL_FEATURES $JVM_FEATURES"
64192 JVM_FEATURES_custom="$JVM_FEATURES"
64193
64194
64195
64196
64197
64198
64199
64200
64201
64202 # Used for verification of Makefiles by check-jvm-feature
64203
64204
64205 # We don't support --with-jvm-interpreter anymore, use zero instead.
64206
64207
64208 # Check whether --with-jvm-interpreter was given.
64209 if test "${with_jvm_interpreter+set}" = set; then :
|
736 OPENJDK_BUILD_CXXFLAGS_JDKLIB
737 OPENJDK_BUILD_CFLAGS_JDKEXE
738 OPENJDK_BUILD_CFLAGS_JDKLIB
739 OPENJDK_BUILD_CXXSTD_CXXFLAG
740 JVM_LIBS
741 JVM_ASFLAGS
742 JVM_LDFLAGS
743 JVM_CFLAGS
744 LDFLAGS_HASH_STYLE
745 LDFLAGS_CXX_JDK
746 JDKEXE_LIBS
747 JDKLIB_LIBS
748 LDFLAGS_JDKEXE
749 LDFLAGS_JDKLIB
750 CXXFLAGS_JDKEXE
751 CXXFLAGS_JDKLIB
752 CFLAGS_JDKEXE
753 CFLAGS_JDKLIB
754 MACOSX_VERSION_MIN
755 CXXSTD_CXXFLAG
756 JDK_ARCH_ABI_PROP_NAME
757 CXX_O_FLAG_SIZE
758 CXX_O_FLAG_NONE
759 CXX_O_FLAG_DEBUG
760 CXX_O_FLAG_NORM
761 CXX_O_FLAG_HI
762 CXX_O_FLAG_HIGHEST
763 CXX_O_FLAG_HIGHEST_JVM
764 C_O_FLAG_SIZE
765 C_O_FLAG_NONE
766 C_O_FLAG_DEBUG
767 C_O_FLAG_NORM
768 C_O_FLAG_HI
769 C_O_FLAG_HIGHEST
770 C_O_FLAG_HIGHEST_JVM
771 JVM_CFLAGS_SYMBOLS
772 CXXFLAGS_DEBUG_SYMBOLS
773 CFLAGS_DEBUG_SYMBOLS
774 CXX_FLAG_DEPS
775 C_FLAG_DEPS
776 SHARED_LIBRARY_FLAGS
1118 prefix
1119 exec_prefix
1120 PACKAGE_URL
1121 PACKAGE_BUGREPORT
1122 PACKAGE_STRING
1123 PACKAGE_VERSION
1124 PACKAGE_TARNAME
1125 PACKAGE_NAME
1126 PATH_SEPARATOR
1127 SHELL'
1128 ac_subst_files=''
1129 ac_user_opts='
1130 enable_option_checking
1131 with_target_bits
1132 enable_openjdk_only
1133 with_custom_make_dir
1134 with_jdk_variant
1135 enable_debug
1136 with_debug_level
1137 with_jvm_variants
1138 with_cpu_port
1139 with_devkit
1140 with_sys_root
1141 with_sysroot
1142 with_tools_dir
1143 with_toolchain_path
1144 with_extra_path
1145 with_sdk_name
1146 with_conf_name
1147 with_output_sync
1148 with_default_make_target
1149 enable_headless_only
1150 with_cacerts_file
1151 enable_unlimited_crypto
1152 with_copyright_year
1153 enable_keep_packaged_modules
1154 with_milestone
1155 with_update_version
1156 with_user_release_suffix
1157 with_build_number
1158 with_version_string
1168 with_add_source_root
1169 with_override_source_root
1170 with_adds_and_overrides
1171 with_override_langtools
1172 with_override_corba
1173 with_override_jaxp
1174 with_override_jaxws
1175 with_override_hotspot
1176 with_override_nashorn
1177 with_override_jdk
1178 with_import_hotspot
1179 with_import_modules
1180 enable_static_build
1181 with_toolchain_type
1182 with_extra_cflags
1183 with_extra_cxxflags
1184 with_extra_ldflags
1185 with_toolchain_version
1186 with_build_devkit
1187 with_jtreg
1188 with_abi_profile
1189 enable_warnings_as_errors
1190 with_native_debug_symbols
1191 enable_debug_symbols
1192 enable_zip_debug_info
1193 enable_native_coverage
1194 enable_dtrace
1195 enable_aot
1196 enable_hotspot_gtest
1197 with_stdc__lib
1198 with_msvcr_dll
1199 with_msvcp_dll
1200 with_x
1201 with_cups
1202 with_cups_include
1203 with_freetype
1204 with_freetype_include
1205 with_freetype_lib
1206 with_freetype_src
1207 enable_freetype_bundling
1208 with_alsa
2025 icecc/icecream [disabled]
2026 --disable-precompiled-headers
2027 disable using precompiled headers when compiling C++
2028 [enabled]
2029 --enable-ccache enable using ccache to speed up recompilations
2030 [disabled]
2031
2032 Optional Packages:
2033 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
2034 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
2035 --with-target-bits build 32-bit or 64-bit binaries (for platforms that
2036 support it), e.g. --with-target-bits=32 [guessed]
2037 --with-custom-make-dir Deprecated. Option is kept for backwards
2038 compatibility and is ignored
2039 --with-jdk-variant JDK variant to build (normal) [normal]
2040 --with-debug-level set the debug level (release, fastdebug, slowdebug,
2041 optimized) [release]
2042 --with-jvm-variants JVM variants (separated by commas) to build
2043 (server,client,minimal,core,zero,zeroshark,custom)
2044 [server]
2045 --with-cpu-port specify sources to use for Hotspot 64-bit ARM port
2046 (arm64,aarch64) [aarch64]
2047 --with-devkit use this devkit for compilers, tools and resources
2048 --with-sys-root alias for --with-sysroot for backwards compatability
2049 --with-sysroot use this directory as sysroot
2050 --with-tools-dir alias for --with-toolchain-path for backwards
2051 compatibility
2052 --with-toolchain-path prepend these directories when searching for
2053 toolchain binaries (compilers etc)
2054 --with-extra-path prepend these directories to the default path
2055 --with-sdk-name use the platform SDK of the given name. [macosx]
2056 --with-conf-name use this as the name of the configuration [generated
2057 from important configuration options]
2058 --with-output-sync set make output sync type if supported by make.
2059 [recurse]
2060 --with-default-make-target
2061 set the default make target [exploded-image]
2062 --with-cacerts-file specify alternative cacerts file
2063 --with-copyright-year Set copyright year value for build [current year]
2064 --with-milestone Deprecated. Option is kept for backwards
2065 compatibility and is ignored
2066 --with-update-version Deprecated. Option is kept for backwards
2109 compatibility and is ignored
2110 --with-override-nashorn Deprecated. Option is kept for backwards
2111 compatibility and is ignored
2112 --with-override-jdk Deprecated. Option is kept for backwards
2113 compatibility and is ignored
2114 --with-import_hotspot Deprecated. Option is kept for backwards
2115 compatibility and is ignored
2116 --with-import-modules import a set of prebuilt modules either as a zip
2117 file or an exploded directory
2118 --with-toolchain-type the toolchain type (or family) to use, use '--help'
2119 to show possible values [platform dependent]
2120 --with-extra-cflags extra flags to be used when compiling jdk c-files
2121 --with-extra-cxxflags extra flags to be used when compiling jdk c++-files
2122 --with-extra-ldflags extra flags to be used when linking jdk
2123 --with-toolchain-version
2124 the version of the toolchain to look for, use
2125 '--help' to show possible values [platform
2126 dependent]
2127 --with-build-devkit Devkit to use for the build platform toolchain
2128 --with-jtreg Regression Test Harness [probed]
2129 --with-abi-profile specify ABI profile for ARM builds
2130 (arm-vfp-sflt,arm-vfp-hflt,arm-sflt,
2131 armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64)
2132 [toolchain dependent]
2133 --with-native-debug-symbols
2134 set the native debug symbol configuration (none,
2135 internal, external, zipped) [varying]
2136 --with-stdc++lib=<static>,<dynamic>,<default>
2137 force linking of the C++ runtime on Linux to either
2138 static or dynamic, default is static with dynamic as
2139 fallback
2140 --with-msvcr-dll path to microsoft C runtime dll (msvcr*.dll)
2141 (Windows only) [probed]
2142 --with-msvcp-dll path to microsoft C++ runtime dll (msvcp*.dll)
2143 (Windows only) [probed]
2144 --with-x use the X Window System
2145 --with-cups specify prefix directory for the cups package
2146 (expecting the headers under PATH/include)
2147 --with-cups-include specify directory for the cups include files
2148 --with-freetype specify prefix directory for the freetype package
2149 (expecting the libraries under PATH/lib and the
2150 headers under PATH/include)
2151 --with-freetype-include specify directory for the freetype include files
2152 --with-freetype-lib specify directory for the freetype library
4004 # under the terms of the GNU General Public License version 2 only, as
4005 # published by the Free Software Foundation. Oracle designates this
4006 # particular file as subject to the "Classpath" exception as provided
4007 # by Oracle in the LICENSE file that accompanied this code.
4008 #
4009 # This code is distributed in the hope that it will be useful, but WITHOUT
4010 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4011 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4012 # version 2 for more details (a copy is included in the LICENSE file that
4013 # accompanied this code).
4014 #
4015 # You should have received a copy of the GNU General Public License version
4016 # 2 along with this work; if not, write to the Free Software Foundation,
4017 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4018 #
4019 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4020 # or visit www.oracle.com if you need additional information or have any
4021 # questions.
4022 #
4023
4024 ################################################################################
4025 #
4026 # Setup ABI profile (for arm)
4027 #
4028
4029
4030 # Reset the global CFLAGS/LDFLAGS variables and initialize them with the
4031 # corresponding configure arguments instead
4032
4033
4034 # Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
4035 # that configure can use them while detecting compilers.
4036 # TOOLCHAIN_TYPE is available here.
4037 # Param 1 - Optional prefix to all variables. (e.g BUILD_)
4038
4039
4040
4041
4042
4043
4044 # Documentation on common flags used for solstudio in HIGHEST.
4045 #
4046 # WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
4047 # done with care, there are some assumptions below that need to
4048 # be understood about the use of pointers, and IEEE behavior.
4049 #
4270 # particular file as subject to the "Classpath" exception as provided
4271 # by Oracle in the LICENSE file that accompanied this code.
4272 #
4273 # This code is distributed in the hope that it will be useful, but WITHOUT
4274 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4275 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4276 # version 2 for more details (a copy is included in the LICENSE file that
4277 # accompanied this code).
4278 #
4279 # You should have received a copy of the GNU General Public License version
4280 # 2 along with this work; if not, write to the Free Software Foundation,
4281 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4282 #
4283 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4284 # or visit www.oracle.com if you need additional information or have any
4285 # questions.
4286 #
4287
4288 # All valid JVM features, regardless of platform
4289 VALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \
4290 graal fprof vm-structs jni-check services management all-gcs nmt cds \
4291 static-build link-time-opt aot"
4292
4293 # All valid JVM variants
4294 VALID_JVM_VARIANTS="server client minimal core zero zeroshark custom"
4295
4296 ###############################################################################
4297 # Check if the specified JVM variant should be built. To be used in shell if
4298 # constructs, like this:
4299 # if HOTSPOT_CHECK_JVM_VARIANT(server); then
4300 #
4301 # Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants.
4302
4303 # Definition kept in one line to allow inlining in if statements.
4304 # Additional [] needed to keep m4 from mangling shell constructs.
4305
4306
4307 ###############################################################################
4308 # Check if the specified JVM features are explicitly enabled. To be used in
4309 # shell if constructs, like this:
4310 # if HOTSPOT_CHECK_JVM_FEATURE(jvmti); then
4311 #
4331 # Check if dtrace should be enabled and has all prerequisites present.
4332 #
4333
4334
4335 ################################################################################
4336 # Check if AOT should be enabled
4337 #
4338
4339
4340 ###############################################################################
4341 # Set up all JVM features for each JVM variant.
4342 #
4343
4344
4345 ###############################################################################
4346 # Validate JVM features once all setup is complete, including custom setup.
4347 #
4348
4349
4350 ################################################################################
4351 #
4352 # Specify which sources will be used to build the 64-bit ARM port
4353 #
4354 # --with-cpu-port=arm64 will use hotspot/src/cpu/arm
4355 # --with-cpu-port=aarch64 will use hotspot/src/cpu/aarch64
4356 #
4357
4358
4359
4360 ################################################################################
4361 # Check if gtest should be built
4362 #
4363
4364
4365 #
4366 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
4367 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4368 #
4369 # This code is free software; you can redistribute it and/or modify it
4370 # under the terms of the GNU General Public License version 2 only, as
4371 # published by the Free Software Foundation. Oracle designates this
4372 # particular file as subject to the "Classpath" exception as provided
4373 # by Oracle in the LICENSE file that accompanied this code.
4374 #
4375 # This code is distributed in the hope that it will be useful, but WITHOUT
4376 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4377 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4378 # version 2 for more details (a copy is included in the LICENSE file that
4379 # accompanied this code).
4380 #
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165 # This line needs to be here, verbatim, after all includes and the dummy hook
5166 # definitions. It is replaced with custom functionality when building
5167 # custom sources.
5168 #CUSTOM_AUTOCONF_INCLUDE
5169
5170 # Do not change or remove the following line, it is needed for consistency checks:
5171 DATE_WHEN_GENERATED=1481572389
5172
5173 ###############################################################################
5174 #
5175 # Initialization / Boot-strapping
5176 #
5177 # The bootstrapping process needs to solve the "chicken or the egg" problem,
5178 # thus it jumps back and forth, each time gaining something needed later on.
5179 #
5180 ###############################################################################
5181
5182 # If we are requested to print additional help, do that and then exit.
5183 # This must be the very first call.
5184
5185 if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
5186
5187 # Print available toolchains
5188 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
5189 $PRINTF "Which are valid to use depends on the build platform.\n"
5190 for toolchain in $VALID_TOOLCHAINS_all; do
5191 # Use indirect variable referencing
16730 # with the exception that it can contain additional code which is otherwise
16731 # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
16732 # test new and/or experimental features which are not intended for customer
16733 # shipment. Because these new features need to be tested and benchmarked in
16734 # real world scenarios, we want to build the containing JDK at the 'release'
16735 # debug level.
16736 DEBUG_LEVEL="release"
16737 fi
16738
16739
16740
16741
16742
16743
16744 # Check whether --with-jvm-variants was given.
16745 if test "${with_jvm_variants+set}" = set; then :
16746 withval=$with_jvm_variants;
16747 fi
16748
16749
16750
16751
16752 # Check whether --with-cpu-port was given.
16753 if test "${with_cpu_port+set}" = set; then :
16754 withval=$with_cpu_port;
16755 fi
16756
16757
16758 if test "x$with_cpu_port" != x; then
16759 if test "x$OPENJDK_TARGET_CPU" != xaarch64; then
16760 as_fn_error $? "--with-cpu-port only available on aarch64" "$LINENO" 5
16761 fi
16762 if test "x$with_cpu_port" != xarm64 && \
16763 test "x$with_cpu_port" != xaarch64; then
16764 as_fn_error $? "--with-cpu-port must specify arm64 or aarch64" "$LINENO" 5
16765 fi
16766 HOTSPOT_TARGET_CPU_PORT="$with_cpu_port"
16767 fi
16768
16769
16770 if test "x$with_jvm_variants" = x; then
16771 with_jvm_variants="server"
16772 fi
16773 JVM_VARIANTS_OPT="$with_jvm_variants"
16774
16775 # Has the user listed more than one variant?
16776 # Additional [] needed to keep m4 from mangling shell constructs.
16777 if [[ "$JVM_VARIANTS_OPT" =~ "," ]] ; then
16778 BUILDING_MULTIPLE_JVM_VARIANTS=true
16779 else
16780 BUILDING_MULTIPLE_JVM_VARIANTS=false
16781 fi
16782 # Replace the commas with AND for use in the build directory name.
16783 JVM_VARIANTS_WITH_AND=`$ECHO "$JVM_VARIANTS_OPT" | $SED -e 's/,/AND/g'`
16784
16785 { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM to build" >&5
16786 $as_echo_n "checking which variants of the JVM to build... " >&6; }
16787 # JVM_VARIANTS is a space-separated list.
16788 # Also use minimal, not minimal1 (which is kept for backwards compatibility).
16789 JVM_VARIANTS=`$ECHO $JVM_VARIANTS_OPT | $SED -e 's/,/ /g' -e 's/minimal1/minimal/'`
49088 C_FLAG_REORDER=''
49089 CXX_FLAG_REORDER=''
49090
49091 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
49092 # Linking is different on MacOSX
49093 PICFLAG=''
49094 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
49095 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path/.'
49096 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49097 SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/$1'
49098 SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,$1'
49099
49100 if test "x$STATIC_BUILD" = xfalse; then
49101 JVM_CFLAGS="$JVM_CFLAGS -fPIC"
49102 fi
49103 else
49104 # Default works for linux, might work on other platforms as well.
49105 PICFLAG='-fPIC'
49106 SHARED_LIBRARY_FLAGS='-shared'
49107 SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN$1'
49108 SET_SHARED_LIBRARY_NAME='-Wl,-soname=$1'
49109 SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=$1'
49110
49111 # arm specific settings
49112 if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
49113 # '-Wl,-z,origin' isn't used on arm.
49114 SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN$1'
49115 else
49116 SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
49117 fi
49118
49119 fi
49120 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49121 if test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
49122 PICFLAG="-xcode=pic32"
49123 else
49124 PICFLAG="-KPIC"
49125 fi
49126 C_FLAG_REORDER='-xF'
49127 CXX_FLAG_REORDER='-xF'
49128 SHARED_LIBRARY_FLAGS="-G"
49129 SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN$1'
49130 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
49131 SET_SHARED_LIBRARY_NAME='-h $1'
49132 SET_SHARED_LIBRARY_MAPFILE='-M$1'
49133 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49134 # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
49135 # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
49136 # will have to patch this single instruction with a call to some out-of-order code which
49137 # does the load from the TOC. This is of course slow. But in that case we also would have
49138 # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
49688 esac
49689
49690
49691
49692
49693
49694
49695
49696
49697
49698
49699
49700
49701
49702
49703
49704
49705
49706
49707
49708
49709 # Check whether --with-abi-profile was given.
49710 if test "${with_abi_profile+set}" = set; then :
49711 withval=$with_abi_profile;
49712 fi
49713
49714
49715 if test "x$with_abi_profile" != x; then
49716 if test "x$OPENJDK_TARGET_CPU" != xarm && \
49717 test "x$OPENJDK_TARGET_CPU" != xaarch64; then
49718 as_fn_error $? "--with-abi-profile only available on arm/aarch64" "$LINENO" 5
49719 fi
49720
49721 OPENJDK_TARGET_ABI_PROFILE=$with_abi_profile
49722 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ABI profle" >&5
49723 $as_echo_n "checking for ABI profle... " >&6; }
49724 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENJDK_TARGET_ABI_PROFILE" >&5
49725 $as_echo "$OPENJDK_TARGET_ABI_PROFILE" >&6; }
49726
49727 if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-sflt; then
49728 ARM_FLOAT_TYPE=vfp-sflt
49729 ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
49730 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-vfp-hflt; then
49731 ARM_FLOAT_TYPE=vfp-hflt
49732 ARM_ARCH_TYPE_FLAGS='-march=armv7-a -mthumb'
49733 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
49734 ARM_FLOAT_TYPE=sflt
49735 ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
49736 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
49737 ARM_FLOAT_TYPE=vfp-sflt
49738 ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
49739 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
49740 ARM_FLOAT_TYPE=vfp-hflt
49741 ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
49742 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm64; then
49743 # No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
49744 ARM_FLOAT_TYPE=
49745 ARM_ARCH_TYPE_FLAGS=
49746 elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
49747 # No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
49748 ARM_FLOAT_TYPE=
49749 ARM_ARCH_TYPE_FLAGS=
49750 else
49751 as_fn_error $? "Invalid ABI profile: \"$OPENJDK_TARGET_ABI_PROFILE\"" "$LINENO" 5
49752 fi
49753
49754 if test "x$ARM_FLOAT_TYPE" = xvfp-sflt; then
49755 ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=softfp -mfpu=vfp -DFLOAT_ARCH=-vfp-sflt'
49756 elif test "x$ARM_FLOAT_TYPE" = xvfp-hflt; then
49757 ARM_FLOAT_TYPE_FLAGS='-mfloat-abi=hard -mfpu=vfp -DFLOAT_ARCH=-vfp-hflt'
49758 elif test "x$ARM_FLOAT_TYPE" = xsflt; then
49759 ARM_FLOAT_TYPE_FLAGS='-msoft-float -mfpu=vfp'
49760 fi
49761 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ARM_FLOAT_TYPE floating point flags" >&5
49762 $as_echo_n "checking for $ARM_FLOAT_TYPE floating point flags... " >&6; }
49763 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ARM_FLOAT_TYPE_FLAGS" >&5
49764 $as_echo "$ARM_FLOAT_TYPE_FLAGS" >&6; }
49765
49766 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for arch type flags" >&5
49767 $as_echo_n "checking for arch type flags... " >&6; }
49768 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ARM_ARCH_TYPE_FLAGS" >&5
49769 $as_echo "$ARM_ARCH_TYPE_FLAGS" >&6; }
49770
49771 # Now set JDK_ARCH_ABI_PROP_NAME. This is equivalent to the last part of the
49772 # autoconf target triplet.
49773 JDK_ARCH_ABI_PROP_NAME=`$ECHO $OPENJDK_TARGET_AUTOCONF_NAME | $SED -e 's/.*-\([^-]*\)$/\1/'`
49774 # Sanity check that it is a known ABI.
49775 if test "x$JDK_ARCH_ABI_PROP_NAME" != xgnu && \
49776 test "x$JDK_ARCH_ABI_PROP_NAME" != xgnueabi && \
49777 test "x$JDK_ARCH_ABI_PROP_NAME" != xgnueabihf; then
49778 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unknown autoconf target triplet ABI: \"$JDK_ARCH_ABI_PROP_NAME\"" >&5
49779 $as_echo "$as_me: WARNING: Unknown autoconf target triplet ABI: \"$JDK_ARCH_ABI_PROP_NAME\"" >&2;}
49780 fi
49781 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ABI property name" >&5
49782 $as_echo_n "checking for ABI property name... " >&6; }
49783 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JDK_ARCH_ABI_PROP_NAME" >&5
49784 $as_echo "$JDK_ARCH_ABI_PROP_NAME" >&6; }
49785
49786
49787 # Pass these on to the open part of configure as if they were set using
49788 # --with-extra-c[xx]flags.
49789 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
49790 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
49791 # Get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
49792 # FIXME: This should not really be set using extra_cflags.
49793 if test "x$OPENJDK_TARGET_CPU" = xarm; then
49794 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-psabi"
49795 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -Wno-psabi"
49796 fi
49797 # Also add JDK_ARCH_ABI_PROP_NAME define, but only to CFLAGS.
49798 EXTRA_CFLAGS="$EXTRA_CFLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
49799 # And pass the architecture flags to the linker as well
49800 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
49801 fi
49802
49803 # When building with an abi profile, the name of that profile is appended on the
49804 # bundle platform, which is used in bundle names.
49805 if test "x$OPENJDK_TARGET_ABI_PROFILE" != x; then
49806 OPENJDK_TARGET_BUNDLE_PLATFORM="$OPENJDK_TARGET_OS_BUNDLE-$OPENJDK_TARGET_ABI_PROFILE"
49807 fi
49808
49809
49810 # Special extras...
49811 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
49812 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
49813 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49814 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -xregs=no%appl"
49815 fi
49816 CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49817 CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt"
49818 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
49819 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49820 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
49821 elif test "x$TOOLCHAIN_TYPE" = xgcc; then
49822 CXXSTD_CXXFLAG="-std=gnu++98"
49823
49824
49825
49826
49827
49828
49829
49941
49942 # Setup compiler/platform specific flags into
49943 # CFLAGS_JDK - C Compiler flags
49944 # CXXFLAGS_JDK - C++ Compiler flags
49945 # COMMON_CCXXFLAGS_JDK - common to C and C++
49946 if test "x$TOOLCHAIN_TYPE" = xgcc; then
49947 JVM_CFLAGS="$JVM_CFLAGS -D_GNU_SOURCE"
49948 JVM_CFLAGS="$JVM_CFLAGS -D_REENTRANT"
49949 JVM_CFLAGS="$JVM_CFLAGS -fcheck-new"
49950 if test "x$OPENJDK_TARGET_CPU" = xx86; then
49951 # Force compatibility with i586 on 32 bit intel platforms.
49952 COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586"
49953 JVM_CFLAGS="$JVM_CFLAGS -march=i586"
49954 fi
49955 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
49956 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
49957 case $OPENJDK_TARGET_CPU_ARCH in
49958 arm )
49959 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49960 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49961 COMMON_CCXXFLAGS_JDK="${COMMON_CCXXFLAGS_JDK} -fsigned-char"
49962 ;;
49963 ppc )
49964 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
49965 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49966 ;;
49967 s390 )
49968 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
49969 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49970 ;;
49971 * )
49972 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
49973 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
49974 ;;
49975 esac
49976
49977
49978
49979
49980
49981
50764
50765 # Setup compiler/platform specific flags into
50766 # OPENJDK_BUILD_CFLAGS_JDK - C Compiler flags
50767 # OPENJDK_BUILD_CXXFLAGS_JDK - C++ Compiler flags
50768 # OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK - common to C and C++
50769 if test "x$TOOLCHAIN_TYPE" = xgcc; then
50770 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_GNU_SOURCE"
50771 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -D_REENTRANT"
50772 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -fcheck-new"
50773 if test "x$OPENJDK_BUILD_CPU" = xx86; then
50774 # Force compatibility with i586 on 32 bit intel platforms.
50775 OPENJDK_BUILD_COMMON_CCXXFLAGS="${OPENJDK_BUILD_COMMON_CCXXFLAGS} -march=i586"
50776 OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS -march=i586"
50777 fi
50778 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS $OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
50779 -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
50780 case $OPENJDK_BUILD_CPU_ARCH in
50781 arm )
50782 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50783 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50784 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="${OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK} -fsigned-char"
50785 ;;
50786 ppc )
50787 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing
50788 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50789 ;;
50790 s390 )
50791 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer -mbackchain -march=z10"
50792 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50793 ;;
50794 * )
50795 OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK="$OPENJDK_BUILD_COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
50796 OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -fno-strict-aliasing"
50797 ;;
50798 esac
50799
50800
50801
50802
50803
50804
64213
64214 # Hotspot setup depends on lib checks (AOT needs libelf).
64215
64216
64217 # The user can in some cases supply additional jvm features. For the custom
64218 # variant, this defines the entire variant.
64219
64220 # Check whether --with-jvm-features was given.
64221 if test "${with_jvm_features+set}" = set; then :
64222 withval=$with_jvm_features;
64223 fi
64224
64225 if test "x$with_jvm_features" != x; then
64226 { $as_echo "$as_me:${as_lineno-$LINENO}: checking additional JVM features" >&5
64227 $as_echo_n "checking additional JVM features... " >&6; }
64228 JVM_FEATURES=`$ECHO $with_jvm_features | $SED -e 's/,/ /g'`
64229 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JVM_FEATURES" >&5
64230 $as_echo "$JVM_FEATURES" >&6; }
64231 fi
64232
64233 # Override hotspot cpu definitions for ARM platforms
64234 if test "x$OPENJDK_TARGET_CPU" = xarm; then
64235 HOTSPOT_TARGET_CPU=arm_32
64236 HOTSPOT_TARGET_CPU_DEFINE="ARM32"
64237 JVM_LDFLAGS="$JVM_LDFLAGS -fsigned-char"
64238 JVM_CFLAGS="$JVM_CFLAGS -DARM -fsigned-char"
64239 elif test "x$OPENJDK_TARGET_CPU" = xaarch64 && test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
64240 HOTSPOT_TARGET_CPU=arm_64
64241 HOTSPOT_TARGET_CPU_ARCH=arm
64242 JVM_LDFLAGS="$JVM_LDFLAGS -fsigned-char"
64243 JVM_CFLAGS="$JVM_CFLAGS -DARM -fsigned-char"
64244 fi
64245
64246 # Verify that dependencies are met for explicitly set features.
64247 if [[ " $JVM_FEATURES " =~ " jvmti " ]] && ! [[ " $JVM_FEATURES " =~ " services " ]] ; then
64248 as_fn_error $? "Specified JVM feature 'jvmti' requires feature 'services'" "$LINENO" 5
64249 fi
64250
64251 if [[ " $JVM_FEATURES " =~ " management " ]] && ! [[ " $JVM_FEATURES " =~ " nmt " ]] ; then
64252 as_fn_error $? "Specified JVM feature 'management' requires feature 'nmt'" "$LINENO" 5
64253 fi
64254
64255 if [[ " $JVM_FEATURES " =~ " jvmci " ]] && ! ( [[ " $JVM_FEATURES " =~ " compiler1 " ]] || [[ " $JVM_FEATURES " =~ " compiler2 " ]] ); then
64256 as_fn_error $? "Specified JVM feature 'jvmci' requires feature 'compiler2' or 'compiler1'" "$LINENO" 5
64257 fi
64258
64259 if [[ " $JVM_FEATURES " =~ " compiler2 " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
64260 as_fn_error $? "Specified JVM feature 'compiler2' requires feature 'all-gcs'" "$LINENO" 5
64261 fi
64262
64263 if [[ " $JVM_FEATURES " =~ " vm-structs " ]] && ! [[ " $JVM_FEATURES " =~ " all-gcs " ]] ; then
64264 as_fn_error $? "Specified JVM feature 'vm-structs' requires feature 'all-gcs'" "$LINENO" 5
64265 fi
64333 if test "x$ENABLE_AOT" = "xtrue"; then
64334 if test "x$enable_aot" = "xyes"; then
64335 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5
64336 $as_echo "yes, forced" >&6; }
64337 else
64338 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
64339 $as_echo "yes" >&6; }
64340 fi
64341 JVM_FEATURES_aot="aot"
64342 else
64343 if test "x$enable_aot" = "xno"; then
64344 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, forced" >&5
64345 $as_echo "no, forced" >&6; }
64346 else
64347 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
64348 $as_echo "no" >&6; }
64349 fi
64350 JVM_FEATURES_aot=""
64351 fi
64352
64353 if test "x$OPENJDK_TARGET_CPU" = xarm ; then
64354 # Default to use link time optimizations on minimal on arm
64355 JVM_FEATURES_link_time_opt="link-time-opt"
64356 else
64357 JVM_FEATURES_link_time_opt=""
64358 fi
64359
64360 # All variants but minimal (and custom) get these features
64361 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds"
64362
64363 # Enable features depending on variant.
64364 JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci $JVM_FEATURES_aot $JVM_FEATURES_graal"
64365 JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
64366 JVM_FEATURES_core="$NON_MINIMAL_FEATURES $JVM_FEATURES"
64367 JVM_FEATURES_minimal="compiler1 minimal $JVM_FEATURES $JVM_FEATURES_link_time_opt"
64368 JVM_FEATURES_zero="zero $NON_MINIMAL_FEATURES $JVM_FEATURES"
64369 JVM_FEATURES_zeroshark="zero shark $NON_MINIMAL_FEATURES $JVM_FEATURES"
64370 JVM_FEATURES_custom="$JVM_FEATURES"
64371
64372
64373
64374
64375
64376
64377
64378
64379
64380 # Used for verification of Makefiles by check-jvm-feature
64381
64382
64383 # We don't support --with-jvm-interpreter anymore, use zero instead.
64384
64385
64386 # Check whether --with-jvm-interpreter was given.
64387 if test "${with_jvm_interpreter+set}" = set; then :
|