969 VALID_JVM_VARIANTS
970 JVM_VARIANTS
971 DEBUG_LEVEL
972 HOTSPOT_DEBUG_LEVEL
973 JDK_VARIANT
974 USERNAME
975 CANONICAL_TOPDIR
976 ORIGINAL_TOPDIR
977 TOPDIR
978 PATH_SEP
979 ZERO_ARCHDEF
980 HOTSPOT_BUILD_CPU_DEFINE
981 HOTSPOT_BUILD_CPU_ARCH
982 HOTSPOT_BUILD_CPU
983 HOTSPOT_BUILD_OS_TYPE
984 HOTSPOT_BUILD_OS
985 OPENJDK_BUILD_BUNDLE_PLATFORM
986 OPENJDK_BUILD_CPU_BUNDLE
987 OPENJDK_BUILD_OS_BUNDLE
988 OPENJDK_BUILD_OS_EXPORT_DIR
989 OPENJDK_BUILD_CPU_JLI_CFLAGS
990 OPENJDK_BUILD_CPU_OSARCH
991 OPENJDK_BUILD_CPU_ISADIR
992 OPENJDK_BUILD_CPU_LIBDIR
993 OPENJDK_BUILD_CPU_LEGACY_LIB
994 OPENJDK_BUILD_CPU_LEGACY
995 HOTSPOT_TARGET_CPU_DEFINE
996 HOTSPOT_TARGET_CPU_ARCH
997 HOTSPOT_TARGET_CPU
998 HOTSPOT_TARGET_OS_TYPE
999 HOTSPOT_TARGET_OS
1000 DEFINE_CROSS_COMPILE_ARCH
1001 LP64
1002 OPENJDK_TARGET_BUNDLE_PLATFORM
1003 OPENJDK_TARGET_CPU_BUNDLE
1004 OPENJDK_TARGET_OS_BUNDLE
1005 OPENJDK_TARGET_OS_EXPORT_DIR
1006 OPENJDK_TARGET_CPU_JLI_CFLAGS
1007 OPENJDK_TARGET_CPU_OSARCH
1008 OPENJDK_TARGET_CPU_ISADIR
1009 OPENJDK_TARGET_CPU_LIBDIR
1010 OPENJDK_TARGET_CPU_LEGACY_LIB
1011 OPENJDK_TARGET_CPU_LEGACY
1012 REQUIRED_OS_VERSION
1013 REQUIRED_OS_NAME
1014 COMPILE_TYPE
1015 OPENJDK_TARGET_CPU_ENDIAN
1016 OPENJDK_TARGET_CPU_BITS
1017 OPENJDK_TARGET_CPU_ARCH
1018 OPENJDK_TARGET_CPU
1019 OPENJDK_TARGET_OS_ENV
1020 OPENJDK_TARGET_OS_TYPE
1021 OPENJDK_TARGET_OS
1022 OPENJDK_BUILD_CPU_ENDIAN
1023 OPENJDK_BUILD_CPU_BITS
1024 OPENJDK_BUILD_CPU_ARCH
1025 OPENJDK_BUILD_CPU
1026 OPENJDK_BUILD_OS_ENV
1027 OPENJDK_BUILD_OS_TYPE
1028 OPENJDK_BUILD_OS
1029 OPENJDK_BUILD_AUTOCONF_NAME
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090 # This line needs to be here, verbatim, after all includes and the dummy hook
5091 # definitions. It is replaced with custom functionality when building
5092 # custom sources.
5093 #CUSTOM_AUTOCONF_INCLUDE
5094
5095 # Do not change or remove the following line, it is needed for consistency checks:
5096 DATE_WHEN_GENERATED=1479120453
5097
5098 ###############################################################################
5099 #
5100 # Initialization / Boot-strapping
5101 #
5102 # The bootstrapping process needs to solve the "chicken or the egg" problem,
5103 # thus it jumps back and forth, each time gaining something needed later on.
5104 #
5105 ###############################################################################
5106
5107 # If we are requested to print additional help, do that and then exit.
5108 # This must be the very first call.
5109
5110 if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
5111
5112 # Print available toolchains
5113 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
5114 $PRINTF "Which are valid to use depends on the build platform.\n"
5115 for toolchain in $VALID_TOOLCHAINS_all; do
5116 # Use indirect variable referencing
15778 # Ie i586 and amd64 instead of x86 and x86_64
15779 OPENJDK_TARGET_CPU_LEGACY="$OPENJDK_TARGET_CPU"
15780 if test "x$OPENJDK_TARGET_CPU" = xx86; then
15781 OPENJDK_TARGET_CPU_LEGACY="i586"
15782 elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15783 # On all platforms except MacOSX replace x86_64 with amd64.
15784 OPENJDK_TARGET_CPU_LEGACY="amd64"
15785 fi
15786
15787
15788 # And the second legacy naming of the cpu.
15789 # Ie i386 and amd64 instead of x86 and x86_64.
15790 OPENJDK_TARGET_CPU_LEGACY_LIB="$OPENJDK_TARGET_CPU"
15791 if test "x$OPENJDK_TARGET_CPU" = xx86; then
15792 OPENJDK_TARGET_CPU_LEGACY_LIB="i386"
15793 elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15794 OPENJDK_TARGET_CPU_LEGACY_LIB="amd64"
15795 fi
15796
15797
15798 # This is the name of the cpu (but using i386 and amd64 instead of
15799 # x86 and x86_64, respectively), preceeded by a /, to be used when
15800 # locating libraries. On macosx, it's empty, though.
15801 OPENJDK_TARGET_CPU_LIBDIR="/$OPENJDK_TARGET_CPU_LEGACY_LIB"
15802 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
15803 OPENJDK_TARGET_CPU_LIBDIR=""
15804 fi
15805
15806
15807 # OPENJDK_TARGET_CPU_ISADIR is normally empty. On 64-bit Solaris systems, it is set to
15808 # /amd64 or /sparcv9. This string is appended to some library paths, like this:
15809 # /usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libexample.so
15810 OPENJDK_TARGET_CPU_ISADIR=""
15811 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
15812 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15813 OPENJDK_TARGET_CPU_ISADIR="/amd64"
15814 elif test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
15815 OPENJDK_TARGET_CPU_ISADIR="/sparcv9"
15816 fi
15817 fi
15818
15819
15820 # Setup OPENJDK_TARGET_CPU_OSARCH, which is used to set the os.arch Java system property
15821 OPENJDK_TARGET_CPU_OSARCH="$OPENJDK_TARGET_CPU"
15822 if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$OPENJDK_TARGET_CPU" = xx86; then
15823 # On linux only, we replace x86 with i386.
15824 OPENJDK_TARGET_CPU_OSARCH="i386"
15825 elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15826 # On all platforms except macosx, we replace x86_64 with amd64.
15827 OPENJDK_TARGET_CPU_OSARCH="amd64"
15828 fi
15829
15830
15831 OPENJDK_TARGET_CPU_JLI="$OPENJDK_TARGET_CPU"
15832 if test "x$OPENJDK_TARGET_CPU" = xx86; then
15833 OPENJDK_TARGET_CPU_JLI="i386"
15834 elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15835 # On all platforms except macosx, we replace x86_64 with amd64.
15836 OPENJDK_TARGET_CPU_JLI="amd64"
15837 fi
15838 # Now setup the -D flags for building libjli.
15839 OPENJDK_TARGET_CPU_JLI_CFLAGS="-DLIBARCHNAME='\"$OPENJDK_TARGET_CPU_JLI\"'"
15840 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
15841 if test "x$OPENJDK_TARGET_CPU_ARCH" = xsparc; then
15842 OPENJDK_TARGET_CPU_JLI_CFLAGS="$OPENJDK_TARGET_CPU_JLI_CFLAGS -DLIBARCH32NAME='\"sparc\"' -DLIBARCH64NAME='\"sparcv9\"'"
15843 elif test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
15844 OPENJDK_TARGET_CPU_JLI_CFLAGS="$OPENJDK_TARGET_CPU_JLI_CFLAGS -DLIBARCH32NAME='\"i386\"' -DLIBARCH64NAME='\"amd64\"'"
15845 fi
15846 fi
15847
15848
15849 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
15850 OPENJDK_TARGET_OS_EXPORT_DIR=macosx
15851 else
15852 OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_TYPE}
15853 fi
15854
15855
15856 # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
15857 # Macosx is osx and x86_64 is x64
15858 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
15859 OPENJDK_TARGET_OS_BUNDLE="osx"
15860 else
15861 OPENJDK_TARGET_OS_BUNDLE="$OPENJDK_TARGET_OS"
15862 fi
15863 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15864 OPENJDK_TARGET_CPU_BUNDLE="x64"
15865 else
15866 OPENJDK_TARGET_CPU_BUNDLE="$OPENJDK_TARGET_CPU"
15867 fi
15953 # Ie i586 and amd64 instead of x86 and x86_64
15954 OPENJDK_BUILD_CPU_LEGACY="$OPENJDK_BUILD_CPU"
15955 if test "x$OPENJDK_BUILD_CPU" = xx86; then
15956 OPENJDK_BUILD_CPU_LEGACY="i586"
15957 elif test "x$OPENJDK_BUILD_OS" != xmacosx && test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15958 # On all platforms except MacOSX replace x86_64 with amd64.
15959 OPENJDK_BUILD_CPU_LEGACY="amd64"
15960 fi
15961
15962
15963 # And the second legacy naming of the cpu.
15964 # Ie i386 and amd64 instead of x86 and x86_64.
15965 OPENJDK_BUILD_CPU_LEGACY_LIB="$OPENJDK_BUILD_CPU"
15966 if test "x$OPENJDK_BUILD_CPU" = xx86; then
15967 OPENJDK_BUILD_CPU_LEGACY_LIB="i386"
15968 elif test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15969 OPENJDK_BUILD_CPU_LEGACY_LIB="amd64"
15970 fi
15971
15972
15973 # This is the name of the cpu (but using i386 and amd64 instead of
15974 # x86 and x86_64, respectively), preceeded by a /, to be used when
15975 # locating libraries. On macosx, it's empty, though.
15976 OPENJDK_BUILD_CPU_LIBDIR="/$OPENJDK_BUILD_CPU_LEGACY_LIB"
15977 if test "x$OPENJDK_BUILD_OS" = xmacosx; then
15978 OPENJDK_BUILD_CPU_LIBDIR=""
15979 fi
15980
15981
15982 # OPENJDK_BUILD_CPU_ISADIR is normally empty. On 64-bit Solaris systems, it is set to
15983 # /amd64 or /sparcv9. This string is appended to some library paths, like this:
15984 # /usr/lib${OPENJDK_BUILD_CPU_ISADIR}/libexample.so
15985 OPENJDK_BUILD_CPU_ISADIR=""
15986 if test "x$OPENJDK_BUILD_OS" = xsolaris; then
15987 if test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15988 OPENJDK_BUILD_CPU_ISADIR="/amd64"
15989 elif test "x$OPENJDK_BUILD_CPU" = xsparcv9; then
15990 OPENJDK_BUILD_CPU_ISADIR="/sparcv9"
15991 fi
15992 fi
15993
15994
15995 # Setup OPENJDK_BUILD_CPU_OSARCH, which is used to set the os.arch Java system property
15996 OPENJDK_BUILD_CPU_OSARCH="$OPENJDK_BUILD_CPU"
15997 if test "x$OPENJDK_BUILD_OS" = xlinux && test "x$OPENJDK_BUILD_CPU" = xx86; then
15998 # On linux only, we replace x86 with i386.
15999 OPENJDK_BUILD_CPU_OSARCH="i386"
16000 elif test "x$OPENJDK_BUILD_OS" != xmacosx && test "x$OPENJDK_BUILD_CPU" = xx86_64; then
16001 # On all platforms except macosx, we replace x86_64 with amd64.
16002 OPENJDK_BUILD_CPU_OSARCH="amd64"
16003 fi
16004
16005
16006 OPENJDK_BUILD_CPU_JLI="$OPENJDK_BUILD_CPU"
16007 if test "x$OPENJDK_BUILD_CPU" = xx86; then
16008 OPENJDK_BUILD_CPU_JLI="i386"
16009 elif test "x$OPENJDK_BUILD_OS" != xmacosx && test "x$OPENJDK_BUILD_CPU" = xx86_64; then
16010 # On all platforms except macosx, we replace x86_64 with amd64.
16011 OPENJDK_BUILD_CPU_JLI="amd64"
16012 fi
16013 # Now setup the -D flags for building libjli.
16014 OPENJDK_BUILD_CPU_JLI_CFLAGS="-DLIBARCHNAME='\"$OPENJDK_BUILD_CPU_JLI\"'"
16015 if test "x$OPENJDK_BUILD_OS" = xsolaris; then
16016 if test "x$OPENJDK_BUILD_CPU_ARCH" = xsparc; then
16017 OPENJDK_BUILD_CPU_JLI_CFLAGS="$OPENJDK_BUILD_CPU_JLI_CFLAGS -DLIBARCH32NAME='\"sparc\"' -DLIBARCH64NAME='\"sparcv9\"'"
16018 elif test "x$OPENJDK_BUILD_CPU_ARCH" = xx86; then
16019 OPENJDK_BUILD_CPU_JLI_CFLAGS="$OPENJDK_BUILD_CPU_JLI_CFLAGS -DLIBARCH32NAME='\"i386\"' -DLIBARCH64NAME='\"amd64\"'"
16020 fi
16021 fi
16022
16023
16024 if test "x$OPENJDK_BUILD_OS" = xmacosx; then
16025 OPENJDK_BUILD_OS_EXPORT_DIR=macosx
16026 else
16027 OPENJDK_BUILD_OS_EXPORT_DIR=${OPENJDK_BUILD_OS_TYPE}
16028 fi
16029
16030
16031 # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
16032 # Macosx is osx and x86_64 is x64
16033 if test "x$OPENJDK_BUILD_OS" = xmacosx; then
16034 OPENJDK_BUILD_OS_BUNDLE="osx"
16035 else
16036 OPENJDK_BUILD_OS_BUNDLE="$OPENJDK_TARGET_OS"
16037 fi
16038 if test "x$OPENJDK_BUILD_CPU" = xx86_64; then
16039 OPENJDK_BUILD_CPU_BUNDLE="x64"
16040 else
16041 OPENJDK_BUILD_CPU_BUNDLE="$OPENJDK_BUILD_CPU"
16042 fi
50411 else
50412 LDFLAGS_STACK_SIZE=327680
50413 fi
50414 LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
50415 elif test "x$OPENJDK_TARGET_OS" = xlinux; then
50416 LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
50417 fi
50418
50419 LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} ${EXTRA_LDFLAGS_JDK}"
50420
50421 # Customize LDFLAGS for libs
50422 LDFLAGS_JDKLIB="${LDFLAGS_JDK}"
50423
50424 LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"
50425 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
50426 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \
50427 -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base"
50428 JDKLIB_LIBS=""
50429 else
50430 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \
50431 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)"
50432
50433 if test "xTARGET" = "xTARGET"; then
50434 # On some platforms (mac) the linker warns about non existing -L dirs.
50435 # Add server first if available. Linking aginst client does not always produce the same results.
50436 # Only add client/minimal dir if client/minimal is being built.
50437 # Default to server for other variants.
50438 if [[ " $JVM_VARIANTS " =~ " server " ]] ; then
50439 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server"
50440 elif [[ " $JVM_VARIANTS " =~ " client " ]] ; then
50441 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/client"
50442 elif [[ " $JVM_VARIANTS " =~ " minimal " ]] ; then
50443 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/minimal"
50444 else
50445 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server"
50446 fi
50447 elif test "xTARGET" = "xBUILD"; then
50448 # When building a buildjdk, it's always only the server variant
50449 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \
50450 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server"
50451 fi
50452
50453 JDKLIB_LIBS="-ljava -ljvm"
50454 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
50455 JDKLIB_LIBS="$JDKLIB_LIBS -lc"
50456 fi
50457
50458 fi
50459
50460 LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${JAVA_BASE_LDFLAGS}"
50461
50462 # Set JVM_LIBS (per os)
50463 if test "x$OPENJDK_TARGET_OS" = xlinux; then
50464 JVM_LIBS="$JVM_LIBS -lm -ldl -lpthread"
50465 elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
50466 # FIXME: This hard-coded path is not really proper.
50467 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
50468 SOLARIS_LIBM_LIBS="/usr/lib/amd64/libm.so.1"
50469 elif test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
50470 SOLARIS_LIBM_LIBS="/usr/lib/sparcv9/libm.so.1"
51235 else
51236 LDFLAGS_STACK_SIZE=327680
51237 fi
51238 OPENJDK_BUILD_LDFLAGS_JDKEXE="${OPENJDK_BUILD_LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
51239 elif test "x$OPENJDK_BUILD_OS" = xlinux; then
51240 OPENJDK_BUILD_LDFLAGS_JDKEXE="$OPENJDK_BUILD_LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
51241 fi
51242
51243 OPENJDK_BUILD_LDFLAGS_JDKEXE="${OPENJDK_BUILD_LDFLAGS_JDKEXE} ${OPENJDK_BUILD_EXTRA_LDFLAGS_JDK}"
51244
51245 # Customize LDFLAGS for libs
51246 OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDK}"
51247
51248 OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"
51249 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
51250 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \
51251 -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base"
51252 OPENJDK_BUILD_JDKLIB_LIBS=""
51253 else
51254 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \
51255 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)"
51256
51257 if test "xBUILD" = "xTARGET"; then
51258 # On some platforms (mac) the linker warns about non existing -L dirs.
51259 # Add server first if available. Linking aginst client does not always produce the same results.
51260 # Only add client/minimal dir if client/minimal is being built.
51261 # Default to server for other variants.
51262 if [[ " $JVM_VARIANTS " =~ " server " ]] ; then
51263 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server"
51264 elif [[ " $JVM_VARIANTS " =~ " client " ]] ; then
51265 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/client"
51266 elif [[ " $JVM_VARIANTS " =~ " minimal " ]] ; then
51267 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/minimal"
51268 else
51269 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server"
51270 fi
51271 elif test "xBUILD" = "xBUILD"; then
51272 # When building a buildjdk, it's always only the server variant
51273 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \
51274 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server"
51275 fi
51276
51277 OPENJDK_BUILD_JDKLIB_LIBS="-ljava -ljvm"
51278 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
51279 OPENJDK_BUILD_JDKLIB_LIBS="$OPENJDK_BUILD_JDKLIB_LIBS -lc"
51280 fi
51281
51282 fi
51283
51284 OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} ${OPENJDK_BUILD_JAVA_BASE_LDFLAGS}"
51285
51286 # Set OPENJDK_BUILD_JVM_LIBS (per os)
51287 if test "x$OPENJDK_BUILD_OS" = xlinux; then
51288 OPENJDK_BUILD_JVM_LIBS="$OPENJDK_BUILD_JVM_LIBS -lm -ldl -lpthread"
51289 elif test "x$OPENJDK_BUILD_OS" = xsolaris; then
51290 # FIXME: This hard-coded path is not really proper.
51291 if test "x$OPENJDK_BUILD_CPU" = xx86_64; then
51292 OPENJDK_BUILD_SOLARIS_LIBM_LIBS="/usr/lib/amd64/libm.so.1"
51293 elif test "x$OPENJDK_BUILD_CPU" = xsparcv9; then
51294 OPENJDK_BUILD_SOLARIS_LIBM_LIBS="/usr/lib/sparcv9/libm.so.1"
|
969 VALID_JVM_VARIANTS
970 JVM_VARIANTS
971 DEBUG_LEVEL
972 HOTSPOT_DEBUG_LEVEL
973 JDK_VARIANT
974 USERNAME
975 CANONICAL_TOPDIR
976 ORIGINAL_TOPDIR
977 TOPDIR
978 PATH_SEP
979 ZERO_ARCHDEF
980 HOTSPOT_BUILD_CPU_DEFINE
981 HOTSPOT_BUILD_CPU_ARCH
982 HOTSPOT_BUILD_CPU
983 HOTSPOT_BUILD_OS_TYPE
984 HOTSPOT_BUILD_OS
985 OPENJDK_BUILD_BUNDLE_PLATFORM
986 OPENJDK_BUILD_CPU_BUNDLE
987 OPENJDK_BUILD_OS_BUNDLE
988 OPENJDK_BUILD_OS_EXPORT_DIR
989 OPENJDK_BUILD_CPU_OSARCH
990 OPENJDK_BUILD_CPU_ISADIR
991 OPENJDK_BUILD_CPU_LEGACY_LIB
992 OPENJDK_BUILD_CPU_LEGACY
993 HOTSPOT_TARGET_CPU_DEFINE
994 HOTSPOT_TARGET_CPU_ARCH
995 HOTSPOT_TARGET_CPU
996 HOTSPOT_TARGET_OS_TYPE
997 HOTSPOT_TARGET_OS
998 DEFINE_CROSS_COMPILE_ARCH
999 LP64
1000 OPENJDK_TARGET_BUNDLE_PLATFORM
1001 OPENJDK_TARGET_CPU_BUNDLE
1002 OPENJDK_TARGET_OS_BUNDLE
1003 OPENJDK_TARGET_OS_EXPORT_DIR
1004 OPENJDK_TARGET_CPU_OSARCH
1005 OPENJDK_TARGET_CPU_ISADIR
1006 OPENJDK_TARGET_CPU_LEGACY_LIB
1007 OPENJDK_TARGET_CPU_LEGACY
1008 REQUIRED_OS_VERSION
1009 REQUIRED_OS_NAME
1010 COMPILE_TYPE
1011 OPENJDK_TARGET_CPU_ENDIAN
1012 OPENJDK_TARGET_CPU_BITS
1013 OPENJDK_TARGET_CPU_ARCH
1014 OPENJDK_TARGET_CPU
1015 OPENJDK_TARGET_OS_ENV
1016 OPENJDK_TARGET_OS_TYPE
1017 OPENJDK_TARGET_OS
1018 OPENJDK_BUILD_CPU_ENDIAN
1019 OPENJDK_BUILD_CPU_BITS
1020 OPENJDK_BUILD_CPU_ARCH
1021 OPENJDK_BUILD_CPU
1022 OPENJDK_BUILD_OS_ENV
1023 OPENJDK_BUILD_OS_TYPE
1024 OPENJDK_BUILD_OS
1025 OPENJDK_BUILD_AUTOCONF_NAME
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086 # This line needs to be here, verbatim, after all includes and the dummy hook
5087 # definitions. It is replaced with custom functionality when building
5088 # custom sources.
5089 #CUSTOM_AUTOCONF_INCLUDE
5090
5091 # Do not change or remove the following line, it is needed for consistency checks:
5092 DATE_WHEN_GENERATED=1479475121
5093
5094 ###############################################################################
5095 #
5096 # Initialization / Boot-strapping
5097 #
5098 # The bootstrapping process needs to solve the "chicken or the egg" problem,
5099 # thus it jumps back and forth, each time gaining something needed later on.
5100 #
5101 ###############################################################################
5102
5103 # If we are requested to print additional help, do that and then exit.
5104 # This must be the very first call.
5105
5106 if test "x$CONFIGURE_PRINT_ADDITIONAL_HELP" != x; then
5107
5108 # Print available toolchains
5109 $PRINTF "The following toolchains are available as arguments to --with-toolchain-type.\n"
5110 $PRINTF "Which are valid to use depends on the build platform.\n"
5111 for toolchain in $VALID_TOOLCHAINS_all; do
5112 # Use indirect variable referencing
15774 # Ie i586 and amd64 instead of x86 and x86_64
15775 OPENJDK_TARGET_CPU_LEGACY="$OPENJDK_TARGET_CPU"
15776 if test "x$OPENJDK_TARGET_CPU" = xx86; then
15777 OPENJDK_TARGET_CPU_LEGACY="i586"
15778 elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15779 # On all platforms except MacOSX replace x86_64 with amd64.
15780 OPENJDK_TARGET_CPU_LEGACY="amd64"
15781 fi
15782
15783
15784 # And the second legacy naming of the cpu.
15785 # Ie i386 and amd64 instead of x86 and x86_64.
15786 OPENJDK_TARGET_CPU_LEGACY_LIB="$OPENJDK_TARGET_CPU"
15787 if test "x$OPENJDK_TARGET_CPU" = xx86; then
15788 OPENJDK_TARGET_CPU_LEGACY_LIB="i386"
15789 elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15790 OPENJDK_TARGET_CPU_LEGACY_LIB="amd64"
15791 fi
15792
15793
15794 # OPENJDK_TARGET_CPU_ISADIR is normally empty. On 64-bit Solaris systems, it is set to
15795 # /amd64 or /sparcv9. This string is appended to some library paths, like this:
15796 # /usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libexample.so
15797 OPENJDK_TARGET_CPU_ISADIR=""
15798 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
15799 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15800 OPENJDK_TARGET_CPU_ISADIR="/amd64"
15801 elif test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
15802 OPENJDK_TARGET_CPU_ISADIR="/sparcv9"
15803 fi
15804 fi
15805
15806
15807 # Setup OPENJDK_TARGET_CPU_OSARCH, which is used to set the os.arch Java system property
15808 OPENJDK_TARGET_CPU_OSARCH="$OPENJDK_TARGET_CPU"
15809 if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$OPENJDK_TARGET_CPU" = xx86; then
15810 # On linux only, we replace x86 with i386.
15811 OPENJDK_TARGET_CPU_OSARCH="i386"
15812 elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15813 # On all platforms except macosx, we replace x86_64 with amd64.
15814 OPENJDK_TARGET_CPU_OSARCH="amd64"
15815 fi
15816
15817
15818 OPENJDK_TARGET_CPU_JLI="$OPENJDK_TARGET_CPU"
15819 if test "x$OPENJDK_TARGET_CPU" = xx86; then
15820 OPENJDK_TARGET_CPU_JLI="i386"
15821 elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15822 # On all platforms except macosx, we replace x86_64 with amd64.
15823 OPENJDK_TARGET_CPU_JLI="amd64"
15824 fi
15825
15826 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
15827 OPENJDK_TARGET_OS_EXPORT_DIR=macosx
15828 else
15829 OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_TYPE}
15830 fi
15831
15832
15833 # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
15834 # Macosx is osx and x86_64 is x64
15835 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
15836 OPENJDK_TARGET_OS_BUNDLE="osx"
15837 else
15838 OPENJDK_TARGET_OS_BUNDLE="$OPENJDK_TARGET_OS"
15839 fi
15840 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
15841 OPENJDK_TARGET_CPU_BUNDLE="x64"
15842 else
15843 OPENJDK_TARGET_CPU_BUNDLE="$OPENJDK_TARGET_CPU"
15844 fi
15930 # Ie i586 and amd64 instead of x86 and x86_64
15931 OPENJDK_BUILD_CPU_LEGACY="$OPENJDK_BUILD_CPU"
15932 if test "x$OPENJDK_BUILD_CPU" = xx86; then
15933 OPENJDK_BUILD_CPU_LEGACY="i586"
15934 elif test "x$OPENJDK_BUILD_OS" != xmacosx && test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15935 # On all platforms except MacOSX replace x86_64 with amd64.
15936 OPENJDK_BUILD_CPU_LEGACY="amd64"
15937 fi
15938
15939
15940 # And the second legacy naming of the cpu.
15941 # Ie i386 and amd64 instead of x86 and x86_64.
15942 OPENJDK_BUILD_CPU_LEGACY_LIB="$OPENJDK_BUILD_CPU"
15943 if test "x$OPENJDK_BUILD_CPU" = xx86; then
15944 OPENJDK_BUILD_CPU_LEGACY_LIB="i386"
15945 elif test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15946 OPENJDK_BUILD_CPU_LEGACY_LIB="amd64"
15947 fi
15948
15949
15950 # OPENJDK_BUILD_CPU_ISADIR is normally empty. On 64-bit Solaris systems, it is set to
15951 # /amd64 or /sparcv9. This string is appended to some library paths, like this:
15952 # /usr/lib${OPENJDK_BUILD_CPU_ISADIR}/libexample.so
15953 OPENJDK_BUILD_CPU_ISADIR=""
15954 if test "x$OPENJDK_BUILD_OS" = xsolaris; then
15955 if test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15956 OPENJDK_BUILD_CPU_ISADIR="/amd64"
15957 elif test "x$OPENJDK_BUILD_CPU" = xsparcv9; then
15958 OPENJDK_BUILD_CPU_ISADIR="/sparcv9"
15959 fi
15960 fi
15961
15962
15963 # Setup OPENJDK_BUILD_CPU_OSARCH, which is used to set the os.arch Java system property
15964 OPENJDK_BUILD_CPU_OSARCH="$OPENJDK_BUILD_CPU"
15965 if test "x$OPENJDK_BUILD_OS" = xlinux && test "x$OPENJDK_BUILD_CPU" = xx86; then
15966 # On linux only, we replace x86 with i386.
15967 OPENJDK_BUILD_CPU_OSARCH="i386"
15968 elif test "x$OPENJDK_BUILD_OS" != xmacosx && test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15969 # On all platforms except macosx, we replace x86_64 with amd64.
15970 OPENJDK_BUILD_CPU_OSARCH="amd64"
15971 fi
15972
15973
15974 OPENJDK_BUILD_CPU_JLI="$OPENJDK_BUILD_CPU"
15975 if test "x$OPENJDK_BUILD_CPU" = xx86; then
15976 OPENJDK_BUILD_CPU_JLI="i386"
15977 elif test "x$OPENJDK_BUILD_OS" != xmacosx && test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15978 # On all platforms except macosx, we replace x86_64 with amd64.
15979 OPENJDK_BUILD_CPU_JLI="amd64"
15980 fi
15981
15982 if test "x$OPENJDK_BUILD_OS" = xmacosx; then
15983 OPENJDK_BUILD_OS_EXPORT_DIR=macosx
15984 else
15985 OPENJDK_BUILD_OS_EXPORT_DIR=${OPENJDK_BUILD_OS_TYPE}
15986 fi
15987
15988
15989 # The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
15990 # Macosx is osx and x86_64 is x64
15991 if test "x$OPENJDK_BUILD_OS" = xmacosx; then
15992 OPENJDK_BUILD_OS_BUNDLE="osx"
15993 else
15994 OPENJDK_BUILD_OS_BUNDLE="$OPENJDK_TARGET_OS"
15995 fi
15996 if test "x$OPENJDK_BUILD_CPU" = xx86_64; then
15997 OPENJDK_BUILD_CPU_BUNDLE="x64"
15998 else
15999 OPENJDK_BUILD_CPU_BUNDLE="$OPENJDK_BUILD_CPU"
16000 fi
50369 else
50370 LDFLAGS_STACK_SIZE=327680
50371 fi
50372 LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
50373 elif test "x$OPENJDK_TARGET_OS" = xlinux; then
50374 LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
50375 fi
50376
50377 LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} ${EXTRA_LDFLAGS_JDK}"
50378
50379 # Customize LDFLAGS for libs
50380 LDFLAGS_JDKLIB="${LDFLAGS_JDK}"
50381
50382 LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"
50383 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
50384 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \
50385 -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base"
50386 JDKLIB_LIBS=""
50387 else
50388 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \
50389 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base"
50390
50391 if test "xTARGET" = "xTARGET"; then
50392 # On some platforms (mac) the linker warns about non existing -L dirs.
50393 # Add server first if available. Linking aginst client does not always produce the same results.
50394 # Only add client/minimal dir if client/minimal is being built.
50395 # Default to server for other variants.
50396 if [[ " $JVM_VARIANTS " =~ " server " ]] ; then
50397 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
50398 elif [[ " $JVM_VARIANTS " =~ " client " ]] ; then
50399 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/client"
50400 elif [[ " $JVM_VARIANTS " =~ " minimal " ]] ; then
50401 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/minimal"
50402 else
50403 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
50404 fi
50405 elif test "xTARGET" = "xBUILD"; then
50406 # When building a buildjdk, it's always only the server variant
50407 JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \
50408 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
50409 fi
50410
50411 JDKLIB_LIBS="-ljava -ljvm"
50412 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
50413 JDKLIB_LIBS="$JDKLIB_LIBS -lc"
50414 fi
50415
50416 fi
50417
50418 LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${JAVA_BASE_LDFLAGS}"
50419
50420 # Set JVM_LIBS (per os)
50421 if test "x$OPENJDK_TARGET_OS" = xlinux; then
50422 JVM_LIBS="$JVM_LIBS -lm -ldl -lpthread"
50423 elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
50424 # FIXME: This hard-coded path is not really proper.
50425 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
50426 SOLARIS_LIBM_LIBS="/usr/lib/amd64/libm.so.1"
50427 elif test "x$OPENJDK_TARGET_CPU" = xsparcv9; then
50428 SOLARIS_LIBM_LIBS="/usr/lib/sparcv9/libm.so.1"
51193 else
51194 LDFLAGS_STACK_SIZE=327680
51195 fi
51196 OPENJDK_BUILD_LDFLAGS_JDKEXE="${OPENJDK_BUILD_LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
51197 elif test "x$OPENJDK_BUILD_OS" = xlinux; then
51198 OPENJDK_BUILD_LDFLAGS_JDKEXE="$OPENJDK_BUILD_LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
51199 fi
51200
51201 OPENJDK_BUILD_LDFLAGS_JDKEXE="${OPENJDK_BUILD_LDFLAGS_JDKEXE} ${OPENJDK_BUILD_EXTRA_LDFLAGS_JDK}"
51202
51203 # Customize LDFLAGS for libs
51204 OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDK}"
51205
51206 OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"
51207 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
51208 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \
51209 -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base"
51210 OPENJDK_BUILD_JDKLIB_LIBS=""
51211 else
51212 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \
51213 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base"
51214
51215 if test "xBUILD" = "xTARGET"; then
51216 # On some platforms (mac) the linker warns about non existing -L dirs.
51217 # Add server first if available. Linking aginst client does not always produce the same results.
51218 # Only add client/minimal dir if client/minimal is being built.
51219 # Default to server for other variants.
51220 if [[ " $JVM_VARIANTS " =~ " server " ]] ; then
51221 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
51222 elif [[ " $JVM_VARIANTS " =~ " client " ]] ; then
51223 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/client"
51224 elif [[ " $JVM_VARIANTS " =~ " minimal " ]] ; then
51225 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/minimal"
51226 else
51227 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
51228 fi
51229 elif test "xBUILD" = "xBUILD"; then
51230 # When building a buildjdk, it's always only the server variant
51231 OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \
51232 -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"
51233 fi
51234
51235 OPENJDK_BUILD_JDKLIB_LIBS="-ljava -ljvm"
51236 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
51237 OPENJDK_BUILD_JDKLIB_LIBS="$OPENJDK_BUILD_JDKLIB_LIBS -lc"
51238 fi
51239
51240 fi
51241
51242 OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} ${OPENJDK_BUILD_JAVA_BASE_LDFLAGS}"
51243
51244 # Set OPENJDK_BUILD_JVM_LIBS (per os)
51245 if test "x$OPENJDK_BUILD_OS" = xlinux; then
51246 OPENJDK_BUILD_JVM_LIBS="$OPENJDK_BUILD_JVM_LIBS -lm -ldl -lpthread"
51247 elif test "x$OPENJDK_BUILD_OS" = xsolaris; then
51248 # FIXME: This hard-coded path is not really proper.
51249 if test "x$OPENJDK_BUILD_CPU" = xx86_64; then
51250 OPENJDK_BUILD_SOLARIS_LIBM_LIBS="/usr/lib/amd64/libm.so.1"
51251 elif test "x$OPENJDK_BUILD_CPU" = xsparcv9; then
51252 OPENJDK_BUILD_SOLARIS_LIBM_LIBS="/usr/lib/sparcv9/libm.so.1"
|