--- a/common/autoconf/basics.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/basics.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -46,10 +46,24 @@
# Appends a string to a path variable, only adding the : when needed.
AC_DEFUN([BASIC_APPEND_TO_PATH],
[
- if test "x[$]$1" = x; then
- $1="$2"
- else
- $1="[$]$1:$2"
+ if test "x$2" != x; then
+ if test "x[$]$1" = x; then
+ $1="$2"
+ else
+ $1="[$]$1:$2"
+ fi
+ fi
+])
+
+# Prepends a string to a path variable, only adding the : when needed.
+AC_DEFUN([BASIC_PREPEND_TO_PATH],
+[
+ if test "x$2" != x; then
+ if test "x[$]$1" = x; then
+ $1="$2"
+ else
+ $1="$2:[$]$1"
+ fi
fi
])
@@ -442,43 +456,95 @@
# Locate the directory of this script.
AUTOCONF_DIR=$TOPDIR/common/autoconf
+])
+
+AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
+[
+ AC_ARG_WITH([devkit], [AS_HELP_STRING([--with-devkit],
+ [use this devkit for compilers, tools and resources])],
+ [
+ BASIC_FIXUP_PATH([with_devkit])
+ DEVKIT_ROOT="$with_devkit"
+ # Check for a meta data info file in the root of the devkit
+ if test -f "$DEVKIT_ROOT/devkit.info"; then
+ # This potentially sets the following:
+ # DEVKIT_NAME: A descriptive name of the devkit
+ # DEVKIT_TOOLCHAIN_PATH: Corresponds to --with-toolchain-path
+ # DEVKIT_EXTRA_PATH: Corresponds to --with-extra-path
+ # DEVKIT_SYSROOT: Corresponds to --with-sysroot
+ . $DEVKIT_ROOT/devkit.info
+ fi
+
+ AC_MSG_CHECKING([for devkit])
+ if test "x$DEVKIT_NAME" != x; then
+ AC_MSG_RESULT([$DEVKIT_NAME in $DEVKIT_ROOT])
+ else
+ AC_MSG_RESULT([$DEVKIT_ROOT])
+ fi
+
+ if test "x$DEVKIT_EXTRA_PATH" != x; then
+ BASIC_PREPEND_TO_PATH([EXTRA_PATH],$DEVKIT_EXTRA_PATH)
+ fi
+
+ # Fallback default of just /bin if DEVKIT_PATH is not defined
+ if test "x$DEVKIT_TOOLCHAIN_PATH" = x; then
+ DEVKIT_TOOLCHAIN_PATH="$DEVKIT_ROOT/bin"
+ fi
+ BASIC_PREPEND_TO_PATH([TOOLCHAIN_PATH],$DEVKIT_TOOLCHAIN_PATH)
+
+ # If DEVKIT_SYSROOT is set, use that, otherwise try a couple of known
+ # places for backwards compatiblity.
+ if test "x$DEVKIT_SYSROOT" != x; then
+ SYSROOT="$DEVKIT_SYSROOT"
+ elif test -d "$DEVKIT_ROOT/$host_alias/libc"; then
+ SYSROOT="$DEVKIT_ROOT/$host_alias/libc"
+ elif test -d "$DEVKIT_ROOT/$host/sys-root"; then
+ SYSROOT="$DEVKIT_ROOT/$host/sys-root"
+ fi
+ ]
+ )
+
+ # You can force the sysroot if the sysroot encoded into the compiler tools
+ # is not correct.
+ AC_ARG_WITH(sys-root, [AS_HELP_STRING([--with-sys-root],
+ [alias for --with-sysroot for backwards compatability])],
+ [SYSROOT=$with_sys_root]
+ )
+
+ AC_ARG_WITH(sysroot, [AS_HELP_STRING([--with-sysroot],
+ [use this directory as sysroot)])],
+ [SYSROOT=$with_sysroot]
+ )
+
+ AC_ARG_WITH([tools-dir], [AS_HELP_STRING([--with-tools-dir],
+ [alias for --with-toolchain-path for backwards compatibility])],
+ [BASIC_PREPEND_TO_PATH([TOOLCHAIN_PATH],$with_tools_dir)]
+ )
+
+ AC_ARG_WITH([toolchain-path], [AS_HELP_STRING([--with-toolchain-path],
+ [prepend these directories when searching for toolchain binaries (compilers etc)])],
+ [BASIC_PREPEND_TO_PATH([TOOLCHAIN_PATH],$with_toolchain_path)]
+ )
+
+ AC_ARG_WITH([extra-path], [AS_HELP_STRING([--with-extra-path],
+ [prepend these directories to the default path])],
+ [BASIC_PREPEND_TO_PATH([EXTRA_PATH],$with_extra_path)]
+ )
+
+ # Prepend the extra path to the global path
+ BASIC_PREPEND_TO_PATH([PATH],$EXTRA_PATH)
if test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
# Add extra search paths on solaris for utilities like ar and as etc...
PATH="$PATH:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin"
fi
- # You can force the sys-root if the sys-root encoded into the cross compiler tools
- # is not correct.
- AC_ARG_WITH(sys-root, [AS_HELP_STRING([--with-sys-root],
- [pass this sys-root to the compilers and tools (for cross-compiling)])])
-
- if test "x$with_sys_root" != x; then
- SYS_ROOT=$with_sys_root
- else
- SYS_ROOT=/
- fi
- AC_SUBST(SYS_ROOT)
-
- AC_ARG_WITH([tools-dir], [AS_HELP_STRING([--with-tools-dir],
- [search this directory for compilers and tools (for cross-compiling)])],
- [TOOLS_DIR=$with_tools_dir]
- )
-
- AC_ARG_WITH([devkit], [AS_HELP_STRING([--with-devkit],
- [use this directory as base for tools-dir and sys-root (for cross-compiling)])],
- [
- if test "x$with_sys_root" != x; then
- AC_MSG_ERROR([Cannot specify both --with-devkit and --with-sys-root at the same time])
- fi
- BASIC_FIXUP_PATH([with_devkit])
- BASIC_APPEND_TO_PATH([TOOLS_DIR],$with_devkit/bin)
- if test -d "$with_devkit/$host_alias/libc"; then
- SYS_ROOT=$with_devkit/$host_alias/libc
- elif test -d "$with_devkit/$host/sys-root"; then
- SYS_ROOT=$with_devkit/$host/sys-root
- fi
- ])
+ AC_MSG_CHECKING([for sysroot])
+ AC_MSG_RESULT([$SYSROOT])
+ AC_MSG_CHECKING([for toolchain path])
+ AC_MSG_RESULT([$TOOLCHAIN_PATH])
+ AC_MSG_CHECKING([for extra path])
+ AC_MSG_RESULT([$EXTRA_PATH])
])
AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
@@ -648,10 +714,10 @@
fi
if test "x$FOUND_MAKE" = x; then
- if test "x$TOOLS_DIR" != x; then
- # We have a tools-dir, check that as well before giving up.
+ if test "x$TOOLCHAIN_PATH" != x; then
+ # We have a toolchain path, check that as well before giving up.
OLD_PATH=$PATH
- PATH=$TOOLS_DIR:$PATH
+ PATH=$TOOLCHAIN_PATH:$PATH
AC_PATH_PROGS(CHECK_TOOLSDIR_GMAKE, gmake)
BASIC_CHECK_MAKE_VERSION("$CHECK_TOOLSDIR_GMAKE", [gmake in tools-dir])
if test "x$FOUND_MAKE" = x; then
--- a/common/autoconf/build-performance.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/build-performance.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -169,8 +169,8 @@
if test "x$enable_ccache" = xyes; then
AC_MSG_RESULT([yes])
OLD_PATH="$PATH"
- if test "x$TOOLS_DIR" != x; then
- PATH=$TOOLS_DIR:$PATH
+ if test "x$TOOLCHAIN_PATH" != x; then
+ PATH=$TOOLCHAIN_PATH:$PATH
fi
BASIC_REQUIRE_PROGS(CCACHE, ccache)
CCACHE_STATUS="enabled"
--- a/common/autoconf/configure.ac Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/configure.ac Wed Apr 09 09:19:42 2014 -0700
@@ -100,6 +100,9 @@
# With basic setup done, call the custom early hook.
CUSTOM_EARLY_HOOK
+# Check if we have devkits, extra paths or sysroot set.
+BASIC_SETUP_DEVKIT
+
# To properly create a configuration name, we need to have the OpenJDK target
# and options (variants and debug level) parsed.
BASIC_SETUP_OUTPUT_DIR
--- a/common/autoconf/flags.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/flags.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -119,6 +119,32 @@
# FIXME: likely bug, should be CCXXFLAGS_JDK? or one for C or CXX.
CCXXFLAGS="$CCXXFLAGS -nologo"
fi
+
+ if test "x$SYSROOT" != "x"; then
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ # Solaris Studio does not have a concept of sysroot. Instead we must
+ # make sure the default include and lib dirs are appended to each
+ # compile and link command line.
+ SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
+ SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xgcc; then
+ SYSROOT_CFLAGS="--sysroot=\"$SYSROOT\""
+ SYSROOT_LDFLAGS="--sysroot=\"$SYSROOT\""
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
+ SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
+ fi
+ # Propagate the sysroot args to hotspot
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
+ fi
+ AC_SUBST(SYSROOT_CFLAGS)
+ AC_SUBST(SYSROOT_LDFLAGS)
])
AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
@@ -421,9 +447,9 @@
LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
# Hotspot needs these set in their legacy form
- LEGACY_EXTRA_CFLAGS=$with_extra_cflags
- LEGACY_EXTRA_CXXFLAGS=$with_extra_cxxflags
- LEGACY_EXTRA_LDFLAGS=$with_extra_ldflags
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
AC_SUBST(LEGACY_EXTRA_CFLAGS)
AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
@@ -521,7 +547,13 @@
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
fi
else
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ # Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
+ # are defined in the system?
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN="
+ else
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ fi
fi
# Setup target OS define. Use OS target name but in upper case.
@@ -735,4 +767,20 @@
[COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
[COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
+
+ case "${TOOLCHAIN_TYPE}" in
+ microsoft)
+ CFLAGS_WARNINGS_ARE_ERRORS="/WX"
+ ;;
+ solstudio)
+ CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
+ ;;
+ gcc)
+ CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+ ;;
+ clang)
+ CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+ ;;
+ esac
+ AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
])
--- a/common/autoconf/generated-configure.sh Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/generated-configure.sh Wed Apr 09 09:19:42 2014 -0700
@@ -664,7 +664,6 @@
FREETYPE_LIBS
FREETYPE_CFLAGS
CUPS_CFLAGS
-OPENWIN_HOME
X_EXTRA_LIBS
X_LIBS
X_PRE_LIBS
@@ -673,6 +672,7 @@
FIXPATH
ZIP_DEBUGINFO_FILES
ENABLE_DEBUG_SYMBOLS
+CFLAGS_WARNINGS_ARE_ERRORS
COMPILER_SUPPORTS_TARGET_BITS_FLAG
ZERO_ARCHFLAG
LDFLAGS_CXX_JDK
@@ -707,6 +707,8 @@
SHARED_LIBRARY_FLAGS
CXX_FLAG_REORDER
C_FLAG_REORDER
+SYSROOT_LDFLAGS
+SYSROOT_CFLAGS
RC_FLAGS
AR_OUT_OPTION
LD_OUT_OPTION
@@ -759,7 +761,7 @@
CXX
ac_ct_PROPER_COMPILER_CXX
PROPER_COMPILER_CXX
-TOOLS_DIR_CXX
+TOOLCHAIN_PATH_CXX
POTENTIAL_CXX
OBJEXT
EXEEXT
@@ -770,11 +772,11 @@
CC
ac_ct_PROPER_COMPILER_CC
PROPER_COMPILER_CC
-TOOLS_DIR_CC
+TOOLCHAIN_PATH_CC
POTENTIAL_CC
-VS_PATH
VS_LIB
VS_INCLUDE
+VS_PATH
CYGWIN_LINK
EXE_SUFFIX
OBJ_SUFFIX
@@ -886,7 +888,6 @@
BUILD_LOG_WRAPPER
BUILD_LOG_PREVIOUS
BUILD_LOG
-SYS_ROOT
TOPDIR
PATH_SEP
ZERO_ARCHDEF
@@ -1019,9 +1020,6 @@
ac_user_opts='
enable_option_checking
with_target_bits
-with_sys_root
-with_tools_dir
-with_devkit
enable_openjdk_only
with_custom_make_dir
with_jdk_variant
@@ -1029,6 +1027,12 @@
with_jvm_variants
enable_debug
with_debug_level
+with_devkit
+with_sys_root
+with_sysroot
+with_tools_dir
+with_toolchain_path
+with_extra_path
with_conf_name
with_builddeps_conf
with_builddeps_server
@@ -1847,12 +1851,6 @@
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-target-bits build 32-bit or 64-bit binaries (for platforms that
support it), e.g. --with-target-bits=32 [guessed]
- --with-sys-root pass this sys-root to the compilers and tools (for
- cross-compiling)
- --with-tools-dir search this directory for compilers and tools (for
- cross-compiling)
- --with-devkit use this directory as base for tools-dir and
- sys-root (for cross-compiling)
--with-custom-make-dir Deprecated. Option is kept for backwards
compatibility and is ignored
--with-jdk-variant JDK variant to build (normal) [normal]
@@ -1860,8 +1858,16 @@
--with-jvm-variants JVM variants (separated by commas) to build (server,
client, minimal1, kernel, zero, zeroshark, core)
[server]
- --with-debug-level set the debug level (release, fastdebug, slowdebug)
- [release]
+ --with-debug-level set the debug level (release, fastdebug, slowdebug,
+ optimized (HotSpot build only)) [release]
+ --with-devkit use this devkit for compilers, tools and resources
+ --with-sys-root alias for --with-sysroot for backwards compatability
+ --with-sysroot use this directory as sysroot)
+ --with-tools-dir alias for --with-toolchain-path for backwards
+ compatibility
+ --with-toolchain-path prepend these directories when searching for
+ toolchain binaries (compilers etc)
+ --with-extra-path prepend these directories to the default path
--with-conf-name use this as the name of the configuration [generated
from important configuration options]
--with-builddeps-conf use this configuration file for the builddeps
@@ -3324,6 +3330,9 @@
# Appends a string to a path variable, only adding the : when needed.
+# Prepends a string to a path variable, only adding the : when needed.
+
+
# This will make sure the given variable points to a full and proper
# path. This means:
# 1) There will be no spaces in the path. On posix platforms,
@@ -3406,6 +3415,8 @@
+
+
#%%% Simple tools %%%
# Check if we have found a usable version of make
@@ -4232,7 +4243,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1394794899
+DATE_WHEN_GENERATED=1396297437
###############################################################################
#
@@ -14239,180 +14250,6 @@
# Locate the directory of this script.
AUTOCONF_DIR=$TOPDIR/common/autoconf
- if test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
- # Add extra search paths on solaris for utilities like ar and as etc...
- PATH="$PATH:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin"
- fi
-
- # You can force the sys-root if the sys-root encoded into the cross compiler tools
- # is not correct.
-
-# Check whether --with-sys-root was given.
-if test "${with_sys_root+set}" = set; then :
- withval=$with_sys_root;
-fi
-
-
- if test "x$with_sys_root" != x; then
- SYS_ROOT=$with_sys_root
- else
- SYS_ROOT=/
- fi
-
-
-
-# Check whether --with-tools-dir was given.
-if test "${with_tools_dir+set}" = set; then :
- withval=$with_tools_dir; TOOLS_DIR=$with_tools_dir
-
-fi
-
-
-
-# Check whether --with-devkit was given.
-if test "${with_devkit+set}" = set; then :
- withval=$with_devkit;
- if test "x$with_sys_root" != x; then
- as_fn_error $? "Cannot specify both --with-devkit and --with-sys-root at the same time" "$LINENO" 5
- fi
-
- if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
-
- # Input might be given as Windows format, start by converting to
- # unix format.
- path="$with_devkit"
- new_path=`$CYGPATH -u "$path"`
-
- # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
- # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
- # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
- # "foo.exe" is OK but "foo" is an error.
- #
- # This test is therefore slightly more accurate than "test -f" to check for file precense.
- # It is also a way to make sure we got the proper file name for the real test later on.
- test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
- if test "x$test_shortpath" = x; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: The path of with_devkit, which resolves as \"$path\", is invalid." >&5
-$as_echo "$as_me: The path of with_devkit, which resolves as \"$path\", is invalid." >&6;}
- as_fn_error $? "Cannot locate the the path of with_devkit" "$LINENO" 5
- fi
-
- # Call helper function which possibly converts this using DOS-style short mode.
- # If so, the updated path is stored in $new_path.
-
- input_path="$new_path"
- # Check if we need to convert this using DOS-style short mode. If the path
- # contains just simple characters, use it. Otherwise (spaces, weird characters),
- # take no chances and rewrite it.
- # Note: m4 eats our [], so we need to use [ and ] instead.
- has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
- if test "x$has_forbidden_chars" != x; then
- # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
- shortmode_path=`$CYGPATH -s -m -a "$input_path"`
- path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
- if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
- # Going to short mode and back again did indeed matter. Since short mode is
- # case insensitive, let's make it lowercase to improve readability.
- shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- # Now convert it back to Unix-stile (cygpath)
- input_path=`$CYGPATH -u "$shortmode_path"`
- new_path="$input_path"
- fi
- fi
-
- test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
- if test "x$test_cygdrive_prefix" = x; then
- # As a simple fix, exclude /usr/bin since it's not a real path.
- if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
- # The path is in a Cygwin special directory (e.g. /home). We need this converted to
- # a path prefixed by /cygdrive for fixpath to work.
- new_path="$CYGWIN_ROOT_PATH$input_path"
- fi
- fi
-
-
- if test "x$path" != "x$new_path"; then
- with_devkit="$new_path"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting with_devkit to \"$new_path\"" >&5
-$as_echo "$as_me: Rewriting with_devkit to \"$new_path\"" >&6;}
- fi
-
- elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
-
- path="$with_devkit"
- has_colon=`$ECHO $path | $GREP ^.:`
- new_path="$path"
- if test "x$has_colon" = x; then
- # Not in mixed or Windows style, start by that.
- new_path=`cmd //c echo $path`
- fi
-
-
- input_path="$new_path"
- # Check if we need to convert this using DOS-style short mode. If the path
- # contains just simple characters, use it. Otherwise (spaces, weird characters),
- # take no chances and rewrite it.
- # Note: m4 eats our [], so we need to use [ and ] instead.
- has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
- if test "x$has_forbidden_chars" != x; then
- # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
- new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- fi
-
-
- windows_path="$new_path"
- if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
- unix_path=`$CYGPATH -u "$windows_path"`
- new_path="$unix_path"
- elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
- unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
- new_path="$unix_path"
- fi
-
- if test "x$path" != "x$new_path"; then
- with_devkit="$new_path"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting with_devkit to \"$new_path\"" >&5
-$as_echo "$as_me: Rewriting with_devkit to \"$new_path\"" >&6;}
- fi
-
- # Save the first 10 bytes of this path to the storage, so fixpath can work.
- all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
-
- else
- # We're on a posix platform. Hooray! :)
- path="$with_devkit"
- has_space=`$ECHO "$path" | $GREP " "`
- if test "x$has_space" != x; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: The path of with_devkit, which resolves as \"$path\", is invalid." >&5
-$as_echo "$as_me: The path of with_devkit, which resolves as \"$path\", is invalid." >&6;}
- as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
- fi
-
- # Use eval to expand a potential ~
- eval path="$path"
- if test ! -f "$path" && test ! -d "$path"; then
- as_fn_error $? "The path of with_devkit, which resolves as \"$path\", is not found." "$LINENO" 5
- fi
-
- with_devkit="`cd "$path"; $THEPWDCMD -L`"
- fi
-
-
- if test "x$TOOLS_DIR" = x; then
- TOOLS_DIR="$with_devkit/bin"
- else
- TOOLS_DIR="$TOOLS_DIR:$with_devkit/bin"
- fi
-
- if test -d "$with_devkit/$host_alias/libc"; then
- SYS_ROOT=$with_devkit/$host_alias/libc
- elif test -d "$with_devkit/$host/sys-root"; then
- SYS_ROOT=$with_devkit/$host/sys-root
- fi
-
-fi
-
-
# Setup default logging of stdout and stderr to build.log in the output root.
BUILD_LOG='$(OUTPUT_ROOT)/build.log'
@@ -14647,6 +14484,7 @@
#
# Set the debug level
# release: no debug information, all optimizations, no asserts.
+ # optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'.
# fastdebug: debug information (-g), all optimizations, all asserts
# slowdebug: debug information (-g), no optimizations, all asserts
#
@@ -14679,6 +14517,7 @@
$as_echo "$DEBUG_LEVEL" >&6; }
if test "x$DEBUG_LEVEL" != xrelease && \
+ test "x$DEBUG_LEVEL" != xoptimized && \
test "x$DEBUG_LEVEL" != xfastdebug && \
test "x$DEBUG_LEVEL" != xslowdebug; then
as_fn_error $? "Allowed debug levels are: release, fastdebug and slowdebug" "$LINENO" 5
@@ -14715,8 +14554,30 @@
HOTSPOT_DEBUG_LEVEL="jvmg"
HOTSPOT_EXPORT="debug"
;;
+ optimized )
+ VARIANT="OPT"
+ FASTDEBUG="false"
+ DEBUG_CLASSFILES="false"
+ BUILD_VARIANT_RELEASE="-optimized"
+ HOTSPOT_DEBUG_LEVEL="optimized"
+ HOTSPOT_EXPORT="optimized"
+ ;;
esac
+ # The debug level 'optimized' is a little special because it is currently only
+ # applicable to the HotSpot build where it means to build a completely
+ # optimized version of the VM without any debugging code (like for the
+ # 'release' debug level which is called 'product' in the HotSpot build) but
+ # with the exception that it can contain additional code which is otherwise
+ # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
+ # test new and/or experimental features which are not intended for customer
+ # shipment. Because these new features need to be tested and benchmarked in
+ # real world scenarios, we want to build the containing JDK at the 'release'
+ # debug level.
+ if test "x$DEBUG_LEVEL" = xoptimized; then
+ DEBUG_LEVEL="release"
+ fi
+
#####
# Generate the legacy makefile targets for hotspot.
# The hotspot api for selecting the build artifacts, really, needs to be improved.
@@ -14775,6 +14636,291 @@
# With basic setup done, call the custom early hook.
+# Check if we have devkits, extra paths or sysroot set.
+
+
+# Check whether --with-devkit was given.
+if test "${with_devkit+set}" = set; then :
+ withval=$with_devkit;
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$with_devkit"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of with_devkit, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of with_devkit, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of with_devkit" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ with_devkit="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting with_devkit to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting with_devkit to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$with_devkit"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ with_devkit="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting with_devkit to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting with_devkit to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$with_devkit"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of with_devkit, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of with_devkit, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of with_devkit, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ with_devkit="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+ DEVKIT_ROOT="$with_devkit"
+ # Check for a meta data info file in the root of the devkit
+ if test -f "$DEVKIT_ROOT/devkit.info"; then
+ # This potentially sets the following:
+ # DEVKIT_NAME: A descriptive name of the devkit
+ # DEVKIT_TOOLCHAIN_PATH: Corresponds to --with-toolchain-path
+ # DEVKIT_EXTRA_PATH: Corresponds to --with-extra-path
+ # DEVKIT_SYSROOT: Corresponds to --with-sysroot
+ . $DEVKIT_ROOT/devkit.info
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for devkit" >&5
+$as_echo_n "checking for devkit... " >&6; }
+ if test "x$DEVKIT_NAME" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEVKIT_NAME in $DEVKIT_ROOT" >&5
+$as_echo "$DEVKIT_NAME in $DEVKIT_ROOT" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEVKIT_ROOT" >&5
+$as_echo "$DEVKIT_ROOT" >&6; }
+ fi
+
+ if test "x$DEVKIT_EXTRA_PATH" != x; then
+
+ if test "x$DEVKIT_EXTRA_PATH" != x; then
+ if test "x$EXTRA_PATH" = x; then
+ EXTRA_PATH="$DEVKIT_EXTRA_PATH"
+ else
+ EXTRA_PATH="$DEVKIT_EXTRA_PATH:$EXTRA_PATH"
+ fi
+ fi
+
+ fi
+
+ # Fallback default of just /bin if DEVKIT_PATH is not defined
+ if test "x$DEVKIT_TOOLCHAIN_PATH" = x; then
+ DEVKIT_TOOLCHAIN_PATH="$DEVKIT_ROOT/bin"
+ fi
+
+ if test "x$DEVKIT_TOOLCHAIN_PATH" != x; then
+ if test "x$TOOLCHAIN_PATH" = x; then
+ TOOLCHAIN_PATH="$DEVKIT_TOOLCHAIN_PATH"
+ else
+ TOOLCHAIN_PATH="$DEVKIT_TOOLCHAIN_PATH:$TOOLCHAIN_PATH"
+ fi
+ fi
+
+
+ # If DEVKIT_SYSROOT is set, use that, otherwise try a couple of known
+ # places for backwards compatiblity.
+ if test "x$DEVKIT_SYSROOT" != x; then
+ SYSROOT="$DEVKIT_SYSROOT"
+ elif test -d "$DEVKIT_ROOT/$host_alias/libc"; then
+ SYSROOT="$DEVKIT_ROOT/$host_alias/libc"
+ elif test -d "$DEVKIT_ROOT/$host/sys-root"; then
+ SYSROOT="$DEVKIT_ROOT/$host/sys-root"
+ fi
+
+
+fi
+
+
+ # You can force the sysroot if the sysroot encoded into the compiler tools
+ # is not correct.
+
+# Check whether --with-sys-root was given.
+if test "${with_sys_root+set}" = set; then :
+ withval=$with_sys_root; SYSROOT=$with_sys_root
+
+fi
+
+
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot; SYSROOT=$with_sysroot
+
+fi
+
+
+
+# Check whether --with-tools-dir was given.
+if test "${with_tools_dir+set}" = set; then :
+ withval=$with_tools_dir;
+ if test "x$with_tools_dir" != x; then
+ if test "x$TOOLCHAIN_PATH" = x; then
+ TOOLCHAIN_PATH="$with_tools_dir"
+ else
+ TOOLCHAIN_PATH="$with_tools_dir:$TOOLCHAIN_PATH"
+ fi
+ fi
+
+
+fi
+
+
+
+# Check whether --with-toolchain-path was given.
+if test "${with_toolchain_path+set}" = set; then :
+ withval=$with_toolchain_path;
+ if test "x$with_toolchain_path" != x; then
+ if test "x$TOOLCHAIN_PATH" = x; then
+ TOOLCHAIN_PATH="$with_toolchain_path"
+ else
+ TOOLCHAIN_PATH="$with_toolchain_path:$TOOLCHAIN_PATH"
+ fi
+ fi
+
+
+fi
+
+
+
+# Check whether --with-extra-path was given.
+if test "${with_extra_path+set}" = set; then :
+ withval=$with_extra_path;
+ if test "x$with_extra_path" != x; then
+ if test "x$EXTRA_PATH" = x; then
+ EXTRA_PATH="$with_extra_path"
+ else
+ EXTRA_PATH="$with_extra_path:$EXTRA_PATH"
+ fi
+ fi
+
+
+fi
+
+
+ # Prepend the extra path to the global path
+
+ if test "x$EXTRA_PATH" != x; then
+ if test "x$PATH" = x; then
+ PATH="$EXTRA_PATH"
+ else
+ PATH="$EXTRA_PATH:$PATH"
+ fi
+ fi
+
+
+ if test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
+ # Add extra search paths on solaris for utilities like ar and as etc...
+ PATH="$PATH:/usr/ccs/bin:/usr/sfw/bin:/opt/csw/bin"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SYSROOT" >&5
+$as_echo "$SYSROOT" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for toolchain path" >&5
+$as_echo_n "checking for toolchain path... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLCHAIN_PATH" >&5
+$as_echo "$TOOLCHAIN_PATH" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extra path" >&5
+$as_echo_n "checking for extra path... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXTRA_PATH" >&5
+$as_echo "$EXTRA_PATH" >&6; }
+
+
# To properly create a configuration name, we need to have the OpenJDK target
# and options (variants and debug level) parsed.
@@ -16082,10 +16228,10 @@
fi
if test "x$FOUND_MAKE" = x; then
- if test "x$TOOLS_DIR" != x; then
- # We have a tools-dir, check that as well before giving up.
+ if test "x$TOOLCHAIN_PATH" != x; then
+ # We have a toolchain path, check that as well before giving up.
OLD_PATH=$PATH
- PATH=$TOOLS_DIR:$PATH
+ PATH=$TOOLCHAIN_PATH:$PATH
for ac_prog in gmake
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -27207,47 +27353,62 @@
# Lets extract the variables that are set by vcvarsall.bat/vsvars32.bat/vsvars64.bat
{ $as_echo "$as_me:${as_lineno-$LINENO}: Trying to extract Visual Studio environment variables" >&5
$as_echo "$as_me: Trying to extract Visual Studio environment variables" >&6;}
- cd $OUTPUT_ROOT
- # FIXME: The code betweeen ---- was inlined from a separate script and is not properly adapted
- # to autoconf standards.
-
- #----
-
- # Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment)
- # but calculate the difference in Cygwin environment before/after running it and then
- # apply the diff.
-
- if test "x$OPENJDK_BUILD_OS_ENV" = xwindows.cygwin; then
- _vs10varsall=`cygpath -a -m -s "$VS_ENV_CMD"`
- _dosvs10varsall=`cygpath -a -w -s $_vs10varsall`
- _dosbash=`cygpath -a -w -s \`which bash\`.*`
- else
- _dosvs10varsall=`cmd //c echo $VS_ENV_CMD`
- _dosbash=`cmd //c echo \`which bash\``
- fi
-
- # generate the set of exported vars before/after the vs10 setup
- $ECHO "@echo off" > localdevenvtmp.bat
- $ECHO "$_dosbash -c \"export -p\" > localdevenvtmp.export0" >> localdevenvtmp.bat
- $ECHO "call $_dosvs10varsall $VS_ENV_ARGS" >> localdevenvtmp.bat
- $ECHO "$_dosbash -c \"export -p\" > localdevenvtmp.export1" >> localdevenvtmp.bat
+
+ # We need to create a couple of temporary files.
+ VS_ENV_TMP_DIR="$OUTPUT_ROOT/vs-env"
+ $MKDIR -p $VS_ENV_TMP_DIR
+
+ # Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
+ # Instead create a shell script which will set the relevant variables when run.
+ WINPATH_VS_ENV_CMD="$VS_ENV_CMD"
+
+ unix_path="$WINPATH_VS_ENV_CMD"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ windows_path=`$CYGPATH -m "$unix_path"`
+ WINPATH_VS_ENV_CMD="$windows_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ windows_path=`cmd //c echo $unix_path`
+ WINPATH_VS_ENV_CMD="$windows_path"
+ fi
+
+ WINPATH_BASH="$BASH"
+
+ unix_path="$WINPATH_BASH"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ windows_path=`$CYGPATH -m "$unix_path"`
+ WINPATH_BASH="$windows_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ windows_path=`cmd //c echo $unix_path`
+ WINPATH_BASH="$windows_path"
+ fi
+
+
+ # Generate a DOS batch file which runs $VS_ENV_CMD, and then creates a shell
+ # script (executable by bash) that will setup the important variables.
+ EXTRACT_VC_ENV_BAT_FILE="$VS_ENV_TMP_DIR/extract-vs-env.bat"
+ $ECHO "@echo off" > $EXTRACT_VC_ENV_BAT_FILE
+ # This will end up something like:
+ # call C:/progra~2/micros~2.0/vc/bin/amd64/vcvars64.bat
+ $ECHO "call $WINPATH_VS_ENV_CMD $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
+ # These will end up something like:
+ # C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
+ # The trailing space for everyone except PATH is no typo, but is needed due
+ # to trailing \ in the Windows paths. These will be stripped later.
+ $ECHO "$WINPATH_BASH -c 'echo VS_PATH="'\"$PATH\" > set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo VCINSTALLDIR="'\"$VCINSTALLDIR \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo WindowsSdkDir="'\"$WindowsSdkDir \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
# Now execute the newly created bat file.
- # The | cat is to stop SetEnv.Cmd to mess with system colors on msys
- cmd /c localdevenvtmp.bat | cat
-
- # apply the diff (less some non-vs10 vars named by "!")
- $SORT localdevenvtmp.export0 | $GREP -v "!" > localdevenvtmp.export0.sort
- $SORT localdevenvtmp.export1 | $GREP -v "!" > localdevenvtmp.export1.sort
- $COMM -1 -3 localdevenvtmp.export0.sort localdevenvtmp.export1.sort > localdevenv.sh
-
- # cleanup
- $RM localdevenvtmp*
- #----
+ # The | cat is to stop SetEnv.Cmd to mess with system colors on msys.
+ # Change directory so we don't need to mess with Windows paths in redirects.
+ cd $VS_ENV_TMP_DIR
+ cmd /c extract-vs-env.bat | $CAT
cd $CURDIR
- if test ! -s $OUTPUT_ROOT/localdevenv.sh; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+
+ if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not succesfully extract the envionment variables needed for the VS setup." >&5
$as_echo "$as_me: Could not succesfully extract the envionment variables needed for the VS setup." >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: Try setting --with-tools-dir to the VC/bin directory within the VS installation" >&5
@@ -27261,31 +27422,34 @@
# the configure script to find and run the compiler in the proper way.
{ $as_echo "$as_me:${as_lineno-$LINENO}: Setting extracted environment variables" >&5
$as_echo "$as_me: Setting extracted environment variables" >&6;}
- . $OUTPUT_ROOT/localdevenv.sh
+ . $VS_ENV_TMP_DIR/set-vs-env.sh
+ # Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
+ # also define VCINSTALLDIR, WindowsSdkDir and WINDOWSSDKDIR.
else
# We did not find a vsvars bat file, let's hope we are run from a VS command prompt.
{ $as_echo "$as_me:${as_lineno-$LINENO}: Cannot locate a valid Visual Studio installation, checking current environment" >&5
$as_echo "$as_me: Cannot locate a valid Visual Studio installation, checking current environment" >&6;}
fi
- # At this point, we should have corrent variables in the environment, or we can't continue.
+ # At this point, we should have correct variables in the environment, or we can't continue.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Visual Studio variables" >&5
$as_echo_n "checking for Visual Studio variables... " >&6; }
if test "x$VCINSTALLDIR" != x || test "x$WindowsSDKDir" != x || test "x$WINDOWSSDKDIR" != x; then
- if test "x$INCLUDE" = x || test "x$LIB" = x; then
+ if test "x$VS_INCLUDE" = x || test "x$VS_LIB" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: present but broken" >&5
$as_echo "present but broken" >&6; }
as_fn_error $? "Your VC command prompt seems broken, INCLUDE and/or LIB is missing." "$LINENO" 5
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
- # Remove any trailing \ from INCLUDE and LIB to avoid trouble in spec.gmk.
- VS_INCLUDE=`$ECHO "$INCLUDE" | $SED 's/\\\\$//'`
- VS_LIB=`$ECHO "$LIB" | $SED 's/\\\\$//'`
- # Remove any paths containing # (typically F#) as that messes up make
- PATH=`$ECHO "$PATH" | $SED 's/[^:#]*#[^:]*://g'`
- VS_PATH="$PATH"
+ # Remove any trailing "\" and " " from the variables.
+ VS_INCLUDE=`$ECHO "$VS_INCLUDE" | $SED 's/\\\\* *$//'`
+ VS_LIB=`$ECHO "$VS_LIB" | $SED 's/\\\\* *$//'`
+ VCINSTALLDIR=`$ECHO "$VCINSTALLDIR" | $SED 's/\\\\* *$//'`
+ WindowsSDKDir=`$ECHO "$WindowsSDKDir" | $SED 's/\\\\* *$//'`
+ WINDOWSSDKDIR=`$ECHO "$WINDOWSSDKDIR" | $SED 's/\\\\* *$//'`
+
@@ -27310,6 +27474,12 @@
as_fn_error $? "Cannot continue" "$LINENO" 5
fi
+ # Reset path to VS_PATH. It will include everything that was on PATH at the time we
+ # ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
+ PATH="$VS_PATH"
+ # The microsoft toolchain also requires INCLUDE and LIB to be set.
+ export INCLUDE="$VS_INCLUDE"
+ export LIB="$VS_LIB"
fi
# autoconf magic only relies on PATH, so update it if tools dir is specified
@@ -27323,169 +27493,11 @@
PATH="/usr/ccs/bin:$PATH"
fi
- # Finally add TOOLS_DIR at the beginning, to allow --with-tools-dir to
+ # Finally add TOOLCHAIN_PATH at the beginning, to allow --with-tools-dir to
# override all other locations.
- if test "x$TOOLS_DIR" != x; then
- PATH=$TOOLS_DIR:$PATH
- fi
-
- # If a devkit is found on the builddeps server, then prepend its path to the
- # PATH variable. If there are cross compilers available in the devkit, these
- # will be found by AC_PROG_CC et al.
- DEVKIT=
-
-
- if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
- # Source the builddeps file again, to make sure it uses the latest variables!
- . $builddepsfile
- # Look for a target and build machine specific resource!
- eval resource=\${builddep_devkit_BUILD_${rewritten_build_var}_TARGET_${rewritten_target_var}}
- if test "x$resource" = x; then
- # Ok, lets instead look for a target specific resource
- eval resource=\${builddep_devkit_TARGET_${rewritten_target_var}}
- fi
- if test "x$resource" = x; then
- # Ok, lets instead look for a build specific resource
- eval resource=\${builddep_devkit_BUILD_${rewritten_build_var}}
- fi
- if test "x$resource" = x; then
- # Ok, lets instead look for a generic resource
- # (The devkit comes from M4 and not the shell, thus no need for eval here.)
- resource=${builddep_devkit}
- fi
- if test "x$resource" != x; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for devkit" >&5
-$as_echo "$as_me: Using builddeps $resource for devkit" >&6;}
- # If the resource in the builddeps.conf file is an existing directory,
- # for example /java/linux/cups
- if test -d ${resource}; then
- depdir=${resource}
- else
-
- # devkit is for example mymodule
- # $resource is for example libs/general/libmymod_1_2_3.zip
- # $with_builddeps_server is for example ftp://mybuilddeps.myserver.com/builddeps
- # $with_builddeps_dir is for example /localhome/builddeps
- # depdir is the name of the variable into which we store the depdir, eg MYMOD
- # Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
- # unzip into the directory: /localhome/builddeps/libmymod_1_2_3
- filename=`basename $resource`
- filebase=`echo $filename | sed 's/\.[^\.]*$//'`
- filebase=${filename%%.*}
- extension=${filename#*.}
- installdir=$with_builddeps_dir/$filebase
- if test ! -f $installdir/$filename.unpacked; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency devkit from $with_builddeps_server/$resource and installing into $installdir" >&5
-$as_echo "$as_me: Downloading build dependency devkit from $with_builddeps_server/$resource and installing into $installdir" >&6;}
- if test ! -d $installdir; then
- mkdir -p $installdir
- fi
- if test ! -d $installdir; then
- as_fn_error $? "Could not create directory $installdir" "$LINENO" 5
- fi
- tmpfile=`mktemp $installdir/devkit.XXXXXXXXX`
- touch $tmpfile
- if test ! -f $tmpfile; then
- as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5
- fi
-
- # $with_builddeps_server/$resource is the ftp://abuilddeps.server.com/libs/cups.zip
- # $tmpfile is the local file name for the downloaded file.
- VALID_TOOL=no
- if test "x$BDEPS_FTP" = xwget; then
- VALID_TOOL=yes
- wget -O $tmpfile $with_builddeps_server/$resource
- fi
- if test "x$BDEPS_FTP" = xlftp; then
- VALID_TOOL=yes
- lftp -c "get $with_builddeps_server/$resource -o $tmpfile"
- fi
- if test "x$BDEPS_FTP" = xftp; then
- VALID_TOOL=yes
- FTPSERVER=`echo $with_builddeps_server/$resource | cut -f 3 -d '/'`
- FTPPATH=`echo $with_builddeps_server/$resource | cut -f 4- -d '/'`
- FTPUSERPWD=${FTPSERVER%%@*}
- if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
- FTPUSER=${userpwd%%:*}
- FTPPWD=${userpwd#*@}
- FTPSERVER=${FTPSERVER#*@}
- else
- FTPUSER=ftp
- FTPPWD=ftp
- fi
- # the "pass" command does not work on some
- # ftp clients (read ftp.exe) but if it works,
- # passive mode is better!
- ( \
- echo "user $FTPUSER $FTPPWD" ; \
- echo "pass" ; \
- echo "bin" ; \
- echo "get $FTPPATH $tmpfile" ; \
- ) | ftp -in $FTPSERVER
- fi
- if test "x$VALID_TOOL" != xyes; then
- as_fn_error $? "I do not know how to use the tool: $BDEPS_FTP" "$LINENO" 5
- fi
-
- mv $tmpfile $installdir/$filename
- if test ! -s $installdir/$filename; then
- as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5
- fi
- case "$extension" in
- zip) echo "Unzipping $installdir/$filename..."
- (cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
- ;;
- tar.gz) echo "Untaring $installdir/$filename..."
- (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
- ;;
- tgz) echo "Untaring $installdir/$filename..."
- (cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
- ;;
- *) as_fn_error $? "Cannot handle build depency archive with extension $extension" "$LINENO" 5
- ;;
- esac
- fi
- if test -f $installdir/$filename.unpacked; then
- depdir=$installdir
- fi
-
- fi
- # Source the builddeps file again, because in the previous command, the depdir
- # was updated to point at the current build dependency install directory.
- . $builddepsfile
- # Now extract variables from the builddeps.conf files.
- theroot=${builddep_devkit_ROOT}
- thecflags=${builddep_devkit_CFLAGS}
- thelibs=${builddep_devkit_LIBS}
- if test "x$depdir" = x; then
- as_fn_error $? "Could not download build dependency devkit" "$LINENO" 5
- fi
- DEVKIT=$depdir
- if test "x$theroot" != x; then
- DEVKIT="$theroot"
- fi
- if test "x$thecflags" != x; then
- DEVKIT_CFLAGS="$thecflags"
- fi
- if test "x$thelibs" != x; then
- DEVKIT_LIBS="$thelibs"
- fi
-
- # Found devkit
- PATH="$DEVKIT/bin:$PATH"
- SYS_ROOT="$DEVKIT/${rewritten_target}/sys-root"
- if test "x$x_includes" = "xNONE"; then
- x_includes="$SYS_ROOT/usr/include/X11"
- fi
- if test "x$x_libraries" = "xNONE"; then
- x_libraries="$SYS_ROOT/usr/lib"
- fi
-
-
- fi
-
- fi
-
+ if test "x$TOOLCHAIN_PATH" != x; then
+ PATH=$TOOLCHAIN_PATH:$PATH
+ fi
#
@@ -27569,59 +27581,59 @@
# used.
CC=
- # If TOOLS_DIR is set, check for all compiler names in there first
+ # If TOOLCHAIN_PATH is set, check for all compiler names in there first
# before checking the rest of the PATH.
# FIXME: Now that we prefix the TOOLS_DIR to the PATH in the PRE_DETECTION
# step, this should not be necessary.
- if test -n "$TOOLS_DIR"; then
+ if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
- PATH="$TOOLS_DIR"
+ PATH="$TOOLCHAIN_PATH"
for ac_prog in $SEARCH_LIST
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TOOLS_DIR_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $TOOLS_DIR_CC in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TOOLS_DIR_CC="$TOOLS_DIR_CC" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_TOOLS_DIR_CC="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-TOOLS_DIR_CC=$ac_cv_path_TOOLS_DIR_CC
-if test -n "$TOOLS_DIR_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLS_DIR_CC" >&5
-$as_echo "$TOOLS_DIR_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$TOOLS_DIR_CC" && break
-done
-
- CC=$TOOLS_DIR_CC
+if ${ac_cv_path_TOOLCHAIN_PATH_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TOOLCHAIN_PATH_CC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOOLCHAIN_PATH_CC="$TOOLCHAIN_PATH_CC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TOOLCHAIN_PATH_CC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TOOLCHAIN_PATH_CC=$ac_cv_path_TOOLCHAIN_PATH_CC
+if test -n "$TOOLCHAIN_PATH_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLCHAIN_PATH_CC" >&5
+$as_echo "$TOOLCHAIN_PATH_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TOOLCHAIN_PATH_CC" && break
+done
+
+ CC=$TOOLCHAIN_PATH_CC
PATH="$PATH_save"
fi
@@ -29275,59 +29287,59 @@
# used.
CXX=
- # If TOOLS_DIR is set, check for all compiler names in there first
+ # If TOOLCHAIN_PATH is set, check for all compiler names in there first
# before checking the rest of the PATH.
# FIXME: Now that we prefix the TOOLS_DIR to the PATH in the PRE_DETECTION
# step, this should not be necessary.
- if test -n "$TOOLS_DIR"; then
+ if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
- PATH="$TOOLS_DIR"
+ PATH="$TOOLCHAIN_PATH"
for ac_prog in $SEARCH_LIST
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TOOLS_DIR_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $TOOLS_DIR_CXX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TOOLS_DIR_CXX="$TOOLS_DIR_CXX" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_TOOLS_DIR_CXX="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-TOOLS_DIR_CXX=$ac_cv_path_TOOLS_DIR_CXX
-if test -n "$TOOLS_DIR_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLS_DIR_CXX" >&5
-$as_echo "$TOOLS_DIR_CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$TOOLS_DIR_CXX" && break
-done
-
- CXX=$TOOLS_DIR_CXX
+if ${ac_cv_path_TOOLCHAIN_PATH_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TOOLCHAIN_PATH_CXX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOOLCHAIN_PATH_CXX="$TOOLCHAIN_PATH_CXX" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TOOLCHAIN_PATH_CXX="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TOOLCHAIN_PATH_CXX=$ac_cv_path_TOOLCHAIN_PATH_CXX
+if test -n "$TOOLCHAIN_PATH_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLCHAIN_PATH_CXX" >&5
+$as_echo "$TOOLCHAIN_PATH_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TOOLCHAIN_PATH_CXX" && break
+done
+
+ CXX=$TOOLCHAIN_PATH_CXX
PATH="$PATH_save"
fi
@@ -40735,6 +40747,32 @@
CCXXFLAGS="$CCXXFLAGS -nologo"
fi
+ if test "x$SYSROOT" != "x"; then
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ # Solaris Studio does not have a concept of sysroot. Instead we must
+ # make sure the default include and lib dirs are appended to each
+ # compile and link command line.
+ SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
+ SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xgcc; then
+ SYSROOT_CFLAGS="--sysroot=\"$SYSROOT\""
+ SYSROOT_LDFLAGS="--sysroot=\"$SYSROOT\""
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
+ SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
+ fi
+ # Propagate the sysroot args to hotspot
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
+ fi
+
+
+
# FIXME: Currently we must test this after toolchain but before flags. Fix!
@@ -41583,9 +41621,9 @@
LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
# Hotspot needs these set in their legacy form
- LEGACY_EXTRA_CFLAGS=$with_extra_cflags
- LEGACY_EXTRA_CXXFLAGS=$with_extra_cxxflags
- LEGACY_EXTRA_LDFLAGS=$with_extra_ldflags
+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
@@ -41683,7 +41721,13 @@
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
fi
else
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ # Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
+ # are defined in the system?
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN="
+ else
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ fi
fi
# Setup target OS define. Use OS target name but in upper case.
@@ -41989,6 +42033,22 @@
+ case "${TOOLCHAIN_TYPE}" in
+ microsoft)
+ CFLAGS_WARNINGS_ARE_ERRORS="/WX"
+ ;;
+ solstudio)
+ CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
+ ;;
+ gcc)
+ CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+ ;;
+ clang)
+ CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+ ;;
+ esac
+
+
# Setup debug symbols (need objcopy from the toolchain for that)
@@ -42230,21 +42290,23 @@
# Check if the user has specified sysroot, but not --x-includes or --x-libraries.
# Make a simple check for the libraries at the sysroot, and setup --x-includes and
# --x-libraries for the sysroot, if that seems to be correct.
- if test "x$SYS_ROOT" != "x/"; then
- if test "x$x_includes" = xNONE; then
- if test -f "$SYS_ROOT/usr/X11R6/include/X11/Xlib.h"; then
- x_includes="$SYS_ROOT/usr/X11R6/include"
- elif test -f "$SYS_ROOT/usr/include/X11/Xlib.h"; then
- x_includes="$SYS_ROOT/usr/include"
- fi
- fi
- if test "x$x_libraries" = xNONE; then
- if test -f "$SYS_ROOT/usr/X11R6/lib/libX11.so"; then
- x_libraries="$SYS_ROOT/usr/X11R6/lib"
- elif test "$SYS_ROOT/usr/lib64/libX11.so" && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
- x_libraries="$SYS_ROOT/usr/lib64"
- elif test -f "$SYS_ROOT/usr/lib/libX11.so"; then
- x_libraries="$SYS_ROOT/usr/lib"
+ if test "x$OPENJDK_TARGET_OS" = "xlinux"; then
+ if test "x$SYSROOT" != "x"; then
+ if test "x$x_includes" = xNONE; then
+ if test -f "$SYSROOT/usr/X11R6/include/X11/Xlib.h"; then
+ x_includes="$SYSROOT/usr/X11R6/include"
+ elif test -f "$SYSROOT/usr/include/X11/Xlib.h"; then
+ x_includes="$SYSROOT/usr/include"
+ fi
+ fi
+ if test "x$x_libraries" = xNONE; then
+ if test -f "$SYSROOT/usr/X11R6/lib/libX11.so"; then
+ x_libraries="$SYSROOT/usr/X11R6/lib"
+ elif test "$SYSROOT/usr/lib64/libX11.so" && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+ x_libraries="$SYSROOT/usr/lib64"
+ elif test -f "$SYSROOT/usr/lib/libX11.so"; then
+ x_libraries="$SYSROOT/usr/lib"
+ fi
fi
fi
fi
@@ -42976,9 +43038,12 @@
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
OPENWIN_HOME="/usr/openwin"
- fi
-
-
+ X_CFLAGS="-I$SYSROOT$OPENWIN_HOME/include -I$SYSROOT$OPENWIN_HOME/include/X11/extensions"
+ X_LIBS="-L$SYSROOT$OPENWIN_HOME/sfw/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT$OPENWIN_HOME/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -R$OPENWIN_HOME/sfw/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -R$OPENWIN_HOME/lib$OPENJDK_TARGET_CPU_ISADIR"
+ fi
#
# Weird Sol10 something check...TODO change to try compile
@@ -43278,14 +43343,14 @@
# package installation locations.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cups headers" >&5
$as_echo_n "checking for cups headers... " >&6; }
- if test -s /opt/sfw/cups/include/cups/cups.h; then
+ if test -s $SYSROOT/opt/sfw/cups/include/cups/cups.h; then
# An SFW package seems to be installed!
CUPS_FOUND=yes
- CUPS_CFLAGS="-I/opt/sfw/cups/include"
- elif test -s /opt/csw/include/cups/cups.h; then
+ CUPS_CFLAGS="-I$SYSROOT/opt/sfw/cups/include"
+ elif test -s $SYSROOT/opt/csw/include/cups/cups.h; then
# A CSW package seems to be installed!
CUPS_FOUND=yes
- CUPS_CFLAGS="-I/opt/csw/include"
+ CUPS_CFLAGS="-I$SYSROOT/opt/csw/include"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_FOUND" >&5
$as_echo "$CUPS_FOUND" >&6; }
@@ -43878,9 +43943,11 @@
fi
fi
- if test "x$FOUND_FREETYPE" != xyes; then
- # Check modules using pkg-config, but only if we have it (ugly output results otherwise)
- if test "x$PKG_CONFIG" != x; then
+ # If we have a sysroot, assume that's where we are supposed to look and skip pkg-config.
+ if test "x$SYSROOT" = x; then
+ if test "x$FOUND_FREETYPE" != xyes; then
+ # Check modules using pkg-config, but only if we have it (ugly output results otherwise)
+ if test "x$PKG_CONFIG" != x; then
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE" >&5
@@ -43948,23 +44015,24 @@
$as_echo "yes" >&6; }
FOUND_FREETYPE=yes
fi
- if test "x$FOUND_FREETYPE" = xyes; then
- # On solaris, pkg_check adds -lz to freetype libs, which isn't necessary for us.
- FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's/-lz//g'`
- # 64-bit libs for Solaris x86 are installed in the amd64 subdirectory, change lib to lib/amd64
- if test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
- FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's?/lib?/lib/amd64?g'`
- fi
- # BDEPS_CHECK_MODULE will set FREETYPE_CFLAGS and _LIBS, but we don't get a lib path for bundling.
- if test "x$BUNDLE_FREETYPE" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Found freetype using pkg-config, but ignoring since we can not bundle that" >&5
+ if test "x$FOUND_FREETYPE" = xyes; then
+ # On solaris, pkg_check adds -lz to freetype libs, which isn't necessary for us.
+ FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's/-lz//g'`
+ # 64-bit libs for Solaris x86 are installed in the amd64 subdirectory, change lib to lib/amd64
+ if test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
+ FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's?/lib?/lib/amd64?g'`
+ fi
+ # BDEPS_CHECK_MODULE will set FREETYPE_CFLAGS and _LIBS, but we don't get a lib path for bundling.
+ if test "x$BUNDLE_FREETYPE" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found freetype using pkg-config, but ignoring since we can not bundle that" >&5
$as_echo "$as_me: Found freetype using pkg-config, but ignoring since we can not bundle that" >&6;}
- FOUND_FREETYPE=no
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype" >&5
+ FOUND_FREETYPE=no
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype" >&5
$as_echo_n "checking for freetype... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (using pkg-config)" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (using pkg-config)" >&5
$as_echo "yes (using pkg-config)" >&6; }
+ fi
fi
fi
fi
@@ -44578,12 +44646,7 @@
fi
else
- if test "x$SYS_ROOT" = "x/"; then
- FREETYPE_ROOT=
- else
- FREETYPE_ROOT="$SYS_ROOT"
- fi
- FREETYPE_BASE_DIR="$FREETYPE_ROOT/usr"
+ FREETYPE_BASE_DIR="$SYSROOT/usr"
POTENTIAL_FREETYPE_INCLUDE_PATH="$FREETYPE_BASE_DIR/include"
POTENTIAL_FREETYPE_LIB_PATH="$FREETYPE_BASE_DIR/lib"
@@ -44876,7 +44939,7 @@
if test "x$FOUND_FREETYPE" != xyes; then
- FREETYPE_BASE_DIR="$FREETYPE_ROOT/usr/X11"
+ FREETYPE_BASE_DIR="$SYSROOT/usr/X11"
POTENTIAL_FREETYPE_INCLUDE_PATH="$FREETYPE_BASE_DIR/include"
POTENTIAL_FREETYPE_LIB_PATH="$FREETYPE_BASE_DIR/lib"
@@ -45170,7 +45233,301 @@
fi
if test "x$FOUND_FREETYPE" != xyes; then
- FREETYPE_BASE_DIR="$FREETYPE_ROOT/usr"
+ FREETYPE_BASE_DIR="$SYSROOT/usr/sfw"
+
+ POTENTIAL_FREETYPE_INCLUDE_PATH="$FREETYPE_BASE_DIR/include"
+ POTENTIAL_FREETYPE_LIB_PATH="$FREETYPE_BASE_DIR/lib"
+ METHOD="well-known location"
+
+ # First check if the files exists.
+ if test -s "$POTENTIAL_FREETYPE_INCLUDE_PATH/ft2build.h"; then
+ # We found an arbitrary include file. That's a good sign.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found freetype include files at $POTENTIAL_FREETYPE_INCLUDE_PATH using $METHOD" >&5
+$as_echo "$as_me: Found freetype include files at $POTENTIAL_FREETYPE_INCLUDE_PATH using $METHOD" >&6;}
+ FOUND_FREETYPE=yes
+
+ FREETYPE_LIB_NAME="${LIBRARY_PREFIX}freetype${SHARED_LIBRARY_SUFFIX}"
+ if ! test -s "$POTENTIAL_FREETYPE_LIB_PATH/$FREETYPE_LIB_NAME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $POTENTIAL_FREETYPE_LIB_PATH/$FREETYPE_LIB_NAME. Ignoring location." >&5
+$as_echo "$as_me: Could not find $POTENTIAL_FREETYPE_LIB_PATH/$FREETYPE_LIB_NAME. Ignoring location." >&6;}
+ FOUND_FREETYPE=no
+ else
+ if test "x$OPENJDK_TARGET_OS" = xwindows; then
+ # On Windows, we will need both .lib and .dll file.
+ if ! test -s "$POTENTIAL_FREETYPE_LIB_PATH/freetype.lib"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $POTENTIAL_FREETYPE_LIB_PATH/freetype.lib. Ignoring location." >&5
+$as_echo "$as_me: Could not find $POTENTIAL_FREETYPE_LIB_PATH/freetype.lib. Ignoring location." >&6;}
+ FOUND_FREETYPE=no
+ fi
+ elif test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$OPENJDK_TARGET_CPU" = xx86_64 && test -s "$POTENTIAL_FREETYPE_LIB_PATH/amd64/$FREETYPE_LIB_NAME"; then
+ # On solaris-x86_86, default is (normally) PATH/lib/amd64. Update our guess!
+ POTENTIAL_FREETYPE_LIB_PATH="$POTENTIAL_FREETYPE_LIB_PATH/amd64"
+ fi
+ fi
+ fi
+
+ if test "x$FOUND_FREETYPE" = xyes; then
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of POTENTIAL_FREETYPE_INCLUDE_PATH, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of POTENTIAL_FREETYPE_INCLUDE_PATH, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of POTENTIAL_FREETYPE_INCLUDE_PATH" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ POTENTIAL_FREETYPE_INCLUDE_PATH="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting POTENTIAL_FREETYPE_INCLUDE_PATH to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting POTENTIAL_FREETYPE_INCLUDE_PATH to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ POTENTIAL_FREETYPE_INCLUDE_PATH="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting POTENTIAL_FREETYPE_INCLUDE_PATH to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting POTENTIAL_FREETYPE_INCLUDE_PATH to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of POTENTIAL_FREETYPE_INCLUDE_PATH, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of POTENTIAL_FREETYPE_INCLUDE_PATH, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of POTENTIAL_FREETYPE_INCLUDE_PATH, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ POTENTIAL_FREETYPE_INCLUDE_PATH="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$POTENTIAL_FREETYPE_LIB_PATH"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of POTENTIAL_FREETYPE_LIB_PATH, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of POTENTIAL_FREETYPE_LIB_PATH, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of POTENTIAL_FREETYPE_LIB_PATH" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ POTENTIAL_FREETYPE_LIB_PATH="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting POTENTIAL_FREETYPE_LIB_PATH to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting POTENTIAL_FREETYPE_LIB_PATH to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$POTENTIAL_FREETYPE_LIB_PATH"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ POTENTIAL_FREETYPE_LIB_PATH="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting POTENTIAL_FREETYPE_LIB_PATH to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting POTENTIAL_FREETYPE_LIB_PATH to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$POTENTIAL_FREETYPE_LIB_PATH"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of POTENTIAL_FREETYPE_LIB_PATH, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of POTENTIAL_FREETYPE_LIB_PATH, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of POTENTIAL_FREETYPE_LIB_PATH, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ POTENTIAL_FREETYPE_LIB_PATH="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+
+ FREETYPE_INCLUDE_PATH="$POTENTIAL_FREETYPE_INCLUDE_PATH"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype includes" >&5
+$as_echo_n "checking for freetype includes... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_INCLUDE_PATH" >&5
+$as_echo "$FREETYPE_INCLUDE_PATH" >&6; }
+ FREETYPE_LIB_PATH="$POTENTIAL_FREETYPE_LIB_PATH"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype libraries" >&5
+$as_echo_n "checking for freetype libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_LIB_PATH" >&5
+$as_echo "$FREETYPE_LIB_PATH" >&6; }
+ fi
+
+ fi
+
+ if test "x$FOUND_FREETYPE" != xyes; then
+ FREETYPE_BASE_DIR="$SYSROOT/usr"
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
POTENTIAL_FREETYPE_INCLUDE_PATH="$FREETYPE_BASE_DIR/include"
@@ -46646,7 +47003,9 @@
fi
fi
- if test "x$ALSA_FOUND" = xno; then
+ # Do not try pkg-config if we have a sysroot set.
+ if test "x$SYSROOT" = x; then
+ if test "x$ALSA_FOUND" = xno; then
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA" >&5
@@ -46714,6 +47073,7 @@
$as_echo "yes" >&6; }
ALSA_FOUND=yes
fi
+ fi
fi
if test "x$ALSA_FOUND" = xno; then
for ac_header in alsa/asoundlib.h
@@ -47593,7 +47953,7 @@
# libCrun is the c++ runtime-library with SunStudio (roughly the equivalent of gcc's libstdc++.so)
if test "x$TOOLCHAIN_TYPE" = xsolstudio && test "x$LIBCXX" = x; then
- LIBCXX="/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
+ LIBCXX="${SYSROOT}/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
fi
# TODO better (platform agnostic) test
@@ -48518,8 +48878,8 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
OLD_PATH="$PATH"
- if test "x$TOOLS_DIR" != x; then
- PATH=$TOOLS_DIR:$PATH
+ if test "x$TOOLCHAIN_PATH" != x; then
+ PATH=$TOOLCHAIN_PATH:$PATH
fi
@@ -50203,6 +50563,7 @@
printf "\n"
printf "Configuration summary:\n"
printf "* Debug level: $DEBUG_LEVEL\n"
+ printf "* HS debug level: $HOTSPOT_DEBUG_LEVEL\n"
printf "* JDK variant: $JDK_VARIANT\n"
printf "* JVM variants: $with_jvm_variants\n"
printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
--- a/common/autoconf/help.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/help.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -200,6 +200,7 @@
printf "\n"
printf "Configuration summary:\n"
printf "* Debug level: $DEBUG_LEVEL\n"
+ printf "* HS debug level: $HOTSPOT_DEBUG_LEVEL\n"
printf "* JDK variant: $JDK_VARIANT\n"
printf "* JVM variants: $with_jvm_variants\n"
printf "* OpenJDK target: OS: $OPENJDK_TARGET_OS, CPU architecture: $OPENJDK_TARGET_CPU_ARCH, address length: $OPENJDK_TARGET_CPU_BITS\n"
--- a/common/autoconf/jdk-options.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/jdk-options.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -176,6 +176,7 @@
#
# Set the debug level
# release: no debug information, all optimizations, no asserts.
+ # optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'.
# fastdebug: debug information (-g), all optimizations, all asserts
# slowdebug: debug information (-g), no optimizations, all asserts
#
@@ -189,7 +190,7 @@
], [ENABLE_DEBUG="no"])
AC_ARG_WITH([debug-level], [AS_HELP_STRING([--with-debug-level],
- [set the debug level (release, fastdebug, slowdebug) @<:@release@:>@])],
+ [set the debug level (release, fastdebug, slowdebug, optimized (HotSpot build only)) @<:@release@:>@])],
[
DEBUG_LEVEL="${withval}"
if test "x$ENABLE_DEBUG" = xyes; then
@@ -199,6 +200,7 @@
AC_MSG_RESULT([$DEBUG_LEVEL])
if test "x$DEBUG_LEVEL" != xrelease && \
+ test "x$DEBUG_LEVEL" != xoptimized && \
test "x$DEBUG_LEVEL" != xfastdebug && \
test "x$DEBUG_LEVEL" != xslowdebug; then
AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug])
@@ -235,8 +237,30 @@
HOTSPOT_DEBUG_LEVEL="jvmg"
HOTSPOT_EXPORT="debug"
;;
+ optimized )
+ VARIANT="OPT"
+ FASTDEBUG="false"
+ DEBUG_CLASSFILES="false"
+ BUILD_VARIANT_RELEASE="-optimized"
+ HOTSPOT_DEBUG_LEVEL="optimized"
+ HOTSPOT_EXPORT="optimized"
+ ;;
esac
+ # The debug level 'optimized' is a little special because it is currently only
+ # applicable to the HotSpot build where it means to build a completely
+ # optimized version of the VM without any debugging code (like for the
+ # 'release' debug level which is called 'product' in the HotSpot build) but
+ # with the exception that it can contain additional code which is otherwise
+ # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to
+ # test new and/or experimental features which are not intended for customer
+ # shipment. Because these new features need to be tested and benchmarked in
+ # real world scenarios, we want to build the containing JDK at the 'release'
+ # debug level.
+ if test "x$DEBUG_LEVEL" = xoptimized; then
+ DEBUG_LEVEL="release"
+ fi
+
#####
# Generate the legacy makefile targets for hotspot.
# The hotspot api for selecting the build artifacts, really, needs to be improved.
--- a/common/autoconf/libraries.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/libraries.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -110,21 +110,23 @@
# Check if the user has specified sysroot, but not --x-includes or --x-libraries.
# Make a simple check for the libraries at the sysroot, and setup --x-includes and
# --x-libraries for the sysroot, if that seems to be correct.
- if test "x$SYS_ROOT" != "x/"; then
- if test "x$x_includes" = xNONE; then
- if test -f "$SYS_ROOT/usr/X11R6/include/X11/Xlib.h"; then
- x_includes="$SYS_ROOT/usr/X11R6/include"
- elif test -f "$SYS_ROOT/usr/include/X11/Xlib.h"; then
- x_includes="$SYS_ROOT/usr/include"
+ if test "x$OPENJDK_TARGET_OS" = "xlinux"; then
+ if test "x$SYSROOT" != "x"; then
+ if test "x$x_includes" = xNONE; then
+ if test -f "$SYSROOT/usr/X11R6/include/X11/Xlib.h"; then
+ x_includes="$SYSROOT/usr/X11R6/include"
+ elif test -f "$SYSROOT/usr/include/X11/Xlib.h"; then
+ x_includes="$SYSROOT/usr/include"
+ fi
fi
- fi
- if test "x$x_libraries" = xNONE; then
- if test -f "$SYS_ROOT/usr/X11R6/lib/libX11.so"; then
- x_libraries="$SYS_ROOT/usr/X11R6/lib"
- elif test "$SYS_ROOT/usr/lib64/libX11.so" && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
- x_libraries="$SYS_ROOT/usr/lib64"
- elif test -f "$SYS_ROOT/usr/lib/libX11.so"; then
- x_libraries="$SYS_ROOT/usr/lib"
+ if test "x$x_libraries" = xNONE; then
+ if test -f "$SYSROOT/usr/X11R6/lib/libX11.so"; then
+ x_libraries="$SYSROOT/usr/X11R6/lib"
+ elif test "$SYSROOT/usr/lib64/libX11.so" && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+ x_libraries="$SYSROOT/usr/lib64"
+ elif test -f "$SYSROOT/usr/lib/libX11.so"; then
+ x_libraries="$SYSROOT/usr/lib"
+ fi
fi
fi
fi
@@ -146,9 +148,12 @@
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
OPENWIN_HOME="/usr/openwin"
+ X_CFLAGS="-I$SYSROOT$OPENWIN_HOME/include -I$SYSROOT$OPENWIN_HOME/include/X11/extensions"
+ X_LIBS="-L$SYSROOT$OPENWIN_HOME/sfw/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -L$SYSROOT$OPENWIN_HOME/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -R$OPENWIN_HOME/sfw/lib$OPENJDK_TARGET_CPU_ISADIR \
+ -R$OPENWIN_HOME/lib$OPENJDK_TARGET_CPU_ISADIR"
fi
- AC_SUBST(OPENWIN_HOME)
-
#
# Weird Sol10 something check...TODO change to try compile
@@ -237,14 +242,14 @@
# Getting nervous now? Lets poke around for standard Solaris third-party
# package installation locations.
AC_MSG_CHECKING([for cups headers])
- if test -s /opt/sfw/cups/include/cups/cups.h; then
+ if test -s $SYSROOT/opt/sfw/cups/include/cups/cups.h; then
# An SFW package seems to be installed!
CUPS_FOUND=yes
- CUPS_CFLAGS="-I/opt/sfw/cups/include"
- elif test -s /opt/csw/include/cups/cups.h; then
+ CUPS_CFLAGS="-I$SYSROOT/opt/sfw/cups/include"
+ elif test -s $SYSROOT/opt/csw/include/cups/cups.h; then
# A CSW package seems to be installed!
CUPS_FOUND=yes
- CUPS_CFLAGS="-I/opt/csw/include"
+ CUPS_CFLAGS="-I$SYSROOT/opt/csw/include"
fi
AC_MSG_RESULT([$CUPS_FOUND])
fi
@@ -398,24 +403,27 @@
fi
fi
- if test "x$FOUND_FREETYPE" != xyes; then
- # Check modules using pkg-config, but only if we have it (ugly output results otherwise)
- if test "x$PKG_CONFIG" != x; then
- PKG_CHECK_MODULES(FREETYPE, freetype2, [FOUND_FREETYPE=yes], [FOUND_FREETYPE=no])
- if test "x$FOUND_FREETYPE" = xyes; then
- # On solaris, pkg_check adds -lz to freetype libs, which isn't necessary for us.
- FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's/-lz//g'`
- # 64-bit libs for Solaris x86 are installed in the amd64 subdirectory, change lib to lib/amd64
- if test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
- FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's?/lib?/lib/amd64?g'`
- fi
- # BDEPS_CHECK_MODULE will set FREETYPE_CFLAGS and _LIBS, but we don't get a lib path for bundling.
- if test "x$BUNDLE_FREETYPE" = xyes; then
- AC_MSG_NOTICE([Found freetype using pkg-config, but ignoring since we can not bundle that])
- FOUND_FREETYPE=no
- else
- AC_MSG_CHECKING([for freetype])
- AC_MSG_RESULT([yes (using pkg-config)])
+ # If we have a sysroot, assume that's where we are supposed to look and skip pkg-config.
+ if test "x$SYSROOT" = x; then
+ if test "x$FOUND_FREETYPE" != xyes; then
+ # Check modules using pkg-config, but only if we have it (ugly output results otherwise)
+ if test "x$PKG_CONFIG" != x; then
+ PKG_CHECK_MODULES(FREETYPE, freetype2, [FOUND_FREETYPE=yes], [FOUND_FREETYPE=no])
+ if test "x$FOUND_FREETYPE" = xyes; then
+ # On solaris, pkg_check adds -lz to freetype libs, which isn't necessary for us.
+ FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's/-lz//g'`
+ # 64-bit libs for Solaris x86 are installed in the amd64 subdirectory, change lib to lib/amd64
+ if test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
+ FREETYPE_LIBS=`$ECHO $FREETYPE_LIBS | $SED 's?/lib?/lib/amd64?g'`
+ fi
+ # BDEPS_CHECK_MODULE will set FREETYPE_CFLAGS and _LIBS, but we don't get a lib path for bundling.
+ if test "x$BUNDLE_FREETYPE" = xyes; then
+ AC_MSG_NOTICE([Found freetype using pkg-config, but ignoring since we can not bundle that])
+ FOUND_FREETYPE=no
+ else
+ AC_MSG_CHECKING([for freetype])
+ AC_MSG_RESULT([yes (using pkg-config)])
+ fi
fi
fi
fi
@@ -433,21 +441,21 @@
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])
fi
else
- if test "x$SYS_ROOT" = "x/"; then
- FREETYPE_ROOT=
- else
- FREETYPE_ROOT="$SYS_ROOT"
- fi
- FREETYPE_BASE_DIR="$FREETYPE_ROOT/usr"
+ FREETYPE_BASE_DIR="$SYSROOT/usr"
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])
if test "x$FOUND_FREETYPE" != xyes; then
- FREETYPE_BASE_DIR="$FREETYPE_ROOT/usr/X11"
+ FREETYPE_BASE_DIR="$SYSROOT/usr/X11"
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])
fi
if test "x$FOUND_FREETYPE" != xyes; then
- FREETYPE_BASE_DIR="$FREETYPE_ROOT/usr"
+ FREETYPE_BASE_DIR="$SYSROOT/usr/sfw"
+ LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])
+ fi
+
+ if test "x$FOUND_FREETYPE" != xyes; then
+ FREETYPE_BASE_DIR="$SYSROOT/usr"
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib/x86_64-linux-gnu], [well-known location])
else
@@ -577,8 +585,11 @@
if test "x$ALSA_FOUND" = xno; then
BDEPS_CHECK_MODULE(ALSA, alsa, xxx, [ALSA_FOUND=yes], [ALSA_FOUND=no])
fi
- if test "x$ALSA_FOUND" = xno; then
- PKG_CHECK_MODULES(ALSA, alsa, [ALSA_FOUND=yes], [ALSA_FOUND=no])
+ # Do not try pkg-config if we have a sysroot set.
+ if test "x$SYSROOT" = x; then
+ if test "x$ALSA_FOUND" = xno; then
+ PKG_CHECK_MODULES(ALSA, alsa, [ALSA_FOUND=yes], [ALSA_FOUND=no])
+ fi
fi
if test "x$ALSA_FOUND" = xno; then
AC_CHECK_HEADERS([alsa/asoundlib.h],
@@ -917,7 +928,7 @@
# libCrun is the c++ runtime-library with SunStudio (roughly the equivalent of gcc's libstdc++.so)
if test "x$TOOLCHAIN_TYPE" = xsolstudio && test "x$LIBCXX" = x; then
- LIBCXX="/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
+ LIBCXX="${SYSROOT}/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
fi
# TODO better (platform agnostic) test
--- a/common/autoconf/spec.gmk.in Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/spec.gmk.in Wed Apr 09 09:19:42 2014 -0700
@@ -130,10 +130,8 @@
export LIB:=@VS_LIB@
endif
-# The sys root where standard headers and libraries are found.
-# Usually not needed since the configure script should have
-# taken it into account already when setting CFLAGS et al.
-SYS_ROOT:=@SYS_ROOT@
+SYSROOT_CFLAGS := @SYSROOT_CFLAGS@
+SYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@
# Paths to the source code
ADD_SRC_ROOT:=@ADD_SRC_ROOT@
@@ -294,7 +292,6 @@
# Necessary additional compiler flags to compile X11
X_CFLAGS:=@X_CFLAGS@
X_LIBS:=@X_LIBS@
-OPENWIN_HOME:=@OPENWIN_HOME@
# The lowest required version of macosx to enforce compatiblity for
MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
@@ -324,6 +321,8 @@
C_FLAG_DEPS:=@C_FLAG_DEPS@
CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@
+CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@
+
# Tools that potentially need to be cross compilation aware.
CC:=@FIXPATH@ @CCACHE@ @CC@
--- a/common/autoconf/toolchain.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/toolchain.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -189,6 +189,12 @@
# it for DLL resolution in runtime.
if test "x$OPENJDK_BUILD_OS" = "xwindows" && test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
+ # Reset path to VS_PATH. It will include everything that was on PATH at the time we
+ # ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
+ PATH="$VS_PATH"
+ # The microsoft toolchain also requires INCLUDE and LIB to be set.
+ export INCLUDE="$VS_INCLUDE"
+ export LIB="$VS_LIB"
fi
# autoconf magic only relies on PATH, so update it if tools dir is specified
@@ -202,29 +208,11 @@
PATH="/usr/ccs/bin:$PATH"
fi
- # Finally add TOOLS_DIR at the beginning, to allow --with-tools-dir to
+ # Finally add TOOLCHAIN_PATH at the beginning, to allow --with-tools-dir to
# override all other locations.
- if test "x$TOOLS_DIR" != x; then
- PATH=$TOOLS_DIR:$PATH
+ if test "x$TOOLCHAIN_PATH" != x; then
+ PATH=$TOOLCHAIN_PATH:$PATH
fi
-
- # If a devkit is found on the builddeps server, then prepend its path to the
- # PATH variable. If there are cross compilers available in the devkit, these
- # will be found by AC_PROG_CC et al.
- DEVKIT=
- BDEPS_CHECK_MODULE(DEVKIT, devkit, xxx,
- [
- # Found devkit
- PATH="$DEVKIT/bin:$PATH"
- SYS_ROOT="$DEVKIT/${rewritten_target}/sys-root"
- if test "x$x_includes" = "xNONE"; then
- x_includes="$SYS_ROOT/usr/include/X11"
- fi
- if test "x$x_libraries" = "xNONE"; then
- x_libraries="$SYS_ROOT/usr/lib"
- fi
- ],
- [])
])
# Restore path, etc
@@ -396,15 +384,15 @@
# used.
$1=
- # If TOOLS_DIR is set, check for all compiler names in there first
+ # If TOOLCHAIN_PATH is set, check for all compiler names in there first
# before checking the rest of the PATH.
# FIXME: Now that we prefix the TOOLS_DIR to the PATH in the PRE_DETECTION
# step, this should not be necessary.
- if test -n "$TOOLS_DIR"; then
+ if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
- PATH="$TOOLS_DIR"
- AC_PATH_PROGS(TOOLS_DIR_$1, $SEARCH_LIST)
- $1=$TOOLS_DIR_$1
+ PATH="$TOOLCHAIN_PATH"
+ AC_PATH_PROGS(TOOLCHAIN_PATH_$1, $SEARCH_LIST)
+ $1=$TOOLCHAIN_PATH_$1
PATH="$PATH_save"
fi
--- a/common/autoconf/toolchain_windows.m4 Wed Apr 02 21:59:39 2014 -0700
+++ b/common/autoconf/toolchain_windows.m4 Wed Apr 09 09:19:42 2014 -0700
@@ -141,46 +141,44 @@
# Lets extract the variables that are set by vcvarsall.bat/vsvars32.bat/vsvars64.bat
AC_MSG_NOTICE([Trying to extract Visual Studio environment variables])
- cd $OUTPUT_ROOT
- # FIXME: The code betweeen ---- was inlined from a separate script and is not properly adapted
- # to autoconf standards.
+
+ # We need to create a couple of temporary files.
+ VS_ENV_TMP_DIR="$OUTPUT_ROOT/vs-env"
+ $MKDIR -p $VS_ENV_TMP_DIR
- #----
-
- # Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment)
- # but calculate the difference in Cygwin environment before/after running it and then
- # apply the diff.
+ # Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
+ # Instead create a shell script which will set the relevant variables when run.
+ WINPATH_VS_ENV_CMD="$VS_ENV_CMD"
+ BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_VS_ENV_CMD])
+ WINPATH_BASH="$BASH"
+ BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_BASH])
- if test "x$OPENJDK_BUILD_OS_ENV" = xwindows.cygwin; then
- _vs10varsall=`cygpath -a -m -s "$VS_ENV_CMD"`
- _dosvs10varsall=`cygpath -a -w -s $_vs10varsall`
- _dosbash=`cygpath -a -w -s \`which bash\`.*`
- else
- _dosvs10varsall=`cmd //c echo $VS_ENV_CMD`
- _dosbash=`cmd //c echo \`which bash\``
- fi
-
- # generate the set of exported vars before/after the vs10 setup
- $ECHO "@echo off" > localdevenvtmp.bat
- $ECHO "$_dosbash -c \"export -p\" > localdevenvtmp.export0" >> localdevenvtmp.bat
- $ECHO "call $_dosvs10varsall $VS_ENV_ARGS" >> localdevenvtmp.bat
- $ECHO "$_dosbash -c \"export -p\" > localdevenvtmp.export1" >> localdevenvtmp.bat
+ # Generate a DOS batch file which runs $VS_ENV_CMD, and then creates a shell
+ # script (executable by bash) that will setup the important variables.
+ EXTRACT_VC_ENV_BAT_FILE="$VS_ENV_TMP_DIR/extract-vs-env.bat"
+ $ECHO "@echo off" > $EXTRACT_VC_ENV_BAT_FILE
+ # This will end up something like:
+ # call C:/progra~2/micros~2.0/vc/bin/amd64/vcvars64.bat
+ $ECHO "call $WINPATH_VS_ENV_CMD $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
+ # These will end up something like:
+ # C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
+ # The trailing space for everyone except PATH is no typo, but is needed due
+ # to trailing \ in the Windows paths. These will be stripped later.
+ $ECHO "$WINPATH_BASH -c 'echo VS_PATH="'\"$PATH\" > set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo VCINSTALLDIR="'\"$VCINSTALLDIR \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo WindowsSdkDir="'\"$WindowsSdkDir \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
+ $ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
# Now execute the newly created bat file.
- # The | cat is to stop SetEnv.Cmd to mess with system colors on msys
- cmd /c localdevenvtmp.bat | cat
+ # The | cat is to stop SetEnv.Cmd to mess with system colors on msys.
+ # Change directory so we don't need to mess with Windows paths in redirects.
+ cd $VS_ENV_TMP_DIR
+ cmd /c extract-vs-env.bat | $CAT
+ cd $CURDIR
- # apply the diff (less some non-vs10 vars named by "!")
- $SORT localdevenvtmp.export0 | $GREP -v "!" > localdevenvtmp.export0.sort
- $SORT localdevenvtmp.export1 | $GREP -v "!" > localdevenvtmp.export1.sort
- $COMM -1 -3 localdevenvtmp.export0.sort localdevenvtmp.export1.sort > localdevenv.sh
-
- # cleanup
- $RM localdevenvtmp*
- #----
- cd $CURDIR
- if test ! -s $OUTPUT_ROOT/localdevenv.sh; then
- AC_MSG_RESULT([no])
+ if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
AC_MSG_NOTICE([Could not succesfully extract the envionment variables needed for the VS setup.])
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
@@ -190,30 +188,33 @@
# Now set all paths and other env variables. This will allow the rest of
# the configure script to find and run the compiler in the proper way.
AC_MSG_NOTICE([Setting extracted environment variables])
- . $OUTPUT_ROOT/localdevenv.sh
+ . $VS_ENV_TMP_DIR/set-vs-env.sh
+ # Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
+ # also define VCINSTALLDIR, WindowsSdkDir and WINDOWSSDKDIR.
else
# We did not find a vsvars bat file, let's hope we are run from a VS command prompt.
AC_MSG_NOTICE([Cannot locate a valid Visual Studio installation, checking current environment])
fi
- # At this point, we should have corrent variables in the environment, or we can't continue.
+ # At this point, we should have correct variables in the environment, or we can't continue.
AC_MSG_CHECKING([for Visual Studio variables])
if test "x$VCINSTALLDIR" != x || test "x$WindowsSDKDir" != x || test "x$WINDOWSSDKDIR" != x; then
- if test "x$INCLUDE" = x || test "x$LIB" = x; then
+ if test "x$VS_INCLUDE" = x || test "x$VS_LIB" = x; then
AC_MSG_RESULT([present but broken])
AC_MSG_ERROR([Your VC command prompt seems broken, INCLUDE and/or LIB is missing.])
else
AC_MSG_RESULT([ok])
- # Remove any trailing \ from INCLUDE and LIB to avoid trouble in spec.gmk.
- VS_INCLUDE=`$ECHO "$INCLUDE" | $SED 's/\\\\$//'`
- VS_LIB=`$ECHO "$LIB" | $SED 's/\\\\$//'`
- # Remove any paths containing # (typically F#) as that messes up make
- PATH=`$ECHO "$PATH" | $SED 's/[[^:#]]*#[^:]*://g'`
- VS_PATH="$PATH"
+ # Remove any trailing "\" and " " from the variables.
+ VS_INCLUDE=`$ECHO "$VS_INCLUDE" | $SED 's/\\\\* *$//'`
+ VS_LIB=`$ECHO "$VS_LIB" | $SED 's/\\\\* *$//'`
+ VCINSTALLDIR=`$ECHO "$VCINSTALLDIR" | $SED 's/\\\\* *$//'`
+ WindowsSDKDir=`$ECHO "$WindowsSDKDir" | $SED 's/\\\\* *$//'`
+ WINDOWSSDKDIR=`$ECHO "$WINDOWSSDKDIR" | $SED 's/\\\\* *$//'`
+
+ AC_SUBST(VS_PATH)
AC_SUBST(VS_INCLUDE)
AC_SUBST(VS_LIB)
- AC_SUBST(VS_PATH)
fi
else
AC_MSG_RESULT([not found])
--- a/common/bin/compare.sh Wed Apr 02 21:59:39 2014 -0700
+++ b/common/bin/compare.sh Wed Apr 09 09:19:42 2014 -0700
@@ -114,7 +114,7 @@
fi
if test "x$SUFFIX" = "xproperties"; then
# Run through nawk to add possibly missing newline at end of file.
- $CAT $OTHER_FILE | $NAWK '{ print }' > $OTHER_FILE.cleaned
+ $CAT $OTHER_FILE | $NAWK '{ print }' | LC_ALL=C $SORT > $OTHER_FILE.cleaned
# Disable this exception since we aren't changing the properties cleaning method yet.
# $CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
# | $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \
--- a/common/bin/hgforest.sh Wed Apr 02 21:59:39 2014 -0700
+++ b/common/bin/hgforest.sh Wed Apr 09 09:19:42 2014 -0700
@@ -24,12 +24,53 @@
#
# Shell script for a fast parallel forest command
-command="$1"
-pull_extra_base="$2"
+
+global_opts=""
+status_output="/dev/stdout"
+qflag="false"
+vflag="false"
+while [ $# -gt 0 ]
+do
+ case $1 in
+ -q | --quiet )
+ qflag="true"
+ global_opts="${global_opts} -q"
+ status_output="/dev/null"
+ ;;
+
+ -v | --verbose )
+ vflag="true"
+ global_opts="${global_opts} -v"
+ ;;
+
+ '--' ) # no more options
+ shift; break
+ ;;
-if [ "" = "$command" ] ; then
- echo No command to hg supplied!
- exit 1
+ -*) # bad option
+ usage
+ ;;
+
+ * ) # non option
+ break
+ ;;
+ esac
+ shift
+done
+
+
+command="$1"; shift
+command_args="$@"
+
+usage() {
+ echo "usage: $0 [-q|--quiet] [-v|--verbose] [--] <command> [commands...]" > ${status_output}
+ exit 1
+}
+
+
+if [ "x" = "x$command" ] ; then
+ echo "ERROR: No command to hg supplied!"
+ usage
fi
# Clean out the temporary directory that stores the pid files.
@@ -40,17 +81,17 @@
safe_interrupt () {
if [ -d ${tmp} ]; then
if [ "`ls ${tmp}/*.pid`" != "" ]; then
- echo "Waiting for processes ( `cat ${tmp}/*.pid | tr '\n' ' '`) to terminate nicely!"
+ echo "Waiting for processes ( `cat ${tmp}/*.pid | tr '\n' ' '`) to terminate nicely!" > ${status_output}
sleep 1
# Pipe stderr to dev/null to silence kill, that complains when trying to kill
# a subprocess that has already exited.
kill -TERM `cat ${tmp}/*.pid | tr '\n' ' '` 2> /dev/null
wait
- echo Interrupt complete!
+ echo "Interrupt complete!" > ${status_output}
fi
+ rm -f -r ${tmp}
fi
- rm -f -r ${tmp}
- exit 1
+ exit 130
}
nice_exit () {
@@ -58,39 +99,44 @@
if [ "`ls ${tmp}`" != "" ]; then
wait
fi
+ rm -f -r ${tmp}
fi
- rm -f -r ${tmp}
}
trap 'safe_interrupt' INT QUIT
trap 'nice_exit' EXIT
+subrepos="corba jaxp jaxws langtools jdk hotspot nashorn"
+subrepos_extra="closed jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs"
+
# Only look in specific locations for possible forests (avoids long searches)
pull_default=""
repos=""
repos_extra=""
-if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then
- subrepos="corba jaxp jaxws langtools jdk hotspot nashorn"
- if [ -f .hg/hgrc ] ; then
- pull_default=`hg paths default`
- if [ "${pull_default}" = "" ] ; then
- echo "ERROR: Need initial clone with 'hg paths default' defined"
- exit 1
- fi
- fi
- if [ "${pull_default}" = "" ] ; then
- echo "ERROR: Need initial repository to use this script"
+if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then
+ if [ ! -f .hg/hgrc ] ; then
+ echo "ERROR: Need initial repository to use this script" > ${status_output}
exit 1
fi
+
+ pull_default=`hg paths default`
+ if [ "${pull_default}" = "" ] ; then
+ echo "ERROR: Need initial clone with 'hg paths default' defined" > ${status_output}
+ exit 1
+ fi
+
for i in ${subrepos} ; do
if [ ! -f ${i}/.hg/hgrc ] ; then
repos="${repos} ${i}"
fi
done
- if [ "${pull_extra_base}" != "" ] ; then
- subrepos_extra="closed jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs"
+ if [ "${command_args}" != "" ] ; then
pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'`
- pull_extra="${pull_extra_base}/${pull_default_tail}"
+ if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then
+ echo "ERROR: Need initial clone from non-local source" > ${status_output}
+ exit 1
+ fi
+ pull_extra="${command_args}/${pull_default_tail}"
for i in ${subrepos_extra} ; do
if [ ! -f ${i}/.hg/hgrc ] ; then
repos_extra="${repos_extra} ${i}"
@@ -100,78 +146,111 @@
at_a_time=2
# Any repos to deal with?
if [ "${repos}" = "" -a "${repos_extra}" = "" ] ; then
+ echo "No repositories to process." > ${status_output}
exit
fi
else
- hgdirs=`ls -d ./.hg ./*/.hg ./*/*/.hg ./*/*/*/.hg ./*/*/*/*/.hg 2>/dev/null`
- # Derive repository names from the .hg directory locations
- for i in ${hgdirs} ; do
- repos="${repos} `echo ${i} | sed -e 's@/.hg$@@'`"
+ for i in . ${subrepos} ${subrepos_extra} ; do
+ if [ -d ${i}/.hg ] ; then
+ repos="${repos} ${i}"
+ fi
done
+
+ # Any repos to deal with?
+ if [ "${repos}" = "" ] ; then
+ echo "No repositories to process." > ${status_output}
+ exit
+ fi
+
+ # any of the repos locked?
for i in ${repos} ; do
if [ -h ${i}/.hg/store/lock -o -f ${i}/.hg/store/lock ] ; then
locked="${i} ${locked}"
fi
done
+ if [ "${locked}" != "" ] ; then
+ echo "ERROR: These repositories are locked: ${locked}" > ${status_output}
+ exit 1
+ fi
at_a_time=8
- # Any repos to deal with?
- if [ "${repos}" = "" ] ; then
- echo "No repositories to process."
- exit
- fi
- if [ "${locked}" != "" ] ; then
- echo "These repositories are locked: ${locked}"
- exit
- fi
fi
# Echo out what repositories we do a command on.
-echo "# Repositories: ${repos} ${repos_extra}"
-echo
+echo "# Repositories: ${repos} ${repos_extra}" > ${status_output}
+
+if [ "${command}" = "serve" ] ; then
+ # "serve" is run for all the repos.
+ (
+ (
+ (
+ echo "[web]"
+ echo "description = $(basename $(pwd))"
+ echo "allow_push = *"
+ echo "push_ssl = False"
-# Run the supplied command on all repos in parallel.
-n=0
-for i in ${repos} ${repos_extra} ; do
- n=`expr ${n} '+' 1`
- repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'`
- reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'`
- pull_base="${pull_default}"
- for j in $repos_extra ; do
+ echo "[paths]"
+ for i in ${repos} ${repos_extra} ; do
+ if [ "${i}" != "." ] ; then
+ echo "/$(basename $(pwd))/${i} = ${i}"
+ else
+ echo "/$(basename $(pwd)) = $(pwd)"
+ fi
+ done
+ ) > ${tmp}/serve.web-conf
+
+ echo "serving root repo $(basename $(pwd))"
+
+ (PYTHONUNBUFFERED=true hg${global_opts} serve -A ${status_output} -E ${status_output} --pid-file ${tmp}/serve.pid --web-conf ${tmp}/serve.web-conf; echo "$?" > ${tmp}/serve.pid.rc ) 2>&1 &
+ ) 2>&1 | sed -e "s@^@serve: @" > ${status_output}
+ ) &
+else
+ # Run the supplied command on all repos in parallel.
+ n=0
+ for i in ${repos} ${repos_extra} ; do
+ n=`expr ${n} '+' 1`
+ repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'`
+ reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'`
+ pull_base="${pull_default}"
+ for j in $repos_extra ; do
if [ "$i" = "$j" ] ; then
pull_base="${pull_extra}"
fi
- done
- (
+ done
(
- if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then
- pull_newrepo="`echo ${pull_base}/${i} | sed -e 's@\([^:]/\)//*@\1@g'`"
- echo hg clone ${pull_newrepo} ${i}
- path="`dirname ${i}`"
- if [ "${path}" != "." ] ; then
- times=0
- while [ ! -d "${path}" ] ## nested repo, ensure containing dir exists
- do
- times=`expr ${times} '+' 1`
- if [ `expr ${times} '%' 10` -eq 0 ] ; then
- echo ${path} still not created, waiting...
- fi
- sleep 5
- done
+ (
+ if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then
+ pull_newrepo="`echo ${pull_base}/${i} | sed -e 's@\([^:]/\)//*@\1@g'`"
+ path="`dirname ${i}`"
+ if [ "${path}" != "." ] ; then
+ times=0
+ while [ ! -d "${path}" ] ## nested repo, ensure containing dir exists
+ do
+ times=`expr ${times} '+' 1`
+ if [ `expr ${times} '%' 10` -eq 0 ] ; then
+ echo "${path} still not created, waiting..." > ${status_output}
+ fi
+ sleep 5
+ done
+ fi
+ echo "hg clone ${pull_newrepo} ${i}" > ${status_output}
+ (PYTHONUNBUFFERED=true hg${global_opts} clone ${pull_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 &
+ else
+ echo "cd ${i} && hg${global_opts} ${command} ${command_args}" > ${status_output}
+ cd ${i} && (PYTHONUNBUFFERED=true hg${global_opts} ${command} ${command_args}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 &
fi
- (PYTHONUNBUFFERED=true hg clone ${pull_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc )&
- else
- echo "cd ${i} && hg $*"
- cd ${i} && (PYTHONUNBUFFERED=true hg "$@"; echo "$?" > ${tmp}/${repopidfile}.pid.rc )&
- fi
- echo $! > ${tmp}/${repopidfile}.pid
- ) 2>&1 | sed -e "s@^@${reponame}: @") &
+
+ echo $! > ${tmp}/${repopidfile}.pid
+ ) 2>&1 | sed -e "s@^@${reponame}: @" > ${status_output}
+ ) &
- if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then
- sleep 2
- echo Waiting 5 secs before spawning next background command.
- sleep 3
- fi
-done
+ if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then
+ sleep 2
+ echo "Waiting 5 secs before spawning next background command." > ${status_output}
+ sleep 3
+ fi
+ done
+fi
+
# Wait for all hg commands to complete
wait
@@ -181,7 +260,8 @@
for rc in ${tmp}/*.pid.rc ; do
exit_code=`cat ${rc} | tr -d ' \n\r'`
if [ "${exit_code}" != "0" ] ; then
- echo "WARNING: ${rc} exited abnormally."
+ repo="`echo ${rc} | sed -e s@^${tmp}@@ -e 's@/*\([^/]*\)\.pid\.rc$@\1@' -e 's@_@/@g'`"
+ echo "WARNING: ${repo} exited abnormally." > ${status_output}
ec=1
fi
done
--- a/make/common/NativeCompilation.gmk Wed Apr 02 21:59:39 2014 -0700
+++ b/make/common/NativeCompilation.gmk Wed Apr 09 09:19:42 2014 -0700
@@ -369,6 +369,10 @@
$$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION))
endif
+ # Add sys root specific cflags last
+ $1_EXTRA_CFLAGS += $(SYSROOT_CFLAGS)
+ $1_EXTRA_CXXFLAGS += $(SYSROOT_CFLAGS)
+
# Now call add_native_source for each source file we are going to compile.
$$(foreach p,$$($1_SRCS), \
$$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \
@@ -414,6 +418,8 @@
$1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
endif
+ $1_EXTRA_LDFLAGS += $(SYSROOT_LDFLAGS)
+
# Need to make sure TARGET is first on list
$1 := $$($1_TARGET)
ifeq ($$($1_STATIC_LIBRARY),)
--- a/make/devkit/Makefile Wed Apr 02 21:59:39 2014 -0700
+++ b/make/devkit/Makefile Wed Apr 09 09:19:42 2014 -0700
@@ -75,7 +75,7 @@
$(foreach p,$(filter-out $(me),$(platforms)),$(eval $(p) : $$(me)))
endif
-OUTPUT_ROOT = $(abspath ../../../build/devkit)
+OUTPUT_ROOT = $(abspath ../../build/devkit)
RESULT = $(OUTPUT_ROOT)/result
submakevars = HOST=$@ BUILD=$(me) \
--- a/make/devkit/Tools.gmk Wed Apr 02 21:59:39 2014 -0700
+++ b/make/devkit/Tools.gmk Wed Apr 09 09:19:42 2014 -0700
@@ -49,8 +49,8 @@
# Define external dependencies
# Latest that could be made to work.
-gcc_ver := gcc-4.7.3
-binutils_ver := binutils-2.22
+gcc_ver := gcc-4.8.2
+binutils_ver := binutils-2.24
ccache_ver := ccache-3.1.9
mpfr_ver := mpfr-3.0.1
gmp_ver := gmp-4.3.2
@@ -64,6 +64,7 @@
MPC := http://www.multiprecision.org/mpc/download/${mpc_ver}.tar.gz
# RPMs in OEL5.5
+LINUX_VERSION := OEL5.5
RPM_LIST := \
kernel-headers \
glibc-2 glibc-headers glibc-devel \
@@ -121,7 +122,7 @@
BUILDDIR := $(OUTPUT_ROOT)/$(HOST)/$(TARGET)
PREFIX := $(RESULT)/$(HOST)
TARGETDIR := $(PREFIX)/$(TARGET)
-SYSROOT := $(TARGETDIR)/sys-root
+SYSROOT := $(TARGETDIR)/sysroot
DOWNLOAD := $(OUTPUT_ROOT)/download
SRCDIR := $(OUTPUT_ROOT)/src
@@ -184,7 +185,7 @@
##########################################################################################
-# Note: MUST create a <sys-root>/usr/lib even if not really needed.
+# Note: MUST create a <sysroot>/usr/lib even if not really needed.
# gcc will use a path relative to it to resolve lib64. (x86_64).
# we're creating multi-lib compiler with 32bit libc as well, so we should
# have it anyway, but just to make sure...
@@ -459,15 +460,31 @@
##########################################################################################
+$(PREFIX)/devkit.info: FRC
+ @echo 'Creating devkit.info in the root of the kit'
+ rm -f $@
+ touch $@
+ echo '# This file describes to configure how to interpret the contents of this' >> $@
+ echo '# devkit' >> $@
+ echo '' >> $@
+ echo 'DEVKIT_NAME="$(gcc_ver) - $(LINUX_VERSION)"' >> $@
+ echo 'DEVKIT_TOOLCHAIN_PATH="$$DEVKIT_ROOT/bin"' >> $@
+ echo 'DEVKIT_SYSROOT="$$DEVKIT_ROOT/$$host/sysroot"' >> $@
+
+##########################################################################################
+
bfdlib : $(bfdlib)
binutils : $(binutils)
rpms : $(rpms)
libs : $(libs)
sysroot : rpms libs
gcc : sysroot $(gcc) $(gccpatch)
-all : binutils gcc bfdlib
+all : binutils gcc bfdlib $(PREFIX)/devkit.info
# this is only built for host. so separate.
ccache : $(ccache)
+# Force target
+FRC:
+
.PHONY : gcc all binutils bfdlib link_libs rpms libs sysroot