# HG changeset patch # User duke # Date 1499272193 -7200 # Node ID a7496bb5696807d1d5ec85968035f8a6b72f40e3 # Parent 0e685b019743b5c3618530d1114b2151333885b3# Parent e4b11da62cf90971c2dfd8ff08633f39716003fa Merge diff -r 0e685b019743 -r a7496bb56968 .hgtags-top-repo --- a/.hgtags-top-repo Fri Nov 09 14:47:22 2012 -0800 +++ b/.hgtags-top-repo Wed Jul 05 18:29:53 2017 +0200 @@ -185,3 +185,4 @@ 20ff117b509075c3aec4ee3a57990ecd5db5df9c jdk8-b61 8a3fe0ae06a8cc21347da5a18384b0aa6c2349f5 jdk8-b62 3229597524cab4239325bc3602df6c486397a511 jdk8-b63 +1c8370a55b305d35353346202bde042ba9e8a9fd jdk8-b64 diff -r 0e685b019743 -r a7496bb56968 common/autoconf/generated-configure.sh --- a/common/autoconf/generated-configure.sh Fri Nov 09 14:47:22 2012 -0800 +++ b/common/autoconf/generated-configure.sh Wed Jul 05 18:29:53 2017 +0200 @@ -1,24 +1,20 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for OpenJDK jdk8. +# Generated by GNU Autoconf 2.63 for OpenJDK jdk8. # # Report bugs to . # -# # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. -# -# +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -26,14 +22,22 @@ alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' @@ -42,13 +46,7 @@ as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else @@ -59,7 +57,7 @@ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in #( + case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -82,6 +80,13 @@ } fi +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -91,15 +96,15 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in #(( +case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done IFS=$as_save_IFS ;; @@ -111,16 +116,12 @@ fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' @@ -132,249 +133,7 @@ LANGUAGE=C export LANGUAGE -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: build-dev@openjdk.java.net about your system, including -$0: any error possibly output before this message. Then -$0: install a modern shell, or manually run the script -$0: under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - +# Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -388,12 +147,8 @@ as_basename=false fi -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - + +# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ @@ -413,19 +168,295 @@ } s/.*/./; q'` -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= @@ -442,7 +473,8 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the @@ -452,18 +484,29 @@ exit } + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( +case `echo -n x` in -n*) - case `echo 'xy\c'` in + case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; + *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -493,7 +536,7 @@ rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' + as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false @@ -512,10 +555,10 @@ if test -d "$1"; then test -d "$1/."; else - case $1 in #( + case $1 in -*)set "./$1";; esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' @@ -529,11 +572,11 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -test -n "$DJDIR" || exec 7<&0 &1 + +exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -548,6 +591,7 @@ subdirs= MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='OpenJDK' @@ -555,7 +599,6 @@ PACKAGE_VERSION='jdk8' PACKAGE_STRING='OpenJDK jdk8' PACKAGE_BUGREPORT='build-dev@openjdk.java.net' -PACKAGE_URL='http://openjdk.java.net' # Factoring default headers for most tests. ac_includes_default="\ @@ -730,6 +773,8 @@ LD_OUT_OPTION EXE_OUT_OPTION CC_OUT_OPTION +BUILD_HOTSPOT +HOTSPOT_DIST BUILD_OUTPUT OVERRIDE_SRC_ROOT ADD_SRC_ROOT @@ -934,7 +979,6 @@ program_transform_name prefix exec_prefix -PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION @@ -975,6 +1019,7 @@ with_override_jaxws with_override_hotspot with_override_jdk +with_import_hotspot with_msvcr_dll with_extra_cflags with_extra_cxxflags @@ -990,7 +1035,7 @@ with_alsa_include with_alsa_lib with_zlib -enable_static_link_stdc__ +enable_static_link_stdc++ with_num_cores with_memory_size with_sjavac_server_java @@ -1083,9 +1128,8 @@ fi case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -1130,7 +1174,8 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1156,7 +1201,8 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1360,7 +1406,8 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1376,7 +1423,8 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1406,17 +1454,17 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1433,13 +1481,15 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1462,7 +1512,8 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' @@ -1476,8 +1527,8 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1492,9 +1543,11 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" + { $as_echo "$as_me: error: working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } # Find the source files, if location was not specified. @@ -1533,11 +1586,13 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1577,7 +1632,7 @@ --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages + -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1719,6 +1774,9 @@ --with-override-jaxws use this jaxws dir for the build --with-override-hotspot use this hotspot dir for the build --with-override-jdk use this jdk dir for the build + --with-import-hotspot import hotspot binaries from this jdk image or + hotspot build dist dir instead of building from + source --with-msvcr-dll copy this msvcr100.dll into the built JDK (Windows only) [probed] --with-extra-cflags extra flags to be used when compiling jdk c-files @@ -1757,7 +1815,7 @@ LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags @@ -1777,7 +1835,6 @@ it to find libraries and programs with nonstandard names/locations. Report bugs to . -OpenJDK home page: . _ACEOF ac_status=$? fi @@ -1841,698 +1898,21 @@ if $ac_init_version; then cat <<\_ACEOF OpenJDK configure jdk8 -generated by GNU Autoconf 2.67 - -Copyright (C) 2010 Free Software Foundation, Inc. +generated by GNU Autoconf 2.63 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_cxx_try_compile LINENO -# ---------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_compile - -# ac_fn_objc_try_compile LINENO -# ----------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_objc_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_objc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_objc_try_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_cxx_try_cpp LINENO -# ------------------------ -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_cpp - -# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_cxx_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ----------------------------------------- ## -## Report this to build-dev@openjdk.java.net ## -## ----------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_cxx_check_header_mongrel - -# ac_fn_cxx_try_run LINENO -# ------------------------ -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_cxx_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_run - -# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_cxx_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_cxx_check_header_compile - -# ac_fn_cxx_compute_int LINENO EXPR VAR INCLUDES -# ---------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_cxx_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_link - -# ac_fn_cxx_check_func LINENO FUNC VAR -# ------------------------------------ -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_cxx_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_cxx_check_func - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - -} # ac_fn_c_check_header_compile cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by OpenJDK $as_me jdk8, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -2568,8 +1948,8 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done + $as_echo "PATH: $as_dir" +done IFS=$as_save_IFS } >&5 @@ -2606,9 +1986,9 @@ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) - as_fn_append ac_configure_args1 " '$ac_arg'" + ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else @@ -2624,13 +2004,13 @@ -* ) ac_must_keep_next=true ;; esac fi - as_fn_append ac_configure_args " '$ac_arg'" + ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there @@ -2642,9 +2022,11 @@ { echo - $as_echo "## ---------------- ## + cat <<\_ASBOX +## ---------------- ## ## Cache variables. ## -## ---------------- ##" +## ---------------- ## +_ASBOX echo # The following way of writing the cache mishandles newlines in values, ( @@ -2653,13 +2035,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; + *) $as_unset $ac_var ;; esac ;; esac done @@ -2678,9 +2060,11 @@ ) echo - $as_echo "## ----------------- ## + cat <<\_ASBOX +## ----------------- ## ## Output variables. ## -## ----------------- ##" +## ----------------- ## +_ASBOX echo for ac_var in $ac_subst_vars do @@ -2693,9 +2077,11 @@ echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + cat <<\_ASBOX +## ------------------- ## ## File substitutions. ## -## ------------------- ##" +## ------------------- ## +_ASBOX echo for ac_var in $ac_subst_files do @@ -2709,9 +2095,11 @@ fi if test -s confdefs.h; then - $as_echo "## ----------- ## + cat <<\_ASBOX +## ----------- ## ## confdefs.h. ## -## ----------- ##" +## ----------- ## +_ASBOX echo cat confdefs.h echo @@ -2725,53 +2113,46 @@ exit $exit_status ' 0 for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h - # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF + cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF + cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF + cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF + cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2782,23 +2163,19 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 + if test -r "$ac_site_file"; then + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } + . "$ac_site_file" fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; @@ -2806,7 +2183,7 @@ esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -2821,11 +2198,11 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; @@ -2835,17 +2212,17 @@ ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac @@ -2857,20 +2234,43 @@ esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -2897,7 +2297,9 @@ fi done if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&2;} + { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, @@ -3428,7 +2830,7 @@ # to create them # Check whether --with-custom-make-dir was given. -if test "${with_custom_make_dir+set}" = set; then : +if test "${with_custom_make_dir+set}" = set; then withval=$with_custom_make_dir; CUSTOM_MAKE_DIR=$with_custom_make_dir fi @@ -3665,7 +3067,7 @@ #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1351854415 +DATE_WHEN_GENERATED=1352751880 ############################################################################### # @@ -3682,9 +3084,9 @@ DATE_WHEN_CONFIGURED=`LANG=C date` -{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuration created at $DATE_WHEN_CONFIGURED." >&5 +{ $as_echo "$as_me:$LINENO: Configuration created at $DATE_WHEN_CONFIGURED." >&5 $as_echo "$as_me: Configuration created at $DATE_WHEN_CONFIGURED." >&6;} -{ $as_echo "$as_me:${as_lineno-$LINENO}: configure script generated at timestamp $DATE_WHEN_GENERATED." >&5 +{ $as_echo "$as_me:$LINENO: configure script generated at timestamp $DATE_WHEN_GENERATED." >&5 $as_echo "$as_me: configure script generated at timestamp $DATE_WHEN_GENERATED." >&6;} @@ -3701,9 +3103,9 @@ 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 test "${ac_cv_path_BASENAME+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_BASENAME+set}" = set; then $as_echo_n "(cached) " >&6 else case $BASENAME in @@ -3716,14 +3118,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BASENAME="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -3731,10 +3133,10 @@ fi BASENAME=$ac_cv_path_BASENAME if test -n "$BASENAME"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASENAME" >&5 + { $as_echo "$as_me:$LINENO: result: $BASENAME" >&5 $as_echo "$BASENAME" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -3749,9 +3151,11 @@ else PROG_NAME=basename fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -3760,9 +3164,9 @@ 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 test "${ac_cv_path_BASH+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_BASH+set}" = set; then $as_echo_n "(cached) " >&6 else case $BASH in @@ -3775,14 +3179,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BASH="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -3790,10 +3194,10 @@ fi BASH=$ac_cv_path_BASH if test -n "$BASH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5 + { $as_echo "$as_me:$LINENO: result: $BASH" >&5 $as_echo "$BASH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -3808,9 +3212,11 @@ else PROG_NAME=bash fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -3819,9 +3225,9 @@ 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 test "${ac_cv_path_CAT+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CAT+set}" = set; then $as_echo_n "(cached) " >&6 else case $CAT in @@ -3834,14 +3240,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CAT="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -3849,10 +3255,10 @@ fi CAT=$ac_cv_path_CAT if test -n "$CAT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CAT" >&5 + { $as_echo "$as_me:$LINENO: result: $CAT" >&5 $as_echo "$CAT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -3867,9 +3273,11 @@ else PROG_NAME=cat fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -3878,9 +3286,9 @@ 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 test "${ac_cv_path_CHMOD+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CHMOD+set}" = set; then $as_echo_n "(cached) " >&6 else case $CHMOD in @@ -3893,14 +3301,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CHMOD="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -3908,10 +3316,10 @@ fi CHMOD=$ac_cv_path_CHMOD if test -n "$CHMOD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5 + { $as_echo "$as_me:$LINENO: result: $CHMOD" >&5 $as_echo "$CHMOD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -3926,9 +3334,11 @@ else PROG_NAME=chmod fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -3937,9 +3347,9 @@ 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 test "${ac_cv_path_CMP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CMP+set}" = set; then $as_echo_n "(cached) " >&6 else case $CMP in @@ -3952,14 +3362,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CMP="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -3967,10 +3377,10 @@ fi CMP=$ac_cv_path_CMP if test -n "$CMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CMP" >&5 + { $as_echo "$as_me:$LINENO: result: $CMP" >&5 $as_echo "$CMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -3985,9 +3395,11 @@ else PROG_NAME=cmp fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -3996,9 +3408,9 @@ 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 test "${ac_cv_path_CP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CP+set}" = set; then $as_echo_n "(cached) " >&6 else case $CP in @@ -4011,14 +3423,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CP="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4026,10 +3438,10 @@ fi CP=$ac_cv_path_CP if test -n "$CP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 + { $as_echo "$as_me:$LINENO: result: $CP" >&5 $as_echo "$CP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4044,9 +3456,11 @@ else PROG_NAME=cp fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4055,9 +3469,9 @@ 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 test "${ac_cv_path_CUT+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CUT+set}" = set; then $as_echo_n "(cached) " >&6 else case $CUT in @@ -4070,14 +3484,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CUT="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4085,10 +3499,10 @@ fi CUT=$ac_cv_path_CUT if test -n "$CUT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUT" >&5 + { $as_echo "$as_me:$LINENO: result: $CUT" >&5 $as_echo "$CUT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4103,9 +3517,11 @@ else PROG_NAME=cut fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4114,9 +3530,9 @@ 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 test "${ac_cv_path_DATE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_DATE+set}" = set; then $as_echo_n "(cached) " >&6 else case $DATE in @@ -4129,14 +3545,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DATE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4144,10 +3560,10 @@ fi DATE=$ac_cv_path_DATE if test -n "$DATE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 + { $as_echo "$as_me:$LINENO: result: $DATE" >&5 $as_echo "$DATE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4162,9 +3578,11 @@ else PROG_NAME=date fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4173,9 +3591,9 @@ 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 test "${ac_cv_path_DIFF+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_DIFF+set}" = set; then $as_echo_n "(cached) " >&6 else case $DIFF in @@ -4188,14 +3606,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DIFF="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4203,10 +3621,10 @@ fi DIFF=$ac_cv_path_DIFF if test -n "$DIFF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 + { $as_echo "$as_me:$LINENO: result: $DIFF" >&5 $as_echo "$DIFF" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4221,9 +3639,11 @@ else PROG_NAME=gdiff diff fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4232,9 +3652,9 @@ 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 test "${ac_cv_path_DIRNAME+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_DIRNAME+set}" = set; then $as_echo_n "(cached) " >&6 else case $DIRNAME in @@ -4247,14 +3667,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DIRNAME="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4262,10 +3682,10 @@ fi DIRNAME=$ac_cv_path_DIRNAME if test -n "$DIRNAME"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIRNAME" >&5 + { $as_echo "$as_me:$LINENO: result: $DIRNAME" >&5 $as_echo "$DIRNAME" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4280,9 +3700,11 @@ else PROG_NAME=dirname fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4291,9 +3713,9 @@ 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 test "${ac_cv_path_ECHO+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ECHO+set}" = set; then $as_echo_n "(cached) " >&6 else case $ECHO in @@ -4306,14 +3728,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ECHO="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4321,10 +3743,10 @@ fi ECHO=$ac_cv_path_ECHO if test -n "$ECHO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ECHO" >&5 + { $as_echo "$as_me:$LINENO: result: $ECHO" >&5 $as_echo "$ECHO" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4339,9 +3761,11 @@ else PROG_NAME=echo fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4350,9 +3774,9 @@ 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 test "${ac_cv_path_EXPR+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_EXPR+set}" = set; then $as_echo_n "(cached) " >&6 else case $EXPR in @@ -4365,14 +3789,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_EXPR="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4380,10 +3804,10 @@ fi EXPR=$ac_cv_path_EXPR if test -n "$EXPR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPR" >&5 + { $as_echo "$as_me:$LINENO: result: $EXPR" >&5 $as_echo "$EXPR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4398,9 +3822,11 @@ else PROG_NAME=expr fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4409,9 +3835,9 @@ 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 test "${ac_cv_path_FILE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_FILE+set}" = set; then $as_echo_n "(cached) " >&6 else case $FILE in @@ -4424,14 +3850,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_FILE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4439,10 +3865,10 @@ fi FILE=$ac_cv_path_FILE if test -n "$FILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILE" >&5 + { $as_echo "$as_me:$LINENO: result: $FILE" >&5 $as_echo "$FILE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4457,9 +3883,11 @@ else PROG_NAME=file fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4468,9 +3896,9 @@ 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 test "${ac_cv_path_FIND+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_FIND+set}" = set; then $as_echo_n "(cached) " >&6 else case $FIND in @@ -4483,14 +3911,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_FIND="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4498,10 +3926,10 @@ fi FIND=$ac_cv_path_FIND if test -n "$FIND"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 + { $as_echo "$as_me:$LINENO: result: $FIND" >&5 $as_echo "$FIND" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4516,9 +3944,11 @@ else PROG_NAME=find fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4527,9 +3957,9 @@ 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 test "${ac_cv_path_HEAD+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_HEAD+set}" = set; then $as_echo_n "(cached) " >&6 else case $HEAD in @@ -4542,14 +3972,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_HEAD="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4557,10 +3987,10 @@ fi HEAD=$ac_cv_path_HEAD if test -n "$HEAD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HEAD" >&5 + { $as_echo "$as_me:$LINENO: result: $HEAD" >&5 $as_echo "$HEAD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4575,9 +4005,11 @@ else PROG_NAME=head fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4586,9 +4018,9 @@ 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 test "${ac_cv_path_LN+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_LN+set}" = set; then $as_echo_n "(cached) " >&6 else case $LN in @@ -4601,14 +4033,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LN="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4616,10 +4048,10 @@ fi LN=$ac_cv_path_LN if test -n "$LN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LN" >&5 + { $as_echo "$as_me:$LINENO: result: $LN" >&5 $as_echo "$LN" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4634,9 +4066,11 @@ else PROG_NAME=ln fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4645,9 +4079,9 @@ 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 test "${ac_cv_path_LS+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_LS+set}" = set; then $as_echo_n "(cached) " >&6 else case $LS in @@ -4660,14 +4094,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LS="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4675,10 +4109,10 @@ fi LS=$ac_cv_path_LS if test -n "$LS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LS" >&5 + { $as_echo "$as_me:$LINENO: result: $LS" >&5 $as_echo "$LS" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4693,9 +4127,11 @@ else PROG_NAME=ls fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4704,9 +4140,9 @@ 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 test "${ac_cv_path_MKDIR+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MKDIR+set}" = set; then $as_echo_n "(cached) " >&6 else case $MKDIR in @@ -4719,14 +4155,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MKDIR="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4734,10 +4170,10 @@ fi MKDIR=$ac_cv_path_MKDIR if test -n "$MKDIR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5 + { $as_echo "$as_me:$LINENO: result: $MKDIR" >&5 $as_echo "$MKDIR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4752,9 +4188,11 @@ else PROG_NAME=mkdir fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4763,9 +4201,9 @@ 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 test "${ac_cv_path_MKTEMP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MKTEMP+set}" = set; then $as_echo_n "(cached) " >&6 else case $MKTEMP in @@ -4778,14 +4216,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MKTEMP="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4793,10 +4231,10 @@ fi MKTEMP=$ac_cv_path_MKTEMP if test -n "$MKTEMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5 + { $as_echo "$as_me:$LINENO: result: $MKTEMP" >&5 $as_echo "$MKTEMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4811,9 +4249,11 @@ else PROG_NAME=mktemp fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4822,9 +4262,9 @@ 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 test "${ac_cv_path_MV+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MV+set}" = set; then $as_echo_n "(cached) " >&6 else case $MV in @@ -4837,14 +4277,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MV="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4852,10 +4292,10 @@ fi MV=$ac_cv_path_MV if test -n "$MV"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5 + { $as_echo "$as_me:$LINENO: result: $MV" >&5 $as_echo "$MV" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4870,9 +4310,11 @@ else PROG_NAME=mv fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4881,9 +4323,9 @@ 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 test "${ac_cv_path_PRINTF+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PRINTF+set}" = set; then $as_echo_n "(cached) " >&6 else case $PRINTF in @@ -4896,14 +4338,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PRINTF="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4911,10 +4353,10 @@ fi PRINTF=$ac_cv_path_PRINTF if test -n "$PRINTF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRINTF" >&5 + { $as_echo "$as_me:$LINENO: result: $PRINTF" >&5 $as_echo "$PRINTF" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4929,9 +4371,11 @@ else PROG_NAME=printf fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4940,9 +4384,9 @@ 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 test "${ac_cv_path_THEPWDCMD+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_THEPWDCMD+set}" = set; then $as_echo_n "(cached) " >&6 else case $THEPWDCMD in @@ -4955,14 +4399,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_THEPWDCMD="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -4970,10 +4414,10 @@ fi THEPWDCMD=$ac_cv_path_THEPWDCMD if test -n "$THEPWDCMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $THEPWDCMD" >&5 + { $as_echo "$as_me:$LINENO: result: $THEPWDCMD" >&5 $as_echo "$THEPWDCMD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -4988,9 +4432,11 @@ else PROG_NAME=pwd fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -4999,9 +4445,9 @@ 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 test "${ac_cv_path_RM+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_RM+set}" = set; then $as_echo_n "(cached) " >&6 else case $RM in @@ -5014,14 +4460,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RM="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5029,10 +4475,10 @@ fi RM=$ac_cv_path_RM if test -n "$RM"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 + { $as_echo "$as_me:$LINENO: result: $RM" >&5 $as_echo "$RM" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5047,9 +4493,11 @@ else PROG_NAME=rm fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5058,9 +4506,9 @@ 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 test "${ac_cv_path_SH+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_SH+set}" = set; then $as_echo_n "(cached) " >&6 else case $SH in @@ -5073,14 +4521,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SH="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5088,10 +4536,10 @@ fi SH=$ac_cv_path_SH if test -n "$SH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SH" >&5 + { $as_echo "$as_me:$LINENO: result: $SH" >&5 $as_echo "$SH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5106,9 +4554,11 @@ else PROG_NAME=sh fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5117,9 +4567,9 @@ 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 test "${ac_cv_path_SORT+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_SORT+set}" = set; then $as_echo_n "(cached) " >&6 else case $SORT in @@ -5132,14 +4582,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SORT="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5147,10 +4597,10 @@ fi SORT=$ac_cv_path_SORT if test -n "$SORT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SORT" >&5 + { $as_echo "$as_me:$LINENO: result: $SORT" >&5 $as_echo "$SORT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5165,9 +4615,11 @@ else PROG_NAME=sort fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5176,9 +4628,9 @@ 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 test "${ac_cv_path_TAIL+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TAIL+set}" = set; then $as_echo_n "(cached) " >&6 else case $TAIL in @@ -5191,14 +4643,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TAIL="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5206,10 +4658,10 @@ fi TAIL=$ac_cv_path_TAIL if test -n "$TAIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5 + { $as_echo "$as_me:$LINENO: result: $TAIL" >&5 $as_echo "$TAIL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5224,9 +4676,11 @@ else PROG_NAME=tail fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5235,9 +4689,9 @@ 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 test "${ac_cv_path_TAR+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TAR+set}" = set; then $as_echo_n "(cached) " >&6 else case $TAR in @@ -5250,14 +4704,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TAR="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5265,10 +4719,10 @@ fi TAR=$ac_cv_path_TAR if test -n "$TAR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5 + { $as_echo "$as_me:$LINENO: result: $TAR" >&5 $as_echo "$TAR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5283,9 +4737,11 @@ else PROG_NAME=tar fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5294,9 +4750,9 @@ 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 test "${ac_cv_path_TEE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TEE+set}" = set; then $as_echo_n "(cached) " >&6 else case $TEE in @@ -5309,14 +4765,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TEE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5324,10 +4780,10 @@ fi TEE=$ac_cv_path_TEE if test -n "$TEE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEE" >&5 + { $as_echo "$as_me:$LINENO: result: $TEE" >&5 $as_echo "$TEE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5342,9 +4798,11 @@ else PROG_NAME=tee fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5353,9 +4811,9 @@ 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 test "${ac_cv_path_TOUCH+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TOUCH+set}" = set; then $as_echo_n "(cached) " >&6 else case $TOUCH in @@ -5368,14 +4826,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TOUCH="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5383,10 +4841,10 @@ fi TOUCH=$ac_cv_path_TOUCH if test -n "$TOUCH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOUCH" >&5 + { $as_echo "$as_me:$LINENO: result: $TOUCH" >&5 $as_echo "$TOUCH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5401,9 +4859,11 @@ else PROG_NAME=touch fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5412,9 +4872,9 @@ 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 test "${ac_cv_path_TR+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TR+set}" = set; then $as_echo_n "(cached) " >&6 else case $TR in @@ -5427,14 +4887,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TR="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5442,10 +4902,10 @@ fi TR=$ac_cv_path_TR if test -n "$TR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 + { $as_echo "$as_me:$LINENO: result: $TR" >&5 $as_echo "$TR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5460,9 +4920,11 @@ else PROG_NAME=tr fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5471,9 +4933,9 @@ 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 test "${ac_cv_path_UNAME+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_UNAME+set}" = set; then $as_echo_n "(cached) " >&6 else case $UNAME in @@ -5486,14 +4948,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_UNAME="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5501,10 +4963,10 @@ fi UNAME=$ac_cv_path_UNAME if test -n "$UNAME"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNAME" >&5 + { $as_echo "$as_me:$LINENO: result: $UNAME" >&5 $as_echo "$UNAME" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5519,9 +4981,11 @@ else PROG_NAME=uname fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5530,9 +4994,9 @@ 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 test "${ac_cv_path_UNIQ+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_UNIQ+set}" = set; then $as_echo_n "(cached) " >&6 else case $UNIQ in @@ -5545,14 +5009,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_UNIQ="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5560,10 +5024,10 @@ fi UNIQ=$ac_cv_path_UNIQ if test -n "$UNIQ"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNIQ" >&5 + { $as_echo "$as_me:$LINENO: result: $UNIQ" >&5 $as_echo "$UNIQ" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5578,9 +5042,11 @@ else PROG_NAME=uniq fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5589,9 +5055,9 @@ 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 test "${ac_cv_path_WC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_WC+set}" = set; then $as_echo_n "(cached) " >&6 else case $WC in @@ -5604,14 +5070,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_WC="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5619,10 +5085,10 @@ fi WC=$ac_cv_path_WC if test -n "$WC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WC" >&5 + { $as_echo "$as_me:$LINENO: result: $WC" >&5 $as_echo "$WC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5637,9 +5103,11 @@ else PROG_NAME=wc fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5648,9 +5116,9 @@ 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 test "${ac_cv_path_WHICH+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_WHICH+set}" = set; then $as_echo_n "(cached) " >&6 else case $WHICH in @@ -5663,14 +5131,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_WHICH="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5678,10 +5146,10 @@ fi WHICH=$ac_cv_path_WHICH if test -n "$WHICH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WHICH" >&5 + { $as_echo "$as_me:$LINENO: result: $WHICH" >&5 $as_echo "$WHICH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5696,9 +5164,11 @@ else PROG_NAME=which fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5707,9 +5177,9 @@ 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 test "${ac_cv_path_XARGS+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XARGS+set}" = set; then $as_echo_n "(cached) " >&6 else case $XARGS in @@ -5722,14 +5192,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XARGS="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -5737,10 +5207,10 @@ fi XARGS=$ac_cv_path_XARGS if test -n "$XARGS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 + { $as_echo "$as_me:$LINENO: result: $XARGS" >&5 $as_echo "$XARGS" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5755,9 +5225,11 @@ else PROG_NAME=xargs fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -5767,9 +5239,9 @@ 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 test "${ac_cv_prog_AWK+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -5780,24 +5252,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 + { $as_echo "$as_me:$LINENO: result: $AWK" >&5 $as_echo "$AWK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -5812,14 +5284,16 @@ else PROG_NAME= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } + fi + +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -5830,7 +5304,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do + for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue @@ -5850,7 +5324,7 @@ $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val + ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" @@ -5865,17 +5339,19 @@ $ac_path_GREP_found && break 3 done done - done +done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" @@ -5887,14 +5363,16 @@ else PROG_NAME= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } + fi + +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -5908,7 +5386,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do + for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue @@ -5928,7 +5406,7 @@ $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val + ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" @@ -5943,10 +5421,12 @@ $ac_path_EGREP_found && break 3 done done - done +done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP @@ -5954,7 +5434,7 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" @@ -5966,14 +5446,16 @@ else PROG_NAME= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } + fi + +{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } -if test "${ac_cv_path_FGREP+set}" = set; then : +if test "${ac_cv_path_FGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 @@ -5987,7 +5469,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do + for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue @@ -6007,7 +5489,7 @@ $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val + ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" @@ -6022,10 +5504,12 @@ $ac_path_FGREP_found && break 3 done done - done +done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } fi else ac_cv_path_FGREP=$FGREP @@ -6033,7 +5517,7 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" @@ -6045,14 +5529,16 @@ else PROG_NAME= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } + fi + +{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : +if test "${ac_cv_path_SED+set}" = set; then $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -6060,7 +5546,7 @@ ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} + $as_unset ac_script || ac_script= if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST @@ -6069,7 +5555,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do + for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue @@ -6089,7 +5575,7 @@ $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val + ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" @@ -6104,17 +5590,19 @@ $ac_path_SED_found && break 3 done done - done +done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} + { (exit 1); exit 1; }; } fi else ac_cv_path_SED=$SED fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed @@ -6126,9 +5614,11 @@ else PROG_NAME= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -6136,9 +5626,9 @@ 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 test "${ac_cv_path_NAWK+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_NAWK+set}" = set; then $as_echo_n "(cached) " >&6 else case $NAWK in @@ -6151,14 +5641,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_NAWK="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -6166,10 +5656,10 @@ fi NAWK=$ac_cv_path_NAWK if test -n "$NAWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NAWK" >&5 + { $as_echo "$as_me:$LINENO: result: $NAWK" >&5 $as_echo "$NAWK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -6184,9 +5674,11 @@ else PROG_NAME= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -6196,9 +5688,9 @@ # These are not required on all platforms # Extract the first word of "cygpath", so it can be a program name with args. set dummy cygpath; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_CYGPATH+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CYGPATH+set}" = set; then $as_echo_n "(cached) " >&6 else case $CYGPATH in @@ -6211,14 +5703,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CYGPATH="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -6226,19 +5718,19 @@ fi CYGPATH=$ac_cv_path_CYGPATH if test -n "$CYGPATH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5 + { $as_echo "$as_me:$LINENO: result: $CYGPATH" >&5 $as_echo "$CYGPATH" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "readlink", so it can be a program name with args. set dummy readlink; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_READLINK+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_READLINK+set}" = set; then $as_echo_n "(cached) " >&6 else case $READLINK in @@ -6251,14 +5743,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_READLINK="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -6266,19 +5758,19 @@ fi READLINK=$ac_cv_path_READLINK if test -n "$READLINK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINK" >&5 + { $as_echo "$as_me:$LINENO: result: $READLINK" >&5 $as_echo "$READLINK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "df", so it can be a program name with args. set dummy df; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_DF+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_DF+set}" = set; then $as_echo_n "(cached) " >&6 else case $DF in @@ -6291,14 +5783,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DF="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -6306,19 +5798,19 @@ fi DF=$ac_cv_path_DF if test -n "$DF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DF" >&5 + { $as_echo "$as_me:$LINENO: result: $DF" >&5 $as_echo "$DF" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "SetFile", so it can be a program name with args. set dummy SetFile; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_SETFILE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_SETFILE+set}" = set; then $as_echo_n "(cached) " >&6 else case $SETFILE in @@ -6331,14 +5823,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SETFILE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -6346,10 +5838,10 @@ fi SETFILE=$ac_cv_path_SETFILE if test -n "$SETFILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SETFILE" >&5 + { $as_echo "$as_me:$LINENO: result: $SETFILE" >&5 $as_echo "$SETFILE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -6358,29 +5850,43 @@ # Now we can determine OpenJDK build and target platforms. This is required to # have early on. + +# Figure out the build and target systems. # Note that in autoconf terminology, "build" is obvious, but "target" +# is confusing; it assumes you are cross-compiling a cross-compiler (!) and "target" is thus the target of the +# product you're building. The target of this build is called "host". Since this is confusing to most people, we +# have not adopted that system, but use "target" as the platform we are building for. In some places though we need +# to use the configure naming style. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -6396,24 +5902,28 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -6429,24 +5939,28 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +{ $as_echo "$as_me:$LINENO: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } -if test "${ac_cv_target+set}" = set; then : +if test "${ac_cv_target+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 +$as_echo "$as_me: error: invalid value of canonical target" >&2;} + { (exit 1); exit 1; }; };; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -6469,15 +5983,6 @@ NONENONEs,x,x, && program_prefix=${target_alias}- -# Figure out the build and target systems. # Note that in autoconf terminology, "build" is obvious, but "target" -# is confusing; it assumes you are cross-compiling a cross-compiler (!) and "target" is thus the target of the -# product you're building. The target of this build is called "host". Since this is confusing to most people, we -# have not adopted that system, but use "target" as the platform we are building for. In some places though we need -# to use the configure naming style. - - - - # Copy the autoconf trip/quadruplet verbatim to OPENJDK_TARGET_AUTOCONF_NAME # (from the autoconf "host") and OPENJDK_BUILD_AUTOCONF_NAME @@ -6522,7 +6027,9 @@ VAR_OS_ENV=windows.msys ;; *) - as_fn_error $? "unsupported operating system $build_os" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: unsupported operating system $build_os" >&5 +$as_echo "$as_me: error: unsupported operating system $build_os" >&2;} + { (exit 1); exit 1; }; } ;; esac @@ -6572,7 +6079,9 @@ VAR_CPU_ENDIAN=big ;; *) - as_fn_error $? "unsupported cpu $build_cpu" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: unsupported cpu $build_cpu" >&5 +$as_echo "$as_me: error: unsupported cpu $build_cpu" >&2;} + { (exit 1); exit 1; }; } ;; esac @@ -6591,9 +6100,9 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking openjdk-build os-cpu" >&5 + { $as_echo "$as_me:$LINENO: checking openjdk-build os-cpu" >&5 $as_echo_n "checking openjdk-build os-cpu... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU" >&5 + { $as_echo "$as_me:$LINENO: result: $OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU" >&5 $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU" >&6; } # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables. @@ -6630,7 +6139,9 @@ VAR_OS_ENV=windows.msys ;; *) - as_fn_error $? "unsupported operating system $host_os" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: unsupported operating system $host_os" >&5 +$as_echo "$as_me: error: unsupported operating system $host_os" >&2;} + { (exit 1); exit 1; }; } ;; esac @@ -6680,7 +6191,9 @@ VAR_CPU_ENDIAN=big ;; *) - as_fn_error $? "unsupported cpu $host_cpu" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: unsupported cpu $host_cpu" >&5 +$as_echo "$as_me: error: unsupported cpu $host_cpu" >&2;} + { (exit 1); exit 1; }; } ;; esac @@ -6699,15 +6212,15 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking openjdk-target os-cpu" >&5 + { $as_echo "$as_me:$LINENO: checking openjdk-target os-cpu" >&5 $as_echo_n "checking openjdk-target os-cpu... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" >&5 + { $as_echo "$as_me:$LINENO: result: $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" >&5 $as_echo "$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" >&6; } # Check whether --with-target-bits was given. -if test "${with_target_bits+set}" = set; then : +if test "${with_target_bits+set}" = set; then withval=$with_target_bits; fi @@ -6726,7 +6239,9 @@ if test "x$with_target_bits" != x; then if test "x$COMPILE_TYPE" = "xcross"; then - as_fn_error $? "It is not possible to combine --with-target-bits=X and proper cross-compilation. Choose either." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: It is not possible to combine --with-target-bits=X and proper cross-compilation. Choose either." >&5 +$as_echo "$as_me: error: It is not possible to combine --with-target-bits=X and proper cross-compilation. Choose either." >&2;} + { (exit 1); exit 1; }; } fi if test "x$with_target_bits" = x32 && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then @@ -6738,22 +6253,28 @@ elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then OPENJDK_TARGET_CPU=sparc else - as_fn_error $? "Reduced build (--with-target-bits=32) is only supported on x86_64 and sparcv9" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Reduced build (--with-target-bits=32) is only supported on x86_64 and sparcv9" >&5 +$as_echo "$as_me: error: Reduced build (--with-target-bits=32) is only supported on x86_64 and sparcv9" >&2;} + { (exit 1); exit 1; }; } fi elif test "x$with_target_bits" = x64 && test "x$OPENJDK_TARGET_CPU_BITS" = x32; then - as_fn_error $? "It is not possible to use --with-target-bits=64 on a 32 bit system. Use proper cross-compilation instead." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: It is not possible to use --with-target-bits=64 on a 32 bit system. Use proper cross-compilation instead." >&5 +$as_echo "$as_me: error: It is not possible to use --with-target-bits=64 on a 32 bit system. Use proper cross-compilation instead." >&2;} + { (exit 1); exit 1; }; } elif test "x$with_target_bits" = "x$OPENJDK_TARGET_CPU_BITS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: --with-target-bits are set to build platform address size; argument has no meaning" >&5 + { $as_echo "$as_me:$LINENO: --with-target-bits are set to build platform address size; argument has no meaning" >&5 $as_echo "$as_me: --with-target-bits are set to build platform address size; argument has no meaning" >&6;} else - as_fn_error $? "--with-target-bits can only be 32 or 64, you specified $with_target_bits!" "$LINENO" 5 - fi - fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking compilation type" >&5 + { { $as_echo "$as_me:$LINENO: error: --with-target-bits can only be 32 or 64, you specified $with_target_bits!" >&5 +$as_echo "$as_me: error: --with-target-bits can only be 32 or 64, you specified $with_target_bits!" >&2;} + { (exit 1); exit 1; }; } + fi + fi + + +{ $as_echo "$as_me:$LINENO: checking compilation type" >&5 $as_echo_n "checking compilation type... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMPILE_TYPE" >&5 +{ $as_echo "$as_me:$LINENO: result: $COMPILE_TYPE" >&5 $as_echo "$COMPILE_TYPE" >&6; } @@ -6944,51 +6465,59 @@ SRC_ROOT_LENGTH=`$THEPWDCMD|$WC -m` if test $SRC_ROOT_LENGTH -gt 100; then - as_fn_error $? "Your base path is too long. It is $SRC_ROOT_LENGTH characters long, but only 100 is supported" "$LINENO" 5 - fi - - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking cygwin release" >&5 + { { $as_echo "$as_me:$LINENO: error: Your base path is too long. It is $SRC_ROOT_LENGTH characters long, but only 100 is supported" >&5 +$as_echo "$as_me: error: Your base path is too long. It is $SRC_ROOT_LENGTH characters long, but only 100 is supported" >&2;} + { (exit 1); exit 1; }; } + fi + + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then + { $as_echo "$as_me:$LINENO: checking cygwin release" >&5 $as_echo_n "checking cygwin release... " >&6; } CYGWIN_VERSION=`$UNAME -r` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGWIN_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $CYGWIN_VERSION" >&5 $as_echo "$CYGWIN_VERSION" >&6; } WINDOWS_ENV_VENDOR='cygwin' WINDOWS_ENV_VERSION="$CYGWIN_VERSION" CYGWIN_VERSION_OK=`$ECHO $CYGWIN_VERSION | $GREP ^1.7.` if test "x$CYGWIN_VERSION_OK" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade." >&5 + { $as_echo "$as_me:$LINENO: Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade." >&5 $as_echo "$as_me: Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade." >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi if test "x$CYGPATH" = x; then - as_fn_error $? "Something is wrong with your cygwin installation since I cannot find cygpath.exe in your path" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking cygwin root directory as unix-style path" >&5 + { { $as_echo "$as_me:$LINENO: error: Something is wrong with your cygwin installation since I cannot find cygpath.exe in your path" >&5 +$as_echo "$as_me: error: Something is wrong with your cygwin installation since I cannot find cygpath.exe in your path" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking cygwin root directory as unix-style path" >&5 $as_echo_n "checking cygwin root directory as unix-style path... " >&6; } # The cmd output ends with Windows line endings (CR/LF), the grep command will strip that away cygwin_winpath_root=`cd / ; cmd /c cd | grep ".*"` # Force cygpath to report the proper root by including a trailing space, and then stripping it off again. CYGWIN_ROOT_PATH=`$CYGPATH -u "$cygwin_winpath_root " | $CUT -f 1 -d " "` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGWIN_ROOT_PATH" >&5 + { $as_echo "$as_me:$LINENO: result: $CYGWIN_ROOT_PATH" >&5 $as_echo "$CYGWIN_ROOT_PATH" >&6; } WINDOWS_ENV_ROOT_PATH="$CYGWIN_ROOT_PATH" test_cygdrive_prefix=`$ECHO $CYGWIN_ROOT_PATH | $GREP ^/cygdrive/` if test "x$test_cygdrive_prefix" = x; then - as_fn_error $? "Your cygdrive prefix is not /cygdrive. This is currently not supported. Change with mount -c." "$LINENO" 5 - fi - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking msys release" >&5 + { { $as_echo "$as_me:$LINENO: error: Your cygdrive prefix is not /cygdrive. This is currently not supported. Change with mount -c." >&5 +$as_echo "$as_me: error: Your cygdrive prefix is not /cygdrive. This is currently not supported. Change with mount -c." >&2;} + { (exit 1); exit 1; }; } + fi + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then + { $as_echo "$as_me:$LINENO: checking msys release" >&5 $as_echo_n "checking msys release... " >&6; } MSYS_VERSION=`$UNAME -r` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSYS_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $MSYS_VERSION" >&5 $as_echo "$MSYS_VERSION" >&6; } WINDOWS_ENV_VENDOR='msys' WINDOWS_ENV_VERSION="$MSYS_VERSION" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking msys root directory as unix-style path" >&5 + { $as_echo "$as_me:$LINENO: checking msys root directory as unix-style path" >&5 $as_echo_n "checking msys root directory as unix-style path... " >&6; } # The cmd output ends with Windows line endings (CR/LF), the grep command will strip that away MSYS_ROOT_PATH=`cd / ; cmd /c cd | grep ".*"` @@ -7002,32 +6531,36 @@ MSYS_ROOT_PATH="$unix_path" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSYS_ROOT_PATH" >&5 + { $as_echo "$as_me:$LINENO: result: $MSYS_ROOT_PATH" >&5 $as_echo "$MSYS_ROOT_PATH" >&6; } WINDOWS_ENV_ROOT_PATH="$MSYS_ROOT_PATH" else - as_fn_error $? "Unknown Windows environment. Neither cygwin nor msys was detected." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Unknown Windows environment. Neither cygwin nor msys was detected." >&5 +$as_echo "$as_me: error: Unknown Windows environment. Neither cygwin nor msys was detected." >&2;} + { (exit 1); exit 1; }; } fi # Test if windows or unix (cygwin/msys) find is first in path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what kind of 'find' is first on the PATH" >&5 + { $as_echo "$as_me:$LINENO: checking what kind of 'find' is first on the PATH" >&5 $as_echo_n "checking what kind of 'find' is first on the PATH... " >&6; } FIND_BINARY_OUTPUT=`find --version 2>&1` if test "x`echo $FIND_BINARY_OUTPUT | $GREP GNU`" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unix style" >&5 + { $as_echo "$as_me:$LINENO: result: unix style" >&5 $as_echo "unix style" >&6; } elif test "x`echo $FIND_BINARY_OUTPUT | $GREP FIND`" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Windows" >&5 + { $as_echo "$as_me:$LINENO: result: Windows" >&5 $as_echo "Windows" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your path contains Windows tools (C:\Windows\system32) before your unix (cygwin or msys) tools." >&5 + { $as_echo "$as_me:$LINENO: Your path contains Windows tools (C:\Windows\system32) before your unix (cygwin or msys) tools." >&5 $as_echo "$as_me: Your path contains Windows tools (C:\Windows\system32) before your unix (cygwin or msys) tools." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: This will not work. Please correct and make sure /usr/bin (or similar) is first in path." >&5 + { $as_echo "$as_me:$LINENO: This will not work. Please correct and make sure /usr/bin (or similar) is first in path." >&5 $as_echo "$as_me: This will not work. Please correct and make sure /usr/bin (or similar) is first in path." >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } + else + { $as_echo "$as_me:$LINENO: result: unknown" >&5 $as_echo "unknown" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: It seems that your find utility is non-standard." >&5 + { $as_echo "$as_me:$LINENO: WARNING: It seems that your find utility is non-standard." >&5 $as_echo "$as_me: WARNING: It seems that your find utility is non-standard." >&2;} fi @@ -7056,9 +6589,11 @@ # 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 SRC_ROOT, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of SRC_ROOT, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of SRC_ROOT, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of SRC_ROOT" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of SRC_ROOT" >&5 +$as_echo "$as_me: error: Cannot locate the the path of SRC_ROOT" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -7097,7 +6632,7 @@ if test "x$path" != "x$new_path"; then SRC_ROOT="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting SRC_ROOT to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting SRC_ROOT to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting SRC_ROOT to \"$new_path\"" >&6;} fi @@ -7135,7 +6670,7 @@ if test "x$path" != "x$new_path"; then SRC_ROOT="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting SRC_ROOT to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting SRC_ROOT to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting SRC_ROOT to \"$new_path\"" >&6;} fi @@ -7147,14 +6682,18 @@ path="$SRC_ROOT" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of SRC_ROOT, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of SRC_ROOT, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of SRC_ROOT, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of SRC_ROOT, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of SRC_ROOT, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of SRC_ROOT, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } fi fi @@ -7175,9 +6714,11 @@ # 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 CURDIR, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of CURDIR, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of CURDIR, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of CURDIR" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CURDIR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CURDIR" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -7216,7 +6757,7 @@ if test "x$path" != "x$new_path"; then CURDIR="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CURDIR to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting CURDIR to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting CURDIR to \"$new_path\"" >&6;} fi @@ -7254,7 +6795,7 @@ if test "x$path" != "x$new_path"; then CURDIR="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CURDIR to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting CURDIR to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting CURDIR to \"$new_path\"" >&6;} fi @@ -7266,14 +6807,18 @@ path="$CURDIR" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of CURDIR, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of CURDIR, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of CURDIR, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CURDIR, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of CURDIR, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of CURDIR, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } fi fi @@ -7287,7 +6832,7 @@ # is not correct. # Check whether --with-sys-root was given. -if test "${with_sys_root+set}" = set; then : +if test "${with_sys_root+set}" = set; then withval=$with_sys_root; fi @@ -7301,20 +6846,24 @@ # Check whether --with-tools-dir was given. -if test "${with_tools_dir+set}" = set; then : +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 : +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 + { { $as_echo "$as_me:$LINENO: error: Cannot specify both --with-devkit and --with-sys-root at the same time" >&5 +$as_echo "$as_me: error: Cannot specify both --with-devkit and --with-sys-root at the same time" >&2;} + { (exit 1); exit 1; }; } fi if test "x$with_tools_dir" != x; then - as_fn_error $? "Cannot specify both --with-devkit and --with-tools-dir at the same time" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot specify both --with-devkit and --with-tools-dir at the same time" >&5 +$as_echo "$as_me: error: Cannot specify both --with-devkit and --with-tools-dir at the same time" >&2;} + { (exit 1); exit 1; }; } fi TOOLS_DIR=$with_devkit/bin SYS_ROOT=$with_devkit/$host_alias/libc @@ -7346,11 +6895,11 @@ # modules to compile into the JDK. In the future, these modules # might even be Jigsaw modules. # -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of the JDK to build" >&5 +{ $as_echo "$as_me:$LINENO: checking which variant of the JDK to build" >&5 $as_echo_n "checking which variant of the JDK to build... " >&6; } # Check whether --with-jdk-variant was given. -if test "${with_jdk_variant+set}" = set; then : +if test "${with_jdk_variant+set}" = set; then withval=$with_jdk_variant; fi @@ -7358,12 +6907,14 @@ if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then JDK_VARIANT="normal" else - as_fn_error $? "The available JDK variants are: normal" "$LINENO" 5 -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $JDK_VARIANT" >&5 + { { $as_echo "$as_me:$LINENO: error: The available JDK variants are: normal" >&5 +$as_echo "$as_me: error: The available JDK variants are: normal" >&2;} + { (exit 1); exit 1; }; } +fi + + + +{ $as_echo "$as_me:$LINENO: result: $JDK_VARIANT" >&5 $as_echo "$JDK_VARIANT" >&6; } @@ -7378,11 +6929,11 @@ # ie normal interpreter and C1, only the serial GC, kernel jvmti etc # zero: no machine code interpreter, no compiler # zeroshark: zero interpreter and shark/llvm compiler backend -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM to build" >&5 +{ $as_echo "$as_me:$LINENO: checking which variants of the JVM to build" >&5 $as_echo_n "checking which variants of the JVM to build... " >&6; } # Check whether --with-jvm-variants was given. -if test "${with_jvm_variants+set}" = set; then : +if test "${with_jvm_variants+set}" = set; then withval=$with_jvm_variants; fi @@ -7395,9 +6946,11 @@ TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'` if test "x$TEST_VARIANTS" != "x,"; then - as_fn_error $? "The available JVM variants are: server, client, kernel, zero, zeroshark" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_jvm_variants" >&5 + { { $as_echo "$as_me:$LINENO: error: The available JVM variants are: server, client, kernel, zero, zeroshark" >&5 +$as_echo "$as_me: error: The available JVM variants are: server, client, kernel, zero, zeroshark" >&2;} + { (exit 1); exit 1; }; } +fi +{ $as_echo "$as_me:$LINENO: result: $with_jvm_variants" >&5 $as_echo "$with_jvm_variants" >&6; } JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'` @@ -7408,12 +6961,16 @@ if test "x$JVM_VARIANT_CLIENT" = xtrue; then if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then - as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: You cannot build a client JVM for a 64-bit machine." >&5 +$as_echo "$as_me: error: You cannot build a client JVM for a 64-bit machine." >&2;} + { (exit 1); exit 1; }; } fi fi if test "x$JVM_VARIANT_KERNEL" = xtrue; then if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then - as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: You cannot build a kernel JVM for a 64-bit machine." >&5 +$as_echo "$as_me: error: You cannot build a kernel JVM for a 64-bit machine." >&2;} + { (exit 1); exit 1; }; } fi fi @@ -7449,10 +7006,10 @@ # slowdebug: debug information (-g), no optimizations, all asserts # DEBUG_LEVEL="release" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which debug level to use" >&5 +{ $as_echo "$as_me:$LINENO: checking which debug level to use" >&5 $as_echo_n "checking which debug level to use... " >&6; } # Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : +if test "${enable_debug+set}" = set; then enableval=$enable_debug; ENABLE_DEBUG="${enableval}" DEBUG_LEVEL="fastdebug" @@ -7464,22 +7021,26 @@ # Check whether --with-debug-level was given. -if test "${with_debug_level+set}" = set; then : +if test "${with_debug_level+set}" = set; then withval=$with_debug_level; DEBUG_LEVEL="${withval}" if test "x$ENABLE_DEBUG" = xyes; then - as_fn_error $? "You cannot use both --enable-debug and --with-debug-level at the same time." "$LINENO" 5 - fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEBUG_LEVEL" >&5 + { { $as_echo "$as_me:$LINENO: error: You cannot use both --enable-debug and --with-debug-level at the same time." >&5 +$as_echo "$as_me: error: You cannot use both --enable-debug and --with-debug-level at the same time." >&2;} + { (exit 1); exit 1; }; } + fi + +fi + +{ $as_echo "$as_me:$LINENO: result: $DEBUG_LEVEL" >&5 $as_echo "$DEBUG_LEVEL" >&6; } if test "x$DEBUG_LEVEL" != xrelease && \ test "x$DEBUG_LEVEL" != xfastdebug && \ test "x$DEBUG_LEVEL" != xslowdebug; then - as_fn_error $? "Allowed debug levels are: release, fastdebug and slowdebug" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Allowed debug levels are: release, fastdebug and slowdebug" >&5 +$as_echo "$as_me: error: Allowed debug levels are: release, fastdebug and slowdebug" >&2;} + { (exit 1); exit 1; }; } fi @@ -7569,7 +7130,7 @@ # Check whether --with-conf-name was given. -if test "${with_conf_name+set}" = set; then : +if test "${with_conf_name+set}" = set; then withval=$with_conf_name; CONF_NAME=${with_conf_name} fi @@ -7584,7 +7145,9 @@ OUTPUT_ROOT="$SRC_ROOT/build/${CONF_NAME}" $MKDIR -p "$OUTPUT_ROOT" if test ! -d "$OUTPUT_ROOT"; then - as_fn_error $? "Could not create build directory $OUTPUT_ROOT" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not create build directory $OUTPUT_ROOT" >&5 +$as_echo "$as_me: error: Could not create build directory $OUTPUT_ROOT" >&2;} + { (exit 1); exit 1; }; } fi else # We are running configure from outside of the src dir. @@ -7608,27 +7171,29 @@ filtered_files=`$ECHO "$files_present" | $SED -e 's/config.log//g' -e 's/confdefs.h//g' -e 's/ //g' \ | $TR -d '\n'` if test "x$filtered_files" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Current directory is $CURDIR." >&5 + { $as_echo "$as_me:$LINENO: Current directory is $CURDIR." >&5 $as_echo "$as_me: Current directory is $CURDIR." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Since this is not the source root, configure will output the configuration here" >&5 + { $as_echo "$as_me:$LINENO: Since this is not the source root, configure will output the configuration here" >&5 $as_echo "$as_me: Since this is not the source root, configure will output the configuration here" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (as opposed to creating a configuration in /build/)." >&5 + { $as_echo "$as_me:$LINENO: (as opposed to creating a configuration in /build/)." >&5 $as_echo "$as_me: (as opposed to creating a configuration in /build/)." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: However, this directory is not empty. This is not allowed, since it could" >&5 + { $as_echo "$as_me:$LINENO: However, this directory is not empty. This is not allowed, since it could" >&5 $as_echo "$as_me: However, this directory is not empty. This is not allowed, since it could" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: seriously mess up just about everything." >&5 + { $as_echo "$as_me:$LINENO: seriously mess up just about everything." >&5 $as_echo "$as_me: seriously mess up just about everything." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Try 'cd $SRC_ROOT' and restart configure" >&5 + { $as_echo "$as_me:$LINENO: Try 'cd $SRC_ROOT' and restart configure" >&5 $as_echo "$as_me: Try 'cd $SRC_ROOT' and restart configure" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (or create a new empty directory and cd to it)." >&5 + { $as_echo "$as_me:$LINENO: (or create a new empty directory and cd to it)." >&5 $as_echo "$as_me: (or create a new empty directory and cd to it)." >&6;} - as_fn_error $? "Will not continue creating configuration in $CURDIR" "$LINENO" 5 - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what configuration name to use" >&5 + { { $as_echo "$as_me:$LINENO: error: Will not continue creating configuration in $CURDIR" >&5 +$as_echo "$as_me: error: Will not continue creating configuration in $CURDIR" >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ $as_echo "$as_me:$LINENO: checking what configuration name to use" >&5 $as_echo_n "checking what configuration name to use... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CONF_NAME" >&5 +{ $as_echo "$as_me:$LINENO: result: $CONF_NAME" >&5 $as_echo "$CONF_NAME" >&6; } @@ -7648,9 +7213,11 @@ # 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 OUTPUT_ROOT, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of OUTPUT_ROOT, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of OUTPUT_ROOT, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of OUTPUT_ROOT" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OUTPUT_ROOT" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OUTPUT_ROOT" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -7689,7 +7256,7 @@ if test "x$path" != "x$new_path"; then OUTPUT_ROOT="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting OUTPUT_ROOT to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting OUTPUT_ROOT to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting OUTPUT_ROOT to \"$new_path\"" >&6;} fi @@ -7727,7 +7294,7 @@ if test "x$path" != "x$new_path"; then OUTPUT_ROOT="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting OUTPUT_ROOT to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting OUTPUT_ROOT to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting OUTPUT_ROOT to \"$new_path\"" >&6;} fi @@ -7739,14 +7306,18 @@ path="$OUTPUT_ROOT" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of OUTPUT_ROOT, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of OUTPUT_ROOT, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of OUTPUT_ROOT, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OUTPUT_ROOT, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of OUTPUT_ROOT, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of OUTPUT_ROOT, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } fi fi @@ -7792,9 +7363,9 @@ 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 test "${ac_cv_prog_PKGHANDLER+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_PKGHANDLER+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$PKGHANDLER"; then @@ -7805,24 +7376,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PKGHANDLER="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi PKGHANDLER=$ac_cv_prog_PKGHANDLER if test -n "$PKGHANDLER"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGHANDLER" >&5 + { $as_echo "$as_me:$LINENO: result: $PKGHANDLER" >&5 $as_echo "$PKGHANDLER" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -7839,23 +7410,25 @@ if test "x$MAKE" != x; then # User has supplied a make, test it. if test ! -f "$MAKE"; then - as_fn_error $? "The specified make (by MAKE=$MAKE) is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The specified make (by MAKE=$MAKE) is not found." >&5 +$as_echo "$as_me: error: The specified make (by MAKE=$MAKE) is not found." >&2;} + { (exit 1); exit 1; }; } fi MAKE_CANDIDATE=""$MAKE"" DESCRIPTION="user supplied MAKE=$MAKE" if test "x$MAKE_CANDIDATE" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 + { $as_echo "$as_me:$LINENO: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;} MAKE_VERSION_STRING=`$MAKE_CANDIDATE --version | $HEAD -n 1` IS_GNU_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP 'GNU Make'` if test "x$IS_GNU_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;} else IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP '3.8[12346789]'` if test "x$IS_MODERN_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 $as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;} else if test "x$OPENJDK_BUILD_OS" = "xwindows"; then @@ -7864,7 +7437,9 @@ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then MAKE_EXPECTED_ENV='msys' else - as_fn_error $? "Unknown Windows environment" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Unknown Windows environment" >&5 +$as_echo "$as_me: error: Unknown Windows environment" >&2;} + { (exit 1); exit 1; }; } fi MAKE_BUILT_FOR=`$MAKE_CANDIDATE --version | $GREP -i 'built for'` IS_MAKE_CORRECT_ENV=`$ECHO $MAKE_BUILT_FOR | $GREP $MAKE_EXPECTED_ENV` @@ -7873,7 +7448,7 @@ IS_MAKE_CORRECT_ENV=true fi if test "x$IS_MAKE_CORRECT_ENV" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 $as_echo "$as_me: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&6;} else FOUND_MAKE=$MAKE_CANDIDATE @@ -7918,14 +7493,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -7945,11 +7522,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -8041,14 +7620,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -8103,18 +7684,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -8128,7 +7711,7 @@ if test "x$complete" != "x$new_complete"; then FOUND_MAKE="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting FOUND_MAKE to \"$new_complete\"" >&6;} fi @@ -8138,7 +7721,9 @@ fi if test "x$FOUND_MAKE" = x; then - as_fn_error $? "The specified make (by MAKE=$MAKE) is not GNU make 3.81 or newer." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The specified make (by MAKE=$MAKE) is not GNU make 3.81 or newer." >&5 +$as_echo "$as_me: error: The specified make (by MAKE=$MAKE) is not GNU make 3.81 or newer." >&2;} + { (exit 1); exit 1; }; } fi else # Try our hardest to locate a correct version of GNU make @@ -8146,9 +7731,9 @@ 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 test "${ac_cv_path_CHECK_GMAKE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CHECK_GMAKE+set}" = set; then $as_echo_n "(cached) " >&6 else case $CHECK_GMAKE in @@ -8161,14 +7746,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CHECK_GMAKE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -8176,10 +7761,10 @@ fi CHECK_GMAKE=$ac_cv_path_CHECK_GMAKE if test -n "$CHECK_GMAKE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_GMAKE" >&5 + { $as_echo "$as_me:$LINENO: result: $CHECK_GMAKE" >&5 $as_echo "$CHECK_GMAKE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -8191,17 +7776,17 @@ MAKE_CANDIDATE=""$CHECK_GMAKE"" DESCRIPTION="gmake in PATH" if test "x$MAKE_CANDIDATE" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 + { $as_echo "$as_me:$LINENO: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;} MAKE_VERSION_STRING=`$MAKE_CANDIDATE --version | $HEAD -n 1` IS_GNU_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP 'GNU Make'` if test "x$IS_GNU_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;} else IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP '3.8[12346789]'` if test "x$IS_MODERN_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 $as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;} else if test "x$OPENJDK_BUILD_OS" = "xwindows"; then @@ -8210,7 +7795,9 @@ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then MAKE_EXPECTED_ENV='msys' else - as_fn_error $? "Unknown Windows environment" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Unknown Windows environment" >&5 +$as_echo "$as_me: error: Unknown Windows environment" >&2;} + { (exit 1); exit 1; }; } fi MAKE_BUILT_FOR=`$MAKE_CANDIDATE --version | $GREP -i 'built for'` IS_MAKE_CORRECT_ENV=`$ECHO $MAKE_BUILT_FOR | $GREP $MAKE_EXPECTED_ENV` @@ -8219,7 +7806,7 @@ IS_MAKE_CORRECT_ENV=true fi if test "x$IS_MAKE_CORRECT_ENV" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 $as_echo "$as_me: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&6;} else FOUND_MAKE=$MAKE_CANDIDATE @@ -8264,14 +7851,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -8291,11 +7880,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -8387,14 +7978,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -8449,18 +8042,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -8474,7 +8069,7 @@ if test "x$complete" != "x$new_complete"; then FOUND_MAKE="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting FOUND_MAKE to \"$new_complete\"" >&6;} fi @@ -8489,9 +8084,9 @@ 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 test "${ac_cv_path_CHECK_MAKE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CHECK_MAKE+set}" = set; then $as_echo_n "(cached) " >&6 else case $CHECK_MAKE in @@ -8504,14 +8099,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CHECK_MAKE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -8519,10 +8114,10 @@ fi CHECK_MAKE=$ac_cv_path_CHECK_MAKE if test -n "$CHECK_MAKE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_MAKE" >&5 + { $as_echo "$as_me:$LINENO: result: $CHECK_MAKE" >&5 $as_echo "$CHECK_MAKE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -8534,17 +8129,17 @@ MAKE_CANDIDATE=""$CHECK_MAKE"" DESCRIPTION="make in PATH" if test "x$MAKE_CANDIDATE" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 + { $as_echo "$as_me:$LINENO: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;} MAKE_VERSION_STRING=`$MAKE_CANDIDATE --version | $HEAD -n 1` IS_GNU_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP 'GNU Make'` if test "x$IS_GNU_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;} else IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP '3.8[12346789]'` if test "x$IS_MODERN_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 $as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;} else if test "x$OPENJDK_BUILD_OS" = "xwindows"; then @@ -8553,7 +8148,9 @@ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then MAKE_EXPECTED_ENV='msys' else - as_fn_error $? "Unknown Windows environment" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Unknown Windows environment" >&5 +$as_echo "$as_me: error: Unknown Windows environment" >&2;} + { (exit 1); exit 1; }; } fi MAKE_BUILT_FOR=`$MAKE_CANDIDATE --version | $GREP -i 'built for'` IS_MAKE_CORRECT_ENV=`$ECHO $MAKE_BUILT_FOR | $GREP $MAKE_EXPECTED_ENV` @@ -8562,7 +8159,7 @@ IS_MAKE_CORRECT_ENV=true fi if test "x$IS_MAKE_CORRECT_ENV" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 $as_echo "$as_me: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&6;} else FOUND_MAKE=$MAKE_CANDIDATE @@ -8607,14 +8204,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -8634,11 +8233,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -8730,14 +8331,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -8792,18 +8395,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -8817,7 +8422,7 @@ if test "x$complete" != "x$new_complete"; then FOUND_MAKE="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting FOUND_MAKE to \"$new_complete\"" >&6;} fi @@ -8837,9 +8442,9 @@ 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 test "${ac_cv_path_CHECK_TOOLSDIR_GMAKE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CHECK_TOOLSDIR_GMAKE+set}" = set; then $as_echo_n "(cached) " >&6 else case $CHECK_TOOLSDIR_GMAKE in @@ -8852,14 +8457,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CHECK_TOOLSDIR_GMAKE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -8867,10 +8472,10 @@ fi CHECK_TOOLSDIR_GMAKE=$ac_cv_path_CHECK_TOOLSDIR_GMAKE if test -n "$CHECK_TOOLSDIR_GMAKE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_TOOLSDIR_GMAKE" >&5 + { $as_echo "$as_me:$LINENO: result: $CHECK_TOOLSDIR_GMAKE" >&5 $as_echo "$CHECK_TOOLSDIR_GMAKE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -8882,17 +8487,17 @@ MAKE_CANDIDATE=""$CHECK_TOOLSDIR_GMAKE"" DESCRIPTION="gmake in tools-dir" if test "x$MAKE_CANDIDATE" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 + { $as_echo "$as_me:$LINENO: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;} MAKE_VERSION_STRING=`$MAKE_CANDIDATE --version | $HEAD -n 1` IS_GNU_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP 'GNU Make'` if test "x$IS_GNU_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;} else IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP '3.8[12346789]'` if test "x$IS_MODERN_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 $as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;} else if test "x$OPENJDK_BUILD_OS" = "xwindows"; then @@ -8901,7 +8506,9 @@ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then MAKE_EXPECTED_ENV='msys' else - as_fn_error $? "Unknown Windows environment" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Unknown Windows environment" >&5 +$as_echo "$as_me: error: Unknown Windows environment" >&2;} + { (exit 1); exit 1; }; } fi MAKE_BUILT_FOR=`$MAKE_CANDIDATE --version | $GREP -i 'built for'` IS_MAKE_CORRECT_ENV=`$ECHO $MAKE_BUILT_FOR | $GREP $MAKE_EXPECTED_ENV` @@ -8910,7 +8517,7 @@ IS_MAKE_CORRECT_ENV=true fi if test "x$IS_MAKE_CORRECT_ENV" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 $as_echo "$as_me: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&6;} else FOUND_MAKE=$MAKE_CANDIDATE @@ -8955,14 +8562,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -8982,11 +8591,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -9078,14 +8689,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -9140,18 +8753,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -9165,7 +8780,7 @@ if test "x$complete" != "x$new_complete"; then FOUND_MAKE="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting FOUND_MAKE to \"$new_complete\"" >&6;} fi @@ -9179,9 +8794,9 @@ 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 test "${ac_cv_path_CHECK_TOOLSDIR_MAKE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CHECK_TOOLSDIR_MAKE+set}" = set; then $as_echo_n "(cached) " >&6 else case $CHECK_TOOLSDIR_MAKE in @@ -9194,14 +8809,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CHECK_TOOLSDIR_MAKE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9209,10 +8824,10 @@ fi CHECK_TOOLSDIR_MAKE=$ac_cv_path_CHECK_TOOLSDIR_MAKE if test -n "$CHECK_TOOLSDIR_MAKE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_TOOLSDIR_MAKE" >&5 + { $as_echo "$as_me:$LINENO: result: $CHECK_TOOLSDIR_MAKE" >&5 $as_echo "$CHECK_TOOLSDIR_MAKE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9224,17 +8839,17 @@ MAKE_CANDIDATE=""$CHECK_TOOLSDIR_MAKE"" DESCRIPTION="make in tools-dir" if test "x$MAKE_CANDIDATE" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 + { $as_echo "$as_me:$LINENO: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&5 $as_echo "$as_me: Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION" >&6;} MAKE_VERSION_STRING=`$MAKE_CANDIDATE --version | $HEAD -n 1` IS_GNU_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP 'GNU Make'` if test "x$IS_GNU_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&5 $as_echo "$as_me: Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring." >&6;} else IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP '3.8[12346789]'` if test "x$IS_MODERN_MAKE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&5 $as_echo "$as_me: Found GNU make at $MAKE_CANDIDATE, however this is not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring." >&6;} else if test "x$OPENJDK_BUILD_OS" = "xwindows"; then @@ -9243,7 +8858,9 @@ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then MAKE_EXPECTED_ENV='msys' else - as_fn_error $? "Unknown Windows environment" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Unknown Windows environment" >&5 +$as_echo "$as_me: error: Unknown Windows environment" >&2;} + { (exit 1); exit 1; }; } fi MAKE_BUILT_FOR=`$MAKE_CANDIDATE --version | $GREP -i 'built for'` IS_MAKE_CORRECT_ENV=`$ECHO $MAKE_BUILT_FOR | $GREP $MAKE_EXPECTED_ENV` @@ -9252,7 +8869,7 @@ IS_MAKE_CORRECT_ENV=true fi if test "x$IS_MAKE_CORRECT_ENV" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 + { $as_echo "$as_me:$LINENO: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&5 $as_echo "$as_me: Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring." >&6;} else FOUND_MAKE=$MAKE_CANDIDATE @@ -9297,14 +8914,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -9324,11 +8943,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -9420,14 +9041,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -9482,18 +9105,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving FOUND_MAKE (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of FOUND_MAKE, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of FOUND_MAKE" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FOUND_MAKE" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FOUND_MAKE" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -9507,7 +9132,7 @@ if test "x$complete" != "x$new_complete"; then FOUND_MAKE="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting FOUND_MAKE to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting FOUND_MAKE to \"$new_complete\"" >&6;} fi @@ -9522,19 +9147,21 @@ fi if test "x$FOUND_MAKE" = x; then - as_fn_error $? "Cannot find GNU make 3.81 or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot find GNU make 3.81 or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure." >&5 +$as_echo "$as_me: error: Cannot find GNU make 3.81 or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure." >&2;} + { (exit 1); exit 1; }; } fi fi MAKE=$FOUND_MAKE - { $as_echo "$as_me:${as_lineno-$LINENO}: Using GNU make 3.81 (or later) at $FOUND_MAKE (version: $MAKE_VERSION_STRING)" >&5 + { $as_echo "$as_me:$LINENO: Using GNU make 3.81 (or later) at $FOUND_MAKE (version: $MAKE_VERSION_STRING)" >&5 $as_echo "$as_me: Using GNU make 3.81 (or later) at $FOUND_MAKE (version: $MAKE_VERSION_STRING)" >&6;} # Test if find supports -delete - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if find supports -delete" >&5 + { $as_echo "$as_me:$LINENO: checking if find supports -delete" >&5 $as_echo_n "checking if find supports -delete... " >&6; } FIND_DELETE="-delete" @@ -9547,10 +9174,10 @@ # No, it does not. rm $DELETEDIR/TestIfFindSupportsDelete FIND_DELETE="-exec rm \{\} \+" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } fi rmdir $DELETEDIR @@ -9564,9 +9191,9 @@ 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 test "${ac_cv_path_UNZIP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_UNZIP+set}" = set; then $as_echo_n "(cached) " >&6 else case $UNZIP in @@ -9579,14 +9206,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_UNZIP="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9594,10 +9221,10 @@ fi UNZIP=$ac_cv_path_UNZIP if test -n "$UNZIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNZIP" >&5 + { $as_echo "$as_me:$LINENO: result: $UNZIP" >&5 $as_echo "$UNZIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9612,9 +9239,11 @@ else PROG_NAME=unzip fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -9623,9 +9252,9 @@ 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 test "${ac_cv_path_ZIP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ZIP+set}" = set; then $as_echo_n "(cached) " >&6 else case $ZIP in @@ -9638,14 +9267,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ZIP="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9653,10 +9282,10 @@ fi ZIP=$ac_cv_path_ZIP if test -n "$ZIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZIP" >&5 + { $as_echo "$as_me:$LINENO: result: $ZIP" >&5 $as_echo "$ZIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9671,9 +9300,11 @@ else PROG_NAME=zip fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -9682,9 +9313,9 @@ # Extract the first word of "ldd", so it can be a program name with args. set dummy ldd; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LDD+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_LDD+set}" = set; then $as_echo_n "(cached) " >&6 else case $LDD in @@ -9697,14 +9328,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LDD="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9712,10 +9343,10 @@ fi LDD=$ac_cv_path_LDD if test -n "$LDD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDD" >&5 + { $as_echo "$as_me:$LINENO: result: $LDD" >&5 $as_echo "$LDD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9728,9 +9359,9 @@ fi # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_OTOOL+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_OTOOL+set}" = set; then $as_echo_n "(cached) " >&6 else case $OTOOL in @@ -9743,14 +9374,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_OTOOL="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9758,10 +9389,10 @@ fi OTOOL=$ac_cv_path_OTOOL if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 + { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9773,9 +9404,9 @@ 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 test "${ac_cv_path_READELF+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_READELF+set}" = set; then $as_echo_n "(cached) " >&6 else case $READELF in @@ -9788,14 +9419,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_READELF="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9803,10 +9434,10 @@ fi READELF=$ac_cv_path_READELF if test -n "$READELF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5 + { $as_echo "$as_me:$LINENO: result: $READELF" >&5 $as_echo "$READELF" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9816,9 +9447,9 @@ # Extract the first word of "hg", so it can be a program name with args. set dummy hg; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_HG+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_HG+set}" = set; then $as_echo_n "(cached) " >&6 else case $HG in @@ -9831,14 +9462,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_HG="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9846,19 +9477,19 @@ fi HG=$ac_cv_path_HG if test -n "$HG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HG" >&5 + { $as_echo "$as_me:$LINENO: result: $HG" >&5 $as_echo "$HG" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "stat", so it can be a program name with args. set dummy stat; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_STAT+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_STAT+set}" = set; then $as_echo_n "(cached) " >&6 else case $STAT in @@ -9871,14 +9502,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_STAT="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9886,19 +9517,19 @@ fi STAT=$ac_cv_path_STAT if test -n "$STAT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5 + { $as_echo "$as_me:$LINENO: result: $STAT" >&5 $as_echo "$STAT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "time", so it can be a program name with args. set dummy time; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_TIME+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_TIME+set}" = set; then $as_echo_n "(cached) " >&6 else case $TIME in @@ -9911,14 +9542,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TIME="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9926,10 +9557,10 @@ fi TIME=$ac_cv_path_TIME if test -n "$TIME"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TIME" >&5 + { $as_echo "$as_me:$LINENO: result: $TIME" >&5 $as_echo "$TIME" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9941,9 +9572,9 @@ 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 test "${ac_cv_path_COMM+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_COMM+set}" = set; then $as_echo_n "(cached) " >&6 else case $COMM in @@ -9956,14 +9587,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_COMM="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -9971,10 +9602,10 @@ fi COMM=$ac_cv_path_COMM if test -n "$COMM"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMM" >&5 + { $as_echo "$as_me:$LINENO: result: $COMM" >&5 $as_echo "$COMM" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -9989,9 +9620,11 @@ else PROG_NAME=comm fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5 -$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: Could not find $PROG_NAME!" >&5 +$as_echo "$as_me: Could not find $PROG_NAME!" >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi @@ -10005,9 +9638,9 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in @@ -10020,14 +9653,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -10035,10 +9668,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 + { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -10048,9 +9681,9 @@ ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in @@ -10063,14 +9696,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -10078,10 +9711,10 @@ fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -10090,7 +9723,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -10103,13 +9736,13 @@ fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 + { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi @@ -10137,21 +9770,21 @@ # Check whether --with-builddeps-conf was given. -if test "${with_builddeps_conf+set}" = set; then : +if test "${with_builddeps_conf+set}" = set; then withval=$with_builddeps_conf; fi # Check whether --with-builddeps-server was given. -if test "${with_builddeps_server+set}" = set; then : +if test "${with_builddeps_server+set}" = set; then withval=$with_builddeps_server; fi # Check whether --with-builddeps-dir was given. -if test "${with_builddeps_dir+set}" = set; then : +if test "${with_builddeps_dir+set}" = set; then withval=$with_builddeps_dir; else with_builddeps_dir=/localhome/builddeps @@ -10160,7 +9793,7 @@ # Check whether --with-builddeps-group was given. -if test "${with_builddeps_group+set}" = set; then : +if test "${with_builddeps_group+set}" = set; then withval=$with_builddeps_group; fi @@ -10169,18 +9802,20 @@ if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then if test "x$with_builddeps_conf" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for supplied builddeps configuration file" >&5 + { $as_echo "$as_me:$LINENO: checking for supplied builddeps configuration file" >&5 $as_echo_n "checking for supplied builddeps configuration file... " >&6; } builddepsfile=$with_builddeps_conf if test -s $builddepsfile; then . $builddepsfile - { $as_echo "$as_me:${as_lineno-$LINENO}: result: loaded!" >&5 + { $as_echo "$as_me:$LINENO: result: loaded!" >&5 $as_echo "loaded!" >&6; } else - as_fn_error $? "The given builddeps conf file $with_builddeps_conf could not be loaded!" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The given builddeps conf file $with_builddeps_conf could not be loaded!" >&5 +$as_echo "$as_me: error: The given builddeps conf file $with_builddeps_conf could not be loaded!" >&2;} + { (exit 1); exit 1; }; } fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for builddeps.conf files in sources..." >&5 + { $as_echo "$as_me:$LINENO: checking for builddeps.conf files in sources..." >&5 $as_echo_n "checking for builddeps.conf files in sources...... " >&6; } builddepsfile=`mktemp` touch $builddepsfile @@ -10189,10 +9824,12 @@ # Source the file to acquire the variables if test -s $builddepsfile; then . $builddepsfile - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found at least one!" >&5 + { $as_echo "$as_me:$LINENO: result: found at least one!" >&5 $as_echo "found at least one!" >&6; } else - as_fn_error $? "Could not find any builddeps.conf at all!" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find any builddeps.conf at all!" >&5 +$as_echo "$as_me: error: Could not find any builddeps.conf at all!" >&2;} + { (exit 1); exit 1; }; } fi fi # Create build and target names that use _ instead of "-" and ".". @@ -10221,9 +9858,9 @@ 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 test "${ac_cv_prog_BDEPS_UNZIP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_BDEPS_UNZIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$BDEPS_UNZIP"; then @@ -10234,24 +9871,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_BDEPS_UNZIP="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi BDEPS_UNZIP=$ac_cv_prog_BDEPS_UNZIP if test -n "$BDEPS_UNZIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BDEPS_UNZIP" >&5 + { $as_echo "$as_me:$LINENO: result: $BDEPS_UNZIP" >&5 $as_echo "$BDEPS_UNZIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -10267,9 +9904,9 @@ 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 test "${ac_cv_prog_BDEPS_FTP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_BDEPS_FTP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$BDEPS_FTP"; then @@ -10280,24 +9917,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_BDEPS_FTP="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi BDEPS_FTP=$ac_cv_prog_BDEPS_FTP if test -n "$BDEPS_FTP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BDEPS_FTP" >&5 + { $as_echo "$as_me:$LINENO: result: $BDEPS_FTP" >&5 $as_echo "$BDEPS_FTP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -10321,33 +9958,33 @@ # Should we build only OpenJDK even if closed sources are present? # # Check whether --enable-openjdk-only was given. -if test "${enable_openjdk_only+set}" = set; then : +if test "${enable_openjdk_only+set}" = set; then enableval=$enable_openjdk_only; else enable_openjdk_only="no" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of closed sources" >&5 +{ $as_echo "$as_me:$LINENO: checking for presence of closed sources" >&5 $as_echo_n "checking for presence of closed sources... " >&6; } if test -d "$SRC_ROOT/jdk/src/closed"; then CLOSED_SOURCE_PRESENT=yes else CLOSED_SOURCE_PRESENT=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CLOSED_SOURCE_PRESENT" >&5 +{ $as_echo "$as_me:$LINENO: result: $CLOSED_SOURCE_PRESENT" >&5 $as_echo "$CLOSED_SOURCE_PRESENT" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if closed source is supressed (openjdk-only)" >&5 +{ $as_echo "$as_me:$LINENO: checking if closed source is supressed (openjdk-only)" >&5 $as_echo_n "checking if closed source is supressed (openjdk-only)... " >&6; } SUPRESS_CLOSED_SOURCE="$enable_openjdk_only" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SUPRESS_CLOSED_SOURCE" >&5 +{ $as_echo "$as_me:$LINENO: result: $SUPRESS_CLOSED_SOURCE" >&5 $as_echo "$SUPRESS_CLOSED_SOURCE" >&6; } if test "x$CLOSED_SOURCE_PRESENT" = xno; then OPENJDK=true if test "x$SUPRESS_CLOSED_SOURCE" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No closed source present, --enable-openjdk-only makes no sense" >&5 + { $as_echo "$as_me:$LINENO: WARNING: No closed source present, --enable-openjdk-only makes no sense" >&5 $as_echo "$as_me: WARNING: No closed source present, --enable-openjdk-only makes no sense" >&2;} fi else @@ -10369,10 +10006,10 @@ # Should we build a JDK/JVM with headful support (ie a graphical ui)? # We always build headless support. # -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking headful support" >&5 +{ $as_echo "$as_me:$LINENO: checking headful support" >&5 $as_echo_n "checking headful support... " >&6; } # Check whether --enable-headful was given. -if test "${enable_headful+set}" = set; then : +if test "${enable_headful+set}" = set; then enableval=$enable_headful; SUPPORT_HEADFUL=${enable_headful} else SUPPORT_HEADFUL=yes @@ -10393,7 +10030,7 @@ headful_msg="headless only" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $headful_msg" >&5 +{ $as_echo "$as_me:$LINENO: result: $headful_msg" >&5 $as_echo "$headful_msg" >&6; } @@ -10402,7 +10039,7 @@ # Control wether Hotspot runs Queens test after build. # Check whether --enable-hotspot-test-in-build was given. -if test "${enable_hotspot_test_in_build+set}" = set; then : +if test "${enable_hotspot_test_in_build+set}" = set; then enableval=$enable_hotspot_test_in_build; else enable_hotspot_test_in_build=no @@ -10421,7 +10058,7 @@ # # Check whether --with-cacerts-file was given. -if test "${with_cacerts_file+set}" = set; then : +if test "${with_cacerts_file+set}" = set; then withval=$with_cacerts_file; fi @@ -10441,7 +10078,7 @@ # Enable or disable unlimited crypto # # Check whether --enable-unlimited-crypto was given. -if test "${enable_unlimited_crypto+set}" = set; then : +if test "${enable_unlimited_crypto+set}" = set; then enableval=$enable_unlimited_crypto; else enable_unlimited_crypto=no @@ -10528,7 +10165,7 @@ BOOT_JDK_FOUND=no # Check whether --with-boot-jdk was given. -if test "${with_boot_jdk+set}" = set; then : +if test "${with_boot_jdk+set}" = set; then withval=$with_boot_jdk; fi @@ -10546,7 +10183,7 @@ if test "x$with_boot_jdk" != x; then BOOT_JDK=$with_boot_jdk BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using configure arguments" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using configure arguments" >&5 $as_echo "$as_me: Found potential Boot JDK using configure arguments" >&6;} fi @@ -10555,21 +10192,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -10579,9 +10216,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -10604,9 +10241,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -10645,7 +10284,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -10683,7 +10322,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -10695,25 +10334,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -10725,7 +10368,9 @@ if test "x$with_boot_jdk" != x && test "x$BOOT_JDK_FOUND" = xno; then # Having specified an argument which is incorrect will produce an instant failure; # we should not go on looking - as_fn_error $? "The path given by --with-boot-jdk does not contain a valid Boot JDK" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path given by --with-boot-jdk does not contain a valid Boot JDK" >&5 +$as_echo "$as_me: error: The path given by --with-boot-jdk does not contain a valid Boot JDK" >&2;} + { (exit 1); exit 1; }; } fi # Test: Is bootjdk available from builddeps? @@ -10754,7 +10399,7 @@ resource=${builddep_bootjdk} fi if test "x$resource" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for bootjdk" >&5 + { $as_echo "$as_me:$LINENO: Using builddeps $resource for bootjdk" >&5 $as_echo "$as_me: Using builddeps $resource for bootjdk" >&6;} # If the resource in the builddeps.conf file is an existing directory, # for example /java/linux/cups @@ -10775,18 +10420,22 @@ extension=${filename#*.} installdir=$with_builddeps_dir/$filebase if test ! -f $installdir/$filename.unpacked; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency bootjdk from $with_builddeps_server/$resource and installing into $installdir" >&5 + { $as_echo "$as_me:$LINENO: Downloading build dependency bootjdk from $with_builddeps_server/$resource and installing into $installdir" >&5 $as_echo "$as_me: Downloading build dependency bootjdk 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 + { { $as_echo "$as_me:$LINENO: error: Could not create directory $installdir" >&5 +$as_echo "$as_me: error: Could not create directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi tmpfile=`mktemp $installdir/bootjdk.XXXXXXXXX` touch $tmpfile if test ! -f $tmpfile; then - as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not create files in directory $installdir" >&5 +$as_echo "$as_me: error: Could not create files in directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi # $with_builddeps_server/$resource is the ftp://abuilddeps.server.com/libs/cups.zip @@ -10824,12 +10473,16 @@ ) | 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 + { { $as_echo "$as_me:$LINENO: error: I do not know how to use the tool: $BDEPS_FTP" >&5 +$as_echo "$as_me: error: I do not know how to use the tool: $BDEPS_FTP" >&2;} + { (exit 1); exit 1; }; } fi mv $tmpfile $installdir/$filename if test ! -s $installdir/$filename; then - as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download $with_builddeps_server/$resource" >&5 +$as_echo "$as_me: error: Could not download $with_builddeps_server/$resource" >&2;} + { (exit 1); exit 1; }; } fi case "$extension" in zip) echo "Unzipping $installdir/$filename..." @@ -10841,7 +10494,9 @@ 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 + *) { { $as_echo "$as_me:$LINENO: error: Cannot handle build depency archive with extension $extension" >&5 +$as_echo "$as_me: error: Cannot handle build depency archive with extension $extension" >&2;} + { (exit 1); exit 1; }; } ;; esac fi @@ -10858,7 +10513,9 @@ thecflags=${builddep_bootjdk_CFLAGS} thelibs=${builddep_bootjdk_LIBS} if test "x$depdir" = x; then - as_fn_error $? "Could not download build dependency bootjdk" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download build dependency bootjdk" >&5 +$as_echo "$as_me: error: Could not download build dependency bootjdk" >&2;} + { (exit 1); exit 1; }; } fi BOOT_JDK=$depdir if test "x$theroot" != x; then @@ -10884,21 +10541,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -10908,9 +10565,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -10933,9 +10590,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -10974,7 +10633,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11012,7 +10671,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11024,25 +10683,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -11076,9 +10739,11 @@ # 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 JAVA_HOME_PROCESSED, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of JAVA_HOME_PROCESSED" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of JAVA_HOME_PROCESSED" >&5 +$as_echo "$as_me: error: Cannot locate the the path of JAVA_HOME_PROCESSED" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -11117,7 +10782,7 @@ if test "x$path" != "x$new_path"; then JAVA_HOME_PROCESSED="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting JAVA_HOME_PROCESSED to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting JAVA_HOME_PROCESSED to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting JAVA_HOME_PROCESSED to \"$new_path\"" >&6;} fi @@ -11155,7 +10820,7 @@ if test "x$path" != "x$new_path"; then JAVA_HOME_PROCESSED="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting JAVA_HOME_PROCESSED to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting JAVA_HOME_PROCESSED to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting JAVA_HOME_PROCESSED to \"$new_path\"" >&6;} fi @@ -11167,26 +10832,30 @@ path="$JAVA_HOME_PROCESSED" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of JAVA_HOME_PROCESSED, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } fi fi if test ! -d "$JAVA_HOME_PROCESSED"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Your JAVA_HOME points to a non-existing directory!" >&5 + { $as_echo "$as_me:$LINENO: Your JAVA_HOME points to a non-existing directory!" >&5 $as_echo "$as_me: Your JAVA_HOME points to a non-existing directory!" >&6;} else # Aha, the user has set a JAVA_HOME # let us use that as the Boot JDK. BOOT_JDK="$JAVA_HOME_PROCESSED" BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using JAVA_HOME" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using JAVA_HOME" >&5 $as_echo "$as_me: Found potential Boot JDK using JAVA_HOME" >&6;} fi fi @@ -11196,21 +10865,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -11220,9 +10889,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -11245,9 +10914,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -11286,7 +10957,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11324,7 +10995,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11336,25 +11007,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -11372,7 +11047,7 @@ if test -x /usr/libexec/java_home; then BOOT_JDK=`/usr/libexec/java_home` BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using /usr/libexec/java_home" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using /usr/libexec/java_home" >&5 $as_echo "$as_me: Found potential Boot JDK using /usr/libexec/java_home" >&6;} fi @@ -11381,21 +11056,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -11405,9 +11080,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -11430,9 +11105,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -11471,7 +11148,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11509,7 +11186,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11521,25 +11198,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -11556,9 +11237,9 @@ # Extract the first word of "javac", so it can be a program name with args. set dummy javac; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_JAVAC_CHECK+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_JAVAC_CHECK+set}" = set; then $as_echo_n "(cached) " >&6 else case $JAVAC_CHECK in @@ -11571,14 +11252,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_JAVAC_CHECK="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -11586,19 +11267,19 @@ fi JAVAC_CHECK=$ac_cv_path_JAVAC_CHECK if test -n "$JAVAC_CHECK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC_CHECK" >&5 + { $as_echo "$as_me:$LINENO: result: $JAVAC_CHECK" >&5 $as_echo "$JAVAC_CHECK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "java", so it can be a program name with args. set dummy java; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_JAVA_CHECK+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_JAVA_CHECK+set}" = set; then $as_echo_n "(cached) " >&6 else case $JAVA_CHECK in @@ -11611,14 +11292,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_JAVA_CHECK="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -11626,10 +11307,10 @@ fi JAVA_CHECK=$ac_cv_path_JAVA_CHECK if test -n "$JAVA_CHECK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVA_CHECK" >&5 + { $as_echo "$as_me:$LINENO: result: $JAVA_CHECK" >&5 $as_echo "$JAVA_CHECK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -11692,7 +11373,7 @@ if test -x "$BOOT_JDK/bin/javac" && test -x "$BOOT_JDK/bin/java"; then # Looks like we found ourselves an JDK BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using java(c) in PATH" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using java(c) in PATH" >&5 $as_echo "$as_me: Found potential Boot JDK using java(c) in PATH" >&6;} fi fi @@ -11702,21 +11383,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -11726,9 +11407,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -11751,9 +11432,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -11792,7 +11475,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11830,7 +11513,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -11842,25 +11525,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -11905,7 +11592,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -11914,21 +11601,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -11938,9 +11625,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -11963,9 +11650,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -12004,7 +11693,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12042,7 +11731,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12054,25 +11743,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -12091,21 +11784,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -12115,9 +11808,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -12140,9 +11833,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -12181,7 +11876,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12219,7 +11914,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12231,25 +11926,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -12287,7 +11986,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -12296,21 +11995,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -12320,9 +12019,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -12345,9 +12044,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -12386,7 +12087,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12424,7 +12125,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12436,25 +12137,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -12473,21 +12178,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -12497,9 +12202,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -12522,9 +12227,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -12563,7 +12270,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12601,7 +12308,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12613,25 +12320,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -12669,7 +12380,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -12678,21 +12389,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -12702,9 +12413,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -12727,9 +12438,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -12768,7 +12481,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12806,7 +12519,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12818,25 +12531,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -12855,21 +12572,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -12879,9 +12596,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -12904,9 +12621,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -12945,7 +12664,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12983,7 +12702,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -12995,25 +12714,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -13051,7 +12774,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -13060,21 +12783,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -13084,9 +12807,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -13109,9 +12832,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -13150,7 +12875,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13188,7 +12913,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13200,25 +12925,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -13237,21 +12966,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -13261,9 +12990,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -13286,9 +13015,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -13327,7 +13058,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13365,7 +13096,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13377,25 +13108,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -13420,7 +13155,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -13429,21 +13164,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -13453,9 +13188,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -13478,9 +13213,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -13519,7 +13256,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13557,7 +13294,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13569,25 +13306,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -13604,21 +13345,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -13628,9 +13369,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -13653,9 +13394,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -13694,7 +13437,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13732,7 +13475,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13744,25 +13487,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -13788,7 +13535,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -13797,21 +13544,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -13821,9 +13568,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -13846,9 +13593,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -13887,7 +13636,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13925,7 +13674,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -13937,25 +13686,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -13972,21 +13725,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -13996,9 +13749,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -14021,9 +13774,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -14062,7 +13817,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14100,7 +13855,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14112,25 +13867,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -14155,7 +13914,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -14164,21 +13923,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -14188,9 +13947,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -14213,9 +13972,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -14254,7 +14015,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14292,7 +14053,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14304,25 +14065,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -14339,21 +14104,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -14363,9 +14128,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -14388,9 +14153,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -14429,7 +14196,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14467,7 +14234,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14479,25 +14246,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -14523,7 +14294,7 @@ BOOT_JDK="${BOOT_JDK_PREFIX}/${JDK_TO_TRY}${BOOT_JDK_SUFFIX}" if test -d "$BOOT_JDK"; then BOOT_JDK_FOUND=maybe - { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 + { $as_echo "$as_me:$LINENO: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&5 $as_echo "$as_me: Found potential Boot JDK using well-known locations (in $BOOT_JDK_PREFIX/$JDK_TO_TRY)" >&6;} fi @@ -14532,21 +14303,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -14556,9 +14327,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -14581,9 +14352,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -14622,7 +14395,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14660,7 +14433,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14672,25 +14445,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -14707,21 +14484,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -14731,9 +14508,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -14756,9 +14533,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -14797,7 +14576,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14835,7 +14614,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -14847,25 +14626,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -14881,21 +14664,21 @@ if test "x$BOOT_JDK_FOUND" = xmaybe; then # Do we have a bin/java? if test ! -x "$BOOT_JDK/bin/java"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;} BOOT_JDK_FOUND=no else # Do we have a bin/javac? if test ! -x "$BOOT_JDK/bin/javac"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5 + { $as_echo "$as_me:$LINENO: (This might be an JRE instead of an JDK)" >&5 $as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;} BOOT_JDK_FOUND=no else # Do we have an rt.jar? (On MacOSX it is called classes.jar) if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;} BOOT_JDK_FOUND=no else @@ -14905,9 +14688,9 @@ # Extra M4 quote needed to protect [] in grep expression. FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'` if test "x$FOUND_VERSION_78" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 + { $as_echo "$as_me:$LINENO: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5 $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5 + { $as_echo "$as_me:$LINENO: (Your Boot JDK must be version 7 or 8)" >&5 $as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;} BOOT_JDK_FOUND=no else @@ -14930,9 +14713,11 @@ # 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 BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BOOT_JDK" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BOOT_JDK" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -14971,7 +14756,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -15009,7 +14794,7 @@ if test "x$path" != "x$new_path"; then BOOT_JDK="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BOOT_JDK to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;} fi @@ -15021,25 +14806,29 @@ path="$BOOT_JDK" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of BOOT_JDK, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 -$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5 +$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;} + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for Boot JDK" >&5 $as_echo_n "checking for Boot JDK... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK" >&5 $as_echo "$BOOT_JDK" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5 + { $as_echo "$as_me:$LINENO: checking Boot JDK version" >&5 $as_echo_n "checking Boot JDK version... " >&6; } BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5 + { $as_echo "$as_me:$LINENO: result: $BOOT_JDK_VERSION" >&5 $as_echo "$BOOT_JDK_VERSION" >&6; } fi # end check jdk version fi # end check rt.jar @@ -15076,11 +14865,13 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find a valid Boot JDK. $HELP_MSG" >&5 + { $as_echo "$as_me:$LINENO: Could not find a valid Boot JDK. $HELP_MSG" >&5 $as_echo "$as_me: Could not find a valid Boot JDK. $HELP_MSG" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi # Setup proper paths for what we found @@ -15101,101 +14892,115 @@ # Setup tools from the Boot JDK. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for java in Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: checking for java in Boot JDK" >&5 $as_echo_n "checking for java in Boot JDK... " >&6; } JAVA=$BOOT_JDK/bin/java if test ! -x $JAVA; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not find java in the Boot JDK" >&5 +$as_echo "$as_me: error: Could not find java in the Boot JDK" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javac in Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: checking for javac in Boot JDK" >&5 $as_echo_n "checking for javac in Boot JDK... " >&6; } JAVAC=$BOOT_JDK/bin/javac if test ! -x $JAVAC; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not find javac in the Boot JDK" >&5 +$as_echo "$as_me: error: Could not find javac in the Boot JDK" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javah in Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: checking for javah in Boot JDK" >&5 $as_echo_n "checking for javah in Boot JDK... " >&6; } JAVAH=$BOOT_JDK/bin/javah if test ! -x $JAVAH; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not find javah in the Boot JDK" >&5 +$as_echo "$as_me: error: Could not find javah in the Boot JDK" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javap in Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: checking for javap in Boot JDK" >&5 $as_echo_n "checking for javap in Boot JDK... " >&6; } JAVAP=$BOOT_JDK/bin/javap if test ! -x $JAVAP; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find javap in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not find javap in the Boot JDK" >&5 +$as_echo "$as_me: error: Could not find javap in the Boot JDK" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jar in Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: checking for jar in Boot JDK" >&5 $as_echo_n "checking for jar in Boot JDK... " >&6; } JAR=$BOOT_JDK/bin/jar if test ! -x $JAR; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not find jar in the Boot JDK" >&5 +$as_echo "$as_me: error: Could not find jar in the Boot JDK" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rmic in Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: checking for rmic in Boot JDK" >&5 $as_echo_n "checking for rmic in Boot JDK... " >&6; } RMIC=$BOOT_JDK/bin/rmic if test ! -x $RMIC; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find rmic in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not find rmic in the Boot JDK" >&5 +$as_echo "$as_me: error: Could not find rmic in the Boot JDK" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native2ascii in Boot JDK" >&5 + { $as_echo "$as_me:$LINENO: checking for native2ascii in Boot JDK" >&5 $as_echo_n "checking for native2ascii in Boot JDK... " >&6; } NATIVE2ASCII=$BOOT_JDK/bin/native2ascii if test ! -x $NATIVE2ASCII; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 + { $as_echo "$as_me:$LINENO: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 $as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} - as_fn_error $? "Could not find native2ascii in the Boot JDK" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not find native2ascii in the Boot JDK" >&5 +$as_echo "$as_me: error: Could not find native2ascii in the Boot JDK" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } @@ -15213,7 +15018,7 @@ # # Check whether --with-boot-jdk-jvmargs was given. -if test "${with_boot_jdk_jvmargs+set}" = set; then : +if test "${with_boot_jdk_jvmargs+set}" = set; then withval=$with_boot_jdk_jvmargs; fi @@ -15340,21 +15145,21 @@ # # Check whether --with-add-source-root was given. -if test "${with_add_source_root+set}" = set; then : +if test "${with_add_source_root+set}" = set; then withval=$with_add_source_root; fi # Check whether --with-override-source-root was given. -if test "${with_override_source_root+set}" = set; then : +if test "${with_override_source_root+set}" = set; then withval=$with_override_source_root; fi # Check whether --with-adds-and-overrides was given. -if test "${with_adds_and_overrides+set}" = set; then : +if test "${with_adds_and_overrides+set}" = set; then withval=$with_adds_and_overrides; fi @@ -15366,7 +15171,9 @@ if test "x$with_add_source_root" != x; then if ! test -d $with_add_source_root; then - as_fn_error $? "Trying to use a non-existant add-source-root $with_add_source_root" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Trying to use a non-existant add-source-root $with_add_source_root" >&5 +$as_echo "$as_me: error: Trying to use a non-existant add-source-root $with_add_source_root" >&2;} + { (exit 1); exit 1; }; } fi CURDIR="$PWD" cd "$with_add_source_root" @@ -15376,34 +15183,48 @@ # If it does, then it is usually an error, prevent this. if test -f $with_add_source_root/langtools/makefiles/Makefile || \ test -f $with_add_source_root/langtools/make/Makefile; then - as_fn_error $? "Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources." >&5 +$as_echo "$as_me: error: Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_add_source_root/corba/makefiles/Makefile || \ test -f $with_add_source_root/corba/make/Makefile; then - as_fn_error $? "Your add source root seems to contain a full corba repo! An add source root should only contain additional sources." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your add source root seems to contain a full corba repo! An add source root should only contain additional sources." >&5 +$as_echo "$as_me: error: Your add source root seems to contain a full corba repo! An add source root should only contain additional sources." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_add_source_root/jaxp/makefiles/Makefile || \ test -f $with_add_source_root/jaxp/make/Makefile; then - as_fn_error $? "Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources." >&5 +$as_echo "$as_me: error: Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_add_source_root/jaxws/makefiles/Makefile || \ test -f $with_add_source_root/jaxws/make/Makefile; then - as_fn_error $? "Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources." >&5 +$as_echo "$as_me: error: Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_add_source_root/hotspot/makefiles/Makefile || \ test -f $with_add_source_root/hotspot/make/Makefile; then - as_fn_error $? "Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources." >&5 +$as_echo "$as_me: error: Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_add_source_root/jdk/makefiles/Makefile || \ test -f $with_add_source_root/jdk/make/Makefile; then - as_fn_error $? "Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources." >&5 +$as_echo "$as_me: error: Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources." >&2;} + { (exit 1); exit 1; }; } fi fi if test "x$with_override_source_root" != x; then if ! test -d $with_override_source_root; then - as_fn_error $? "Trying to use a non-existant override-source-root $with_override_source_root" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Trying to use a non-existant override-source-root $with_override_source_root" >&5 +$as_echo "$as_me: error: Trying to use a non-existant override-source-root $with_override_source_root" >&2;} + { (exit 1); exit 1; }; } fi CURDIR="$PWD" cd "$with_override_source_root" @@ -15411,27 +15232,39 @@ cd "$CURDIR" if test -f $with_override_source_root/langtools/makefiles/Makefile || \ test -f $with_override_source_root/langtools/make/Makefile; then - as_fn_error $? "Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override." >&5 +$as_echo "$as_me: error: Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_override_source_root/corba/makefiles/Makefile || \ test -f $with_override_source_root/corba/make/Makefile; then - as_fn_error $? "Your override source root seems to contain a full corba repo! An override source root should only contain sources that override." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your override source root seems to contain a full corba repo! An override source root should only contain sources that override." >&5 +$as_echo "$as_me: error: Your override source root seems to contain a full corba repo! An override source root should only contain sources that override." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_override_source_root/jaxp/makefiles/Makefile || \ test -f $with_override_source_root/jaxp/make/Makefile; then - as_fn_error $? "Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override." >&5 +$as_echo "$as_me: error: Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_override_source_root/jaxws/makefiles/Makefile || \ test -f $with_override_source_root/jaxws/make/Makefile; then - as_fn_error $? "Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override." >&5 +$as_echo "$as_me: error: Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_override_source_root/hotspot/makefiles/Makefile || \ test -f $with_override_source_root/hotspot/make/Makefile; then - as_fn_error $? "Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override." >&5 +$as_echo "$as_me: error: Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override." >&2;} + { (exit 1); exit 1; }; } fi if test -f $with_override_source_root/jdk/makefiles/Makefile || \ test -f $with_override_source_root/jdk/make/Makefile; then - as_fn_error $? "Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override." >&5 +$as_echo "$as_me: error: Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override." >&2;} + { (exit 1); exit 1; }; } fi fi @@ -15457,42 +15290,42 @@ # Check whether --with-override-langtools was given. -if test "${with_override_langtools+set}" = set; then : +if test "${with_override_langtools+set}" = set; then withval=$with_override_langtools; fi # Check whether --with-override-corba was given. -if test "${with_override_corba+set}" = set; then : +if test "${with_override_corba+set}" = set; then withval=$with_override_corba; fi # Check whether --with-override-jaxp was given. -if test "${with_override_jaxp+set}" = set; then : +if test "${with_override_jaxp+set}" = set; then withval=$with_override_jaxp; fi # Check whether --with-override-jaxws was given. -if test "${with_override_jaxws+set}" = set; then : +if test "${with_override_jaxws+set}" = set; then withval=$with_override_jaxws; fi # Check whether --with-override-hotspot was given. -if test "${with_override_hotspot+set}" = set; then : +if test "${with_override_hotspot+set}" = set; then withval=$with_override_hotspot; fi # Check whether --with-override-jdk was given. -if test "${with_override_jdk+set}" = set; then : +if test "${with_override_jdk+set}" = set; then withval=$with_override_jdk; fi @@ -15503,11 +15336,13 @@ LANGTOOLS_TOPDIR="`pwd`" cd "$CURDIR" if ! test -f $LANGTOOLS_TOPDIR/makefiles/Makefile; then - as_fn_error $? "You have to override langtools with a full langtools repo!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if langtools should be overridden" >&5 + { { $as_echo "$as_me:$LINENO: error: You have to override langtools with a full langtools repo!" >&5 +$as_echo "$as_me: error: You have to override langtools with a full langtools repo!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking if langtools should be overridden" >&5 $as_echo_n "checking if langtools should be overridden... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $LANGTOOLS_TOPDIR" >&5 + { $as_echo "$as_me:$LINENO: result: yes with $LANGTOOLS_TOPDIR" >&5 $as_echo "yes with $LANGTOOLS_TOPDIR" >&6; } fi if test "x$with_override_corba" != x; then @@ -15516,11 +15351,13 @@ CORBA_TOPDIR="`pwd`" cd "$CURDIR" if ! test -f $CORBA_TOPDIR/makefiles/Makefile; then - as_fn_error $? "You have to override corba with a full corba repo!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if corba should be overridden" >&5 + { { $as_echo "$as_me:$LINENO: error: You have to override corba with a full corba repo!" >&5 +$as_echo "$as_me: error: You have to override corba with a full corba repo!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking if corba should be overridden" >&5 $as_echo_n "checking if corba should be overridden... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $CORBA_TOPDIR" >&5 + { $as_echo "$as_me:$LINENO: result: yes with $CORBA_TOPDIR" >&5 $as_echo "yes with $CORBA_TOPDIR" >&6; } fi if test "x$with_override_jaxp" != x; then @@ -15529,11 +15366,13 @@ JAXP_TOPDIR="`pwd`" cd "$CURDIR" if ! test -f $JAXP_TOPDIR/makefiles/Makefile; then - as_fn_error $? "You have to override jaxp with a full jaxp repo!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if jaxp should be overridden" >&5 + { { $as_echo "$as_me:$LINENO: error: You have to override jaxp with a full jaxp repo!" >&5 +$as_echo "$as_me: error: You have to override jaxp with a full jaxp repo!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking if jaxp should be overridden" >&5 $as_echo_n "checking if jaxp should be overridden... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $JAXP_TOPDIR" >&5 + { $as_echo "$as_me:$LINENO: result: yes with $JAXP_TOPDIR" >&5 $as_echo "yes with $JAXP_TOPDIR" >&6; } fi if test "x$with_override_jaxws" != x; then @@ -15542,11 +15381,13 @@ JAXWS_TOPDIR="`pwd`" cd "$CURDIR" if ! test -f $JAXWS_TOPDIR/makefiles/Makefile; then - as_fn_error $? "You have to override jaxws with a full jaxws repo!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if jaxws should be overridden" >&5 + { { $as_echo "$as_me:$LINENO: error: You have to override jaxws with a full jaxws repo!" >&5 +$as_echo "$as_me: error: You have to override jaxws with a full jaxws repo!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking if jaxws should be overridden" >&5 $as_echo_n "checking if jaxws should be overridden... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $JAXWS_TOPDIR" >&5 + { $as_echo "$as_me:$LINENO: result: yes with $JAXWS_TOPDIR" >&5 $as_echo "yes with $JAXWS_TOPDIR" >&6; } fi if test "x$with_override_hotspot" != x; then @@ -15556,11 +15397,13 @@ cd "$CURDIR" if ! test -f $HOTSPOT_TOPDIR/make/Makefile && \ ! test -f $HOTSPOT_TOPDIR/makefiles/Makefile; then - as_fn_error $? "You have to override hotspot with a full hotspot repo!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if hotspot should be overridden" >&5 + { { $as_echo "$as_me:$LINENO: error: You have to override hotspot with a full hotspot repo!" >&5 +$as_echo "$as_me: error: You have to override hotspot with a full hotspot repo!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking if hotspot should be overridden" >&5 $as_echo_n "checking if hotspot should be overridden... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $HOTSPOT_TOPDIR" >&5 + { $as_echo "$as_me:$LINENO: result: yes with $HOTSPOT_TOPDIR" >&5 $as_echo "yes with $HOTSPOT_TOPDIR" >&6; } fi if test "x$with_override_jdk" != x; then @@ -15569,11 +15412,13 @@ JDK_TOPDIR="`pwd`" cd "$CURDIR" if ! test -f $JDK_TOPDIR/makefiles/Makefile; then - as_fn_error $? "You have to override JDK with a full JDK repo!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if JDK should be overridden" >&5 + { { $as_echo "$as_me:$LINENO: error: You have to override JDK with a full JDK repo!" >&5 +$as_echo "$as_me: error: You have to override JDK with a full JDK repo!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking if JDK should be overridden" >&5 $as_echo_n "checking if JDK should be overridden... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes with $JDK_TOPDIR" >&5 + { $as_echo "$as_me:$LINENO: result: yes with $JDK_TOPDIR" >&5 $as_echo "yes with $JDK_TOPDIR" >&6; } fi @@ -15582,6 +15427,33 @@ BUILD_OUTPUT="$OUTPUT_ROOT" +HOTSPOT_DIST="$OUTPUT_ROOT/hotspot/dist" +BUILD_HOTSPOT=true + + + +# Check whether --with-import-hotspot was given. +if test "${with_import_hotspot+set}" = set; then + withval=$with_import_hotspot; +fi + +if test "x$with_import_hotspot" != x; then + CURDIR="$PWD" + cd "$with_import_hotspot" + HOTSPOT_DIST="`pwd`" + cd "$CURDIR" + if ! (test -d $HOTSPOT_DIST/lib && test -d $HOTSPOT_DIST/jre/lib); then + { { $as_echo "$as_me:$LINENO: error: You have to import hotspot from a full jdk image or hotspot build dist dir!" >&5 +$as_echo "$as_me: error: You have to import hotspot from a full jdk image or hotspot build dist dir!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: checking if hotspot should be imported" >&5 +$as_echo_n "checking if hotspot should be imported... " >&6; } + { $as_echo "$as_me:$LINENO: result: yes from $HOTSPOT_DIST" >&5 +$as_echo "yes from $HOTSPOT_DIST" >&6; } + BUILD_HOTSPOT=false +fi + JDK_OUTPUTDIR="$OUTPUT_ROOT/jdk" @@ -15626,9 +15498,9 @@ # VS linker. This must be done before changing the PATH when looking for VS. # Extract the first word of "link", so it can be a program name with args. set dummy link; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_CYGWIN_LINK+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CYGWIN_LINK+set}" = set; then $as_echo_n "(cached) " >&6 else case $CYGWIN_LINK in @@ -15641,14 +15513,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CYGWIN_LINK="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -15656,23 +15528,23 @@ fi CYGWIN_LINK=$ac_cv_path_CYGWIN_LINK if test -n "$CYGWIN_LINK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGWIN_LINK" >&5 + { $as_echo "$as_me:$LINENO: result: $CYGWIN_LINK" >&5 $as_echo "$CYGWIN_LINK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$CYGWIN_LINK" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the first found link.exe is actually the Cygwin link tool" >&5 + { $as_echo "$as_me:$LINENO: checking if the first found link.exe is actually the Cygwin link tool" >&5 $as_echo_n "checking if the first found link.exe is actually the Cygwin link tool... " >&6; } "$CYGWIN_LINK" --version > /dev/null if test $? -eq 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } # This might be the VS linker. Don't exclude it later on. CYGWIN_LINK="" @@ -15706,13 +15578,13 @@ if test -d "$VS100BASE"; then if test -f "$VS100BASE/$VCVARSFILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} VS_ENV_CMD="$VS100BASE/$VCVARSFILE" else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 $as_echo "$as_me: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&6;} fi fi @@ -15723,11 +15595,13 @@ if test "x$with_toolsdir" != x && test "x$VS_ENV_CMD" = x; then # Having specified an argument which is incorrect will produce an instant failure; # we should not go on looking - { $as_echo "$as_me:${as_lineno-$LINENO}: The path given by --with-tools-dir does not contain a valid Visual Studio installation" >&5 + { $as_echo "$as_me:$LINENO: The path given by --with-tools-dir does not contain a valid Visual Studio installation" >&5 $as_echo "$as_me: The path given by --with-tools-dir does not contain a valid Visual Studio installation" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Please point to the VC/bin directory within the Visual Studio installation" >&5 + { $as_echo "$as_me:$LINENO: Please point to the VC/bin directory within the Visual Studio installation" >&5 $as_echo "$as_me: Please point to the VC/bin directory within the Visual Studio installation" >&6;} - as_fn_error $? "Cannot locate a valid Visual Studio installation" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate a valid Visual Studio installation" >&5 +$as_echo "$as_me: error: Cannot locate a valid Visual Studio installation" >&2;} + { (exit 1); exit 1; }; } fi if test "x$ProgramW6432" != x; then @@ -15747,7 +15621,7 @@ if test -d "$WIN_SDK_BASE"; then if test -f "$WIN_SDK_BASE/SetEnv.Cmd"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} VS_ENV_CMD="$WIN_SDK_BASE/SetEnv.Cmd" if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then @@ -15756,9 +15630,9 @@ VS_ENV_ARGS="/x64" fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 $as_echo "$as_me: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&6;} fi fi @@ -15782,7 +15656,7 @@ if test -d "$WIN_SDK_BASE"; then if test -f "$WIN_SDK_BASE/SetEnv.Cmd"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} VS_ENV_CMD="$WIN_SDK_BASE/SetEnv.Cmd" if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then @@ -15791,9 +15665,9 @@ VS_ENV_ARGS="/x64" fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 $as_echo "$as_me: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&6;} fi fi @@ -15817,7 +15691,7 @@ if test -d "$WIN_SDK_BASE"; then if test -f "$WIN_SDK_BASE/SetEnv.Cmd"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} VS_ENV_CMD="$WIN_SDK_BASE/SetEnv.Cmd" if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then @@ -15826,9 +15700,9 @@ VS_ENV_ARGS="/x64" fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 $as_echo "$as_me: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&6;} fi fi @@ -15851,7 +15725,7 @@ if test -d "$WIN_SDK_BASE"; then if test -f "$WIN_SDK_BASE/SetEnv.Cmd"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} VS_ENV_CMD="$WIN_SDK_BASE/SetEnv.Cmd" if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then @@ -15860,9 +15734,9 @@ VS_ENV_ARGS="/x64" fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 $as_echo "$as_me: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&6;} fi fi @@ -15884,7 +15758,7 @@ if test -d "$WIN_SDK_BASE"; then if test -f "$WIN_SDK_BASE/SetEnv.Cmd"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} VS_ENV_CMD="$WIN_SDK_BASE/SetEnv.Cmd" if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then @@ -15893,9 +15767,9 @@ VS_ENV_ARGS="/x64" fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&5 $as_echo "$as_me: Found Windows SDK installation at $WIN_SDK_BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&5 $as_echo "$as_me: Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring" >&6;} fi fi @@ -15919,13 +15793,13 @@ if test -d "$VS100BASE"; then if test -f "$VS100BASE/$VCVARSFILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} VS_ENV_CMD="$VS100BASE/$VCVARSFILE" else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 $as_echo "$as_me: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&6;} fi fi @@ -15949,13 +15823,13 @@ if test -d "$VS100BASE"; then if test -f "$VS100BASE/$VCVARSFILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} VS_ENV_CMD="$VS100BASE/$VCVARSFILE" else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 $as_echo "$as_me: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&6;} fi fi @@ -15978,13 +15852,13 @@ if test -d "$VS100BASE"; then if test -f "$VS100BASE/$VCVARSFILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} VS_ENV_CMD="$VS100BASE/$VCVARSFILE" else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 $as_echo "$as_me: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&6;} fi fi @@ -16006,13 +15880,13 @@ if test -d "$VS100BASE"; then if test -f "$VS100BASE/$VCVARSFILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} VS_ENV_CMD="$VS100BASE/$VCVARSFILE" else - { $as_echo "$as_me:${as_lineno-$LINENO}: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 + { $as_echo "$as_me:$LINENO: Found Visual Studio installation at $VS100BASE using $METHOD" >&5 $as_echo "$as_me: Found Visual Studio installation at $VS100BASE using $METHOD" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 + { $as_echo "$as_me:$LINENO: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&5 $as_echo "$as_me: Warning: $VCVARSFILE is missing, this is probably Visual Studio Express. Ignoring" >&6;} fi fi @@ -16062,14 +15936,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of VS_ENV_CMD" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of VS_ENV_CMD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of VS_ENV_CMD" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -16089,11 +15965,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of VS_ENV_CMD, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of VS_ENV_CMD, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of VS_ENV_CMD, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of VS_ENV_CMD" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of VS_ENV_CMD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of VS_ENV_CMD" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -16185,14 +16063,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of VS_ENV_CMD" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of VS_ENV_CMD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of VS_ENV_CMD" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -16247,18 +16127,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving VS_ENV_CMD (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving VS_ENV_CMD (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving VS_ENV_CMD (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of VS_ENV_CMD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of VS_ENV_CMD" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of VS_ENV_CMD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of VS_ENV_CMD" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -16272,13 +16154,13 @@ if test "x$complete" != "x$new_complete"; then VS_ENV_CMD="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting VS_ENV_CMD to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting VS_ENV_CMD to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting VS_ENV_CMD to \"$new_complete\"" >&6;} fi # 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:$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 @@ -16319,39 +16201,43 @@ #---- cd $CURDIR if test ! -s $OUTPUT_ROOT/localdevenv.sh; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Could not succesfully extract the envionment variables needed for the VS setup." >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:$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 + { $as_echo "$as_me:$LINENO: Try setting --with-tools-dir to the VC/bin directory within the VS installation" >&5 $as_echo "$as_me: Try setting --with-tools-dir to the VC/bin directory within the VS installation" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: or run \"bash.exe -l\" from a VS command prompt and then run configure from there." >&5 + { $as_echo "$as_me:$LINENO: or run \"bash.exe -l\" from a VS command prompt and then run configure from there." >&5 $as_echo "$as_me: or run \"bash.exe -l\" from a VS command prompt and then run configure from there." >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } fi # 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. - { $as_echo "$as_me:${as_lineno-$LINENO}: Setting extracted environment variables" >&5 + { $as_echo "$as_me:$LINENO: Setting extracted environment variables" >&5 $as_echo "$as_me: Setting extracted environment variables" >&6;} . $OUTPUT_ROOT/localdevenv.sh 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:$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. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Visual Studio variables" >&5 + { $as_echo "$as_me:$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: present but broken" >&5 + { $as_echo "$as_me:$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 "$as_me:$LINENO: error: Your VC command prompt seems broken, INCLUDE and/or LIB is missing." >&5 +$as_echo "$as_me: error: Your VC command prompt seems broken, INCLUDE and/or LIB is missing." >&2;} + { (exit 1); exit 1; }; } + else + { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } VS_INCLUDE="$INCLUDE" VS_LIB="$LIB" @@ -16361,30 +16247,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + { $as_echo "$as_me:$LINENO: result: not found" >&5 $as_echo "not found" >&6; } if test "x$VS_ENV_CMD" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Cannot locate a valid Visual Studio or Windows SDK installation on disk," >&5 + { $as_echo "$as_me:$LINENO: Cannot locate a valid Visual Studio or Windows SDK installation on disk," >&5 $as_echo "$as_me: Cannot locate a valid Visual Studio or Windows SDK installation on disk," >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: nor is this script run from a Visual Studio command prompt." >&5 + { $as_echo "$as_me:$LINENO: nor is this script run from a Visual Studio command prompt." >&5 $as_echo "$as_me: nor is this script run from a Visual Studio command prompt." >&6;} else - { $as_echo "$as_me:${as_lineno-$LINENO}: Running the extraction script failed." >&5 + { $as_echo "$as_me:$LINENO: Running the extraction script failed." >&5 $as_echo "$as_me: Running the extraction script failed." >&6;} fi - { $as_echo "$as_me:${as_lineno-$LINENO}: Try setting --with-tools-dir to the VC/bin directory within the VS installation" >&5 + { $as_echo "$as_me:$LINENO: Try setting --with-tools-dir to the VC/bin directory within the VS installation" >&5 $as_echo "$as_me: Try setting --with-tools-dir to the VC/bin directory within the VS installation" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: or run \"bash.exe -l\" from a VS command prompt and then run configure from there." >&5 + { $as_echo "$as_me:$LINENO: or run \"bash.exe -l\" from a VS command prompt and then run configure from there." >&5 $as_echo "$as_me: or run \"bash.exe -l\" from a VS command prompt and then run configure from there." >&6;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for msvcr100.dll" >&5 + { { $as_echo "$as_me:$LINENO: error: Cannot continue" >&5 +$as_echo "$as_me: error: Cannot continue" >&2;} + { (exit 1); exit 1; }; } + fi + + { $as_echo "$as_me:$LINENO: checking for msvcr100.dll" >&5 $as_echo_n "checking for msvcr100.dll... " >&6; } # Check whether --with-msvcr-dll was given. -if test "${with_msvcr_dll+set}" = set; then : +if test "${with_msvcr_dll+set}" = set; then withval=$with_msvcr_dll; fi @@ -16401,27 +16289,29 @@ fi fi if test "x$MSVCR_DLL" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: msvcr100.dll found in VCINSTALLDIR: $VCINSTALLDIR" >&5 + { $as_echo "$as_me:$LINENO: msvcr100.dll found in VCINSTALLDIR: $VCINSTALLDIR" >&5 $as_echo "$as_me: msvcr100.dll found in VCINSTALLDIR: $VCINSTALLDIR" >&6;} else - { $as_echo "$as_me:${as_lineno-$LINENO}: Warning: msvcr100.dll not found in VCINSTALLDIR: $VCINSTALLDIR" >&5 + { $as_echo "$as_me:$LINENO: Warning: msvcr100.dll not found in VCINSTALLDIR: $VCINSTALLDIR" >&5 $as_echo "$as_me: Warning: msvcr100.dll not found in VCINSTALLDIR: $VCINSTALLDIR" >&6;} fi fi if test "x$MSVCR_DLL" = x; then if test -f "$SYSTEMROOT/system32/msvcr100.dll"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: msvcr100.dll found in $SYSTEMROOT/system32" >&5 + { $as_echo "$as_me:$LINENO: msvcr100.dll found in $SYSTEMROOT/system32" >&5 $as_echo "$as_me: msvcr100.dll found in $SYSTEMROOT/system32" >&6;} MSVCR_DLL="$SYSTEMROOT/system32/msvcr100.dll" fi fi fi if test "x$MSVCR_DLL" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "Could not find msvcr100.dll !" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSVCR_DLL" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:$LINENO: error: Could not find msvcr100.dll !" >&5 +$as_echo "$as_me: error: Could not find msvcr100.dll !" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: $MSVCR_DLL" >&5 $as_echo "$MSVCR_DLL" >&6; } if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then @@ -16440,9 +16330,11 @@ # 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 MSVCR_DLL, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of MSVCR_DLL, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of MSVCR_DLL, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of MSVCR_DLL" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MSVCR_DLL" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MSVCR_DLL" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -16481,7 +16373,7 @@ if test "x$path" != "x$new_path"; then MSVCR_DLL="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting MSVCR_DLL to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting MSVCR_DLL to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting MSVCR_DLL to \"$new_path\"" >&6;} fi @@ -16519,7 +16411,7 @@ if test "x$path" != "x$new_path"; then MSVCR_DLL="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting MSVCR_DLL to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting MSVCR_DLL to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting MSVCR_DLL to \"$new_path\"" >&6;} fi @@ -16531,14 +16423,18 @@ path="$MSVCR_DLL" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of MSVCR_DLL, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of MSVCR_DLL, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of MSVCR_DLL, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MSVCR_DLL, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of MSVCR_DLL, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of MSVCR_DLL, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } fi fi @@ -16568,9 +16464,9 @@ 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 test "${ac_cv_path_BUILD_CC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_BUILD_CC+set}" = set; then $as_echo_n "(cached) " >&6 else case $BUILD_CC in @@ -16583,14 +16479,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BUILD_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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -16598,10 +16494,10 @@ fi BUILD_CC=$ac_cv_path_BUILD_CC if test -n "$BUILD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5 + { $as_echo "$as_me:$LINENO: result: $BUILD_CC" >&5 $as_echo "$BUILD_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -16650,14 +16546,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of BUILD_CC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -16677,11 +16575,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CC, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CC, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of BUILD_CC, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of BUILD_CC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CC" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -16773,14 +16673,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of BUILD_CC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -16835,18 +16737,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving BUILD_CC (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving BUILD_CC (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving BUILD_CC (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of BUILD_CC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CC" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -16860,7 +16764,7 @@ if test "x$complete" != "x$new_complete"; then BUILD_CC="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BUILD_CC to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BUILD_CC to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting BUILD_CC to \"$new_complete\"" >&6;} fi @@ -16868,9 +16772,9 @@ 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 test "${ac_cv_path_BUILD_CXX+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_BUILD_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else case $BUILD_CXX in @@ -16883,14 +16787,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BUILD_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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -16898,10 +16802,10 @@ fi BUILD_CXX=$ac_cv_path_BUILD_CXX if test -n "$BUILD_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CXX" >&5 + { $as_echo "$as_me:$LINENO: result: $BUILD_CXX" >&5 $as_echo "$BUILD_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -16950,14 +16854,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of BUILD_CXX" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CXX" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -16977,11 +16883,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CXX, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CXX, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of BUILD_CXX, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of BUILD_CXX" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CXX" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -17073,14 +16981,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of BUILD_CXX" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CXX" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -17135,18 +17045,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving BUILD_CXX (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving BUILD_CXX (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving BUILD_CXX (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of BUILD_CXX" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_CXX" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -17160,15 +17072,15 @@ if test "x$complete" != "x$new_complete"; then BUILD_CXX="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BUILD_CXX to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BUILD_CXX to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting BUILD_CXX to \"$new_complete\"" >&6;} fi # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_BUILD_LD+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_BUILD_LD+set}" = set; then $as_echo_n "(cached) " >&6 else case $BUILD_LD in @@ -17181,14 +17093,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BUILD_LD="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -17196,10 +17108,10 @@ fi BUILD_LD=$ac_cv_path_BUILD_LD if test -n "$BUILD_LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_LD" >&5 + { $as_echo "$as_me:$LINENO: result: $BUILD_LD" >&5 $as_echo "$BUILD_LD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -17245,14 +17157,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of BUILD_LD" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_LD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_LD" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -17272,11 +17186,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_LD, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_LD, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of BUILD_LD, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of BUILD_LD" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_LD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_LD" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -17368,14 +17284,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of BUILD_LD" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_LD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_LD" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -17430,18 +17348,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving BUILD_LD (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving BUILD_LD (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving BUILD_LD (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of BUILD_LD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of BUILD_LD" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of BUILD_LD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of BUILD_LD" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -17455,7 +17375,7 @@ if test "x$complete" != "x$new_complete"; then BUILD_LD="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BUILD_LD to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting BUILD_LD to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;} fi @@ -17489,7 +17409,7 @@ 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:$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 @@ -17510,18 +17430,22 @@ 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:$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 + { { $as_echo "$as_me:$LINENO: error: Could not create directory $installdir" >&5 +$as_echo "$as_me: error: Could not create directory $installdir" >&2;} + { (exit 1); exit 1; }; } 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 + { { $as_echo "$as_me:$LINENO: error: Could not create files in directory $installdir" >&5 +$as_echo "$as_me: error: Could not create files in directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi # $with_builddeps_server/$resource is the ftp://abuilddeps.server.com/libs/cups.zip @@ -17559,12 +17483,16 @@ ) | 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 + { { $as_echo "$as_me:$LINENO: error: I do not know how to use the tool: $BDEPS_FTP" >&5 +$as_echo "$as_me: error: I do not know how to use the tool: $BDEPS_FTP" >&2;} + { (exit 1); exit 1; }; } fi mv $tmpfile $installdir/$filename if test ! -s $installdir/$filename; then - as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download $with_builddeps_server/$resource" >&5 +$as_echo "$as_me: error: Could not download $with_builddeps_server/$resource" >&2;} + { (exit 1); exit 1; }; } fi case "$extension" in zip) echo "Unzipping $installdir/$filename..." @@ -17576,7 +17504,9 @@ 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 + *) { { $as_echo "$as_me:$LINENO: error: Cannot handle build depency archive with extension $extension" >&5 +$as_echo "$as_me: error: Cannot handle build depency archive with extension $extension" >&2;} + { (exit 1); exit 1; }; } ;; esac fi @@ -17593,7 +17523,9 @@ 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 + { { $as_echo "$as_me:$LINENO: error: Could not download build dependency devkit" >&5 +$as_echo "$as_me: error: Could not download build dependency devkit" >&2;} + { (exit 1); exit 1; }; } fi DEVKIT=$depdir if test "x$theroot" != x; then @@ -17664,9 +17596,9 @@ 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 test "${ac_cv_path_POTENTIAL_CC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_POTENTIAL_CC+set}" = set; then $as_echo_n "(cached) " >&6 else case $POTENTIAL_CC in @@ -17679,14 +17611,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_POTENTIAL_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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -17694,10 +17626,10 @@ fi POTENTIAL_CC=$ac_cv_path_POTENTIAL_CC if test -n "$POTENTIAL_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POTENTIAL_CC" >&5 + { $as_echo "$as_me:$LINENO: result: $POTENTIAL_CC" >&5 $as_echo "$POTENTIAL_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -17733,7 +17665,9 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - as_fn_error $? "Could not find a $COMPILER_NAME compiler. $HELP_MSG" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find a $COMPILER_NAME compiler. $HELP_MSG" >&5 +$as_echo "$as_me: error: Could not find a $COMPILER_NAME compiler. $HELP_MSG" >&2;} + { (exit 1); exit 1; }; } fi if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then @@ -17776,14 +17710,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -17803,11 +17739,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CC, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of CC, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of CC, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of CC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CC" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -17899,14 +17837,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -17961,18 +17901,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving CC (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving CC (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving CC (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of CC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CC" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -17986,11 +17928,11 @@ if test "x$complete" != "x$new_complete"; then CC="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CC to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting CC to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting CC to \"$new_complete\"" >&6;} fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking resolved symbolic links for CC" >&5 + { $as_echo "$as_me:$LINENO: checking resolved symbolic links for CC" >&5 $as_echo_n "checking resolved symbolic links for CC... " >&6; } TEST_COMPILER="$CC" @@ -18037,14 +17979,14 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEST_COMPILER" >&5 + { $as_echo "$as_me:$LINENO: result: $TEST_COMPILER" >&5 $as_echo "$TEST_COMPILER" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CC is disguised ccache" >&5 + { $as_echo "$as_me:$LINENO: checking if CC is disguised ccache" >&5 $as_echo_n "checking if CC is disguised ccache... " >&6; } COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` if test "x$COMPILER_BASENAME" = "xccache"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, trying to find proper $COMPILER_NAME compiler" >&5 + { $as_echo "$as_me:$LINENO: result: yes, trying to find proper $COMPILER_NAME compiler" >&5 $as_echo "yes, trying to find proper $COMPILER_NAME compiler" >&6; } # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache. # We want to control ccache invocation ourselves, so ignore this cc and try @@ -18061,9 +18003,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$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 test "${ac_cv_prog_PROPER_COMPILER_CC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_PROPER_COMPILER_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$PROPER_COMPILER_CC"; then @@ -18074,24 +18016,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PROPER_COMPILER_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi PROPER_COMPILER_CC=$ac_cv_prog_PROPER_COMPILER_CC if test -n "$PROPER_COMPILER_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PROPER_COMPILER_CC" >&5 + { $as_echo "$as_me:$LINENO: result: $PROPER_COMPILER_CC" >&5 $as_echo "$PROPER_COMPILER_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -18105,9 +18047,9 @@ 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 test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_PROPER_COMPILER_CC"; then @@ -18118,24 +18060,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_PROPER_COMPILER_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_PROPER_COMPILER_CC=$ac_cv_prog_ac_ct_PROPER_COMPILER_CC if test -n "$ac_ct_PROPER_COMPILER_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PROPER_COMPILER_CC" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_PROPER_COMPILER_CC" >&5 $as_echo "$ac_ct_PROPER_COMPILER_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -18148,7 +18090,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -18197,14 +18139,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -18224,11 +18168,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CC, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CC, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CC, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CC" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -18320,14 +18266,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -18382,18 +18330,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving PROPER_COMPILER_CC (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving PROPER_COMPILER_CC (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving PROPER_COMPILER_CC (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CC" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -18407,13 +18357,13 @@ if test "x$complete" != "x$new_complete"; then PROPER_COMPILER_CC="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting PROPER_COMPILER_CC to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting PROPER_COMPILER_CC to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting PROPER_COMPILER_CC to \"$new_complete\"" >&6;} fi PATH="$RETRY_COMPILER_SAVED_PATH" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for resolved symbolic links for CC" >&5 + { $as_echo "$as_me:$LINENO: checking for resolved symbolic links for CC" >&5 $as_echo_n "checking for resolved symbolic links for CC... " >&6; } if test "x$OPENJDK_BUILD_OS" != xwindows; then @@ -18459,11 +18409,11 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PROPER_COMPILER_CC" >&5 + { $as_echo "$as_me:$LINENO: result: $PROPER_COMPILER_CC" >&5 $as_echo "$PROPER_COMPILER_CC" >&6; } CC="$PROPER_COMPILER_CC" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, keeping CC" >&5 + { $as_echo "$as_me:$LINENO: result: no, keeping CC" >&5 $as_echo "no, keeping CC" >&6; } CC="$TEST_COMPILER" fi @@ -18478,11 +18428,13 @@ if test $? -ne 0; then GCC_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required Sun Studio compiler." >&5 + { $as_echo "$as_me:$LINENO: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required Sun Studio compiler." >&5 $as_echo "$as_me: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required Sun Studio compiler." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: The result from running with -V was: \"$COMPILER_VERSION_TEST\" and with --version: \"$GCC_VERSION_TEST\"" >&5 + { $as_echo "$as_me:$LINENO: The result from running with -V was: \"$COMPILER_VERSION_TEST\" and with --version: \"$GCC_VERSION_TEST\"" >&5 $as_echo "$as_me: The result from running with -V was: \"$COMPILER_VERSION_TEST\" and with --version: \"$GCC_VERSION_TEST\"" >&6;} - as_fn_error $? "Sun Studio compiler is required. Try setting --with-tools-dir." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Sun Studio compiler is required. Try setting --with-tools-dir." >&5 +$as_echo "$as_me: error: Sun Studio compiler is required. Try setting --with-tools-dir." >&2;} + { (exit 1); exit 1; }; } else COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*[ ,\t]$COMPILER_NAME[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p"` COMPILER_VENDOR="Sun Studio" @@ -18496,11 +18448,15 @@ COMPILER_CPU_TEST=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* for \(.*\)$/\1/p"` if test "x$OPENJDK_TARGET_CPU" = "xx86"; then if test "x$COMPILER_CPU_TEST" != "x80x86"; then - as_fn_error $? "Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"80x86\"." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"80x86\"." >&5 +$as_echo "$as_me: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"80x86\"." >&2;} + { (exit 1); exit 1; }; } fi elif test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then if test "x$COMPILER_CPU_TEST" != "xx64"; then - as_fn_error $? "Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"x64\"." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"x64\"." >&5 +$as_echo "$as_me: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"x64\"." >&2;} + { (exit 1); exit 1; }; } fi fi else @@ -18508,11 +18464,13 @@ # Check that this is likely to be GCC. $COMPILER --version 2>&1 | $GREP "Free Software Foundation" > /dev/null if test $? -ne 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&5 + { $as_echo "$as_me:$LINENO: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&5 $as_echo "$as_me: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: The result from running with --version was: \"$COMPILER_VERSION_TEST\"" >&5 + { $as_echo "$as_me:$LINENO: The result from running with --version was: \"$COMPILER_VERSION_TEST\"" >&5 $as_echo "$as_me: The result from running with --version was: \"$COMPILER_VERSION_TEST\"" >&6;} - as_fn_error $? "GCC compiler is required. Try setting --with-tools-dir." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: GCC compiler is required. Try setting --with-tools-dir." >&5 +$as_echo "$as_me: error: GCC compiler is required. Try setting --with-tools-dir." >&2;} + { (exit 1); exit 1; }; } fi # First line typically looks something like: @@ -18525,7 +18483,7 @@ # This sets CC_VENDOR or CXX_VENDOR. (This comment is a grep marker) CC_VENDOR="$COMPILER_VENDOR" - { $as_echo "$as_me:${as_lineno-$LINENO}: Using $COMPILER_VENDOR $COMPILER_NAME compiler version $COMPILER_VERSION (located at $COMPILER)" >&5 + { $as_echo "$as_me:$LINENO: Using $COMPILER_VENDOR $COMPILER_NAME compiler version $COMPILER_VERSION (located at $COMPILER)" >&5 $as_echo "$as_me: Using $COMPILER_VENDOR $COMPILER_NAME compiler version $COMPILER_VERSION (located at $COMPILER)" >&6;} @@ -18540,9 +18498,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$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 test "${ac_cv_prog_CC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -18553,24 +18511,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -18584,9 +18542,9 @@ 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -18597,24 +18555,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -18627,7 +18585,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -18636,37 +18594,57 @@ fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5 ; } +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -18682,8 +18660,8 @@ # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -18699,17 +18677,17 @@ done rm -f $ac_rmfiles -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, @@ -18726,7 +18704,7 @@ # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -18745,41 +18723,84 @@ else ac_file='' fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +if test -z "$ac_file"; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + fi + fi +fi +{ $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -18794,83 +18815,32 @@ esac done else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5 ; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + +rm -f conftest$ac_cv_exeext +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5 ; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "${ac_cv_objext+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -18882,17 +18852,17 @@ } _ACEOF rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in @@ -18905,23 +18875,31 @@ $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5 ; } -fi +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "${ac_cv_c_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -18935,16 +18913,37 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - ac_compiler_gnu=no -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes @@ -18953,68 +18952,145 @@ fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS @@ -19031,14 +19107,18 @@ CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -19095,9 +19175,32 @@ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done @@ -19108,19 +19211,17 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 + { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -19147,9 +19248,9 @@ 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 test "${ac_cv_path_POTENTIAL_CXX+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_POTENTIAL_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else case $POTENTIAL_CXX in @@ -19162,14 +19263,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_POTENTIAL_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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -19177,10 +19278,10 @@ fi POTENTIAL_CXX=$ac_cv_path_POTENTIAL_CXX if test -n "$POTENTIAL_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POTENTIAL_CXX" >&5 + { $as_echo "$as_me:$LINENO: result: $POTENTIAL_CXX" >&5 $as_echo "$POTENTIAL_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -19216,7 +19317,9 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - as_fn_error $? "Could not find a $COMPILER_NAME compiler. $HELP_MSG" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find a $COMPILER_NAME compiler. $HELP_MSG" >&5 +$as_echo "$as_me: error: Could not find a $COMPILER_NAME compiler. $HELP_MSG" >&2;} + { (exit 1); exit 1; }; } fi if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then @@ -19259,14 +19362,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CXX" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXX" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -19286,11 +19391,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXX, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of CXX, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of CXX, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of CXX" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXX" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -19382,14 +19489,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CXX" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXX" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -19444,18 +19553,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving CXX (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving CXX (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving CXX (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of CXX" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXX" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -19469,11 +19580,11 @@ if test "x$complete" != "x$new_complete"; then CXX="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CXX to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting CXX to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting CXX to \"$new_complete\"" >&6;} fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking resolved symbolic links for CXX" >&5 + { $as_echo "$as_me:$LINENO: checking resolved symbolic links for CXX" >&5 $as_echo_n "checking resolved symbolic links for CXX... " >&6; } TEST_COMPILER="$CXX" @@ -19520,14 +19631,14 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEST_COMPILER" >&5 + { $as_echo "$as_me:$LINENO: result: $TEST_COMPILER" >&5 $as_echo "$TEST_COMPILER" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CXX is disguised ccache" >&5 + { $as_echo "$as_me:$LINENO: checking if CXX is disguised ccache" >&5 $as_echo_n "checking if CXX is disguised ccache... " >&6; } COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` if test "x$COMPILER_BASENAME" = "xccache"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, trying to find proper $COMPILER_NAME compiler" >&5 + { $as_echo "$as_me:$LINENO: result: yes, trying to find proper $COMPILER_NAME compiler" >&5 $as_echo "yes, trying to find proper $COMPILER_NAME compiler" >&6; } # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache. # We want to control ccache invocation ourselves, so ignore this cc and try @@ -19544,9 +19655,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$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 test "${ac_cv_prog_PROPER_COMPILER_CXX+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_PROPER_COMPILER_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$PROPER_COMPILER_CXX"; then @@ -19557,24 +19668,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PROPER_COMPILER_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi PROPER_COMPILER_CXX=$ac_cv_prog_PROPER_COMPILER_CXX if test -n "$PROPER_COMPILER_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PROPER_COMPILER_CXX" >&5 + { $as_echo "$as_me:$LINENO: result: $PROPER_COMPILER_CXX" >&5 $as_echo "$PROPER_COMPILER_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -19588,9 +19699,9 @@ 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 test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_PROPER_COMPILER_CXX"; then @@ -19601,24 +19712,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_PROPER_COMPILER_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_PROPER_COMPILER_CXX=$ac_cv_prog_ac_ct_PROPER_COMPILER_CXX if test -n "$ac_ct_PROPER_COMPILER_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PROPER_COMPILER_CXX" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_PROPER_COMPILER_CXX" >&5 $as_echo "$ac_ct_PROPER_COMPILER_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -19631,7 +19742,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -19680,14 +19791,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CXX" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -19707,11 +19820,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CXX, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CXX, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CXX, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CXX" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -19803,14 +19918,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CXX" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -19865,18 +19982,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving PROPER_COMPILER_CXX (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving PROPER_COMPILER_CXX (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving PROPER_COMPILER_CXX (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of PROPER_COMPILER_CXX, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of PROPER_COMPILER_CXX" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&5 +$as_echo "$as_me: error: Cannot locate the the path of PROPER_COMPILER_CXX" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -19890,13 +20009,13 @@ if test "x$complete" != "x$new_complete"; then PROPER_COMPILER_CXX="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting PROPER_COMPILER_CXX to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting PROPER_COMPILER_CXX to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting PROPER_COMPILER_CXX to \"$new_complete\"" >&6;} fi PATH="$RETRY_COMPILER_SAVED_PATH" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for resolved symbolic links for CXX" >&5 + { $as_echo "$as_me:$LINENO: checking for resolved symbolic links for CXX" >&5 $as_echo_n "checking for resolved symbolic links for CXX... " >&6; } if test "x$OPENJDK_BUILD_OS" != xwindows; then @@ -19942,11 +20061,11 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PROPER_COMPILER_CXX" >&5 + { $as_echo "$as_me:$LINENO: result: $PROPER_COMPILER_CXX" >&5 $as_echo "$PROPER_COMPILER_CXX" >&6; } CXX="$PROPER_COMPILER_CXX" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, keeping CXX" >&5 + { $as_echo "$as_me:$LINENO: result: no, keeping CXX" >&5 $as_echo "no, keeping CXX" >&6; } CXX="$TEST_COMPILER" fi @@ -19961,11 +20080,13 @@ if test $? -ne 0; then GCC_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required Sun Studio compiler." >&5 + { $as_echo "$as_me:$LINENO: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required Sun Studio compiler." >&5 $as_echo "$as_me: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required Sun Studio compiler." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: The result from running with -V was: \"$COMPILER_VERSION_TEST\" and with --version: \"$GCC_VERSION_TEST\"" >&5 + { $as_echo "$as_me:$LINENO: The result from running with -V was: \"$COMPILER_VERSION_TEST\" and with --version: \"$GCC_VERSION_TEST\"" >&5 $as_echo "$as_me: The result from running with -V was: \"$COMPILER_VERSION_TEST\" and with --version: \"$GCC_VERSION_TEST\"" >&6;} - as_fn_error $? "Sun Studio compiler is required. Try setting --with-tools-dir." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Sun Studio compiler is required. Try setting --with-tools-dir." >&5 +$as_echo "$as_me: error: Sun Studio compiler is required. Try setting --with-tools-dir." >&2;} + { (exit 1); exit 1; }; } else COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*[ ,\t]$COMPILER_NAME[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p"` COMPILER_VENDOR="Sun Studio" @@ -19979,11 +20100,15 @@ COMPILER_CPU_TEST=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* for \(.*\)$/\1/p"` if test "x$OPENJDK_TARGET_CPU" = "xx86"; then if test "x$COMPILER_CPU_TEST" != "x80x86"; then - as_fn_error $? "Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"80x86\"." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"80x86\"." >&5 +$as_echo "$as_me: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"80x86\"." >&2;} + { (exit 1); exit 1; }; } fi elif test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then if test "x$COMPILER_CPU_TEST" != "xx64"; then - as_fn_error $? "Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"x64\"." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"x64\"." >&5 +$as_echo "$as_me: error: Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for \"$COMPILER_CPU_TEST\"; expected \"x64\"." >&2;} + { (exit 1); exit 1; }; } fi fi else @@ -19991,11 +20116,13 @@ # Check that this is likely to be GCC. $COMPILER --version 2>&1 | $GREP "Free Software Foundation" > /dev/null if test $? -ne 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&5 + { $as_echo "$as_me:$LINENO: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&5 $as_echo "$as_me: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: The result from running with --version was: \"$COMPILER_VERSION_TEST\"" >&5 + { $as_echo "$as_me:$LINENO: The result from running with --version was: \"$COMPILER_VERSION_TEST\"" >&5 $as_echo "$as_me: The result from running with --version was: \"$COMPILER_VERSION_TEST\"" >&6;} - as_fn_error $? "GCC compiler is required. Try setting --with-tools-dir." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: GCC compiler is required. Try setting --with-tools-dir." >&5 +$as_echo "$as_me: error: GCC compiler is required. Try setting --with-tools-dir." >&2;} + { (exit 1); exit 1; }; } fi # First line typically looks something like: @@ -20008,7 +20135,7 @@ # This sets CC_VENDOR or CXX_VENDOR. (This comment is a grep marker) CXX_VENDOR="$COMPILER_VENDOR" - { $as_echo "$as_me:${as_lineno-$LINENO}: Using $COMPILER_VENDOR $COMPILER_NAME compiler version $COMPILER_VERSION (located at $COMPILER)" >&5 + { $as_echo "$as_me:$LINENO: Using $COMPILER_VENDOR $COMPILER_NAME compiler version $COMPILER_VERSION (located at $COMPILER)" >&5 $as_echo "$as_me: Using $COMPILER_VENDOR $COMPILER_NAME compiler version $COMPILER_VERSION (located at $COMPILER)" >&6;} @@ -20027,9 +20154,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$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 test "${ac_cv_prog_CXX+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -20040,24 +20167,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 + { $as_echo "$as_me:$LINENO: result: $CXX" >&5 $as_echo "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -20071,9 +20198,9 @@ 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 test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -20084,24 +20211,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -20114,7 +20241,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -20125,36 +20252,53 @@ fi fi # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -20168,16 +20312,37 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - ac_compiler_gnu=no -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes @@ -20186,68 +20351,145 @@ fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then : +if test "${ac_cv_prog_cxx_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS @@ -20284,9 +20526,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$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 test "${ac_cv_prog_OBJC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OBJC"; then @@ -20297,24 +20539,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi OBJC=$ac_cv_prog_OBJC if test -n "$OBJC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJC" >&5 + { $as_echo "$as_me:$LINENO: result: $OBJC" >&5 $as_echo "$OBJC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -20328,9 +20570,9 @@ 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 test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJC"; then @@ -20341,24 +20583,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_OBJC=$ac_cv_prog_ac_ct_OBJC if test -n "$ac_ct_OBJC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJC" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJC" >&5 $as_echo "$ac_ct_OBJC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -20371,7 +20613,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -20380,36 +20622,53 @@ fi # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for Objective C compiler version" >&5 +$as_echo "$as_me:$LINENO: checking for Objective C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C compiler" >&5 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Objective C compiler" >&5 $as_echo_n "checking whether we are using the GNU Objective C compiler... " >&6; } -if test "${ac_cv_objc_compiler_gnu+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "${ac_cv_objc_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -20423,16 +20682,37 @@ return 0; } _ACEOF -if ac_fn_objc_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_objc_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - ac_compiler_gnu=no -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_objc_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objc_compiler_gnu" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objc_compiler_gnu" >&5 $as_echo "$ac_cv_objc_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GOBJC=yes @@ -20441,68 +20721,145 @@ fi ac_test_OBJCFLAGS=${OBJCFLAGS+set} ac_save_OBJCFLAGS=$OBJCFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJC accepts -g" >&5 +{ $as_echo "$as_me:$LINENO: checking whether $OBJC accepts -g" >&5 $as_echo_n "checking whether $OBJC accepts -g... " >&6; } -if test "${ac_cv_prog_objc_g+set}" = set; then : +if test "${ac_cv_prog_objc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_objc_werror_flag=$ac_objc_werror_flag ac_objc_werror_flag=yes ac_cv_prog_objc_g=no OBJCFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_objc_try_compile "$LINENO"; then : + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_objc_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_objc_g=yes else - OBJCFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_objc_try_compile "$LINENO"; then : - -else - ac_objc_werror_flag=$ac_save_objc_werror_flag + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + OBJCFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_objc_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_objc_werror_flag=$ac_save_objc_werror_flag OBJCFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_objc_try_compile "$LINENO"; then : + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_objc_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_objc_g=yes -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_objc_werror_flag=$ac_save_objc_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_objc_g" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_objc_g" >&5 $as_echo "$ac_cv_prog_objc_g" >&6; } if test "$ac_test_OBJCFLAGS" = set; then OBJCFLAGS=$ac_save_OBJCFLAGS @@ -20566,14 +20923,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of OBJC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -20593,11 +20952,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJC, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJC, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of OBJC, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of OBJC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJC" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -20689,14 +21050,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of OBJC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -20751,18 +21114,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving OBJC (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving OBJC (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving OBJC (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of OBJC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJC" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -20776,7 +21141,7 @@ if test "x$complete" != "x$new_complete"; then OBJC="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting OBJC to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting OBJC to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting OBJC to \"$new_complete\"" >&6;} fi @@ -20806,9 +21171,9 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -20819,24 +21184,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 + { $as_echo "$as_me:$LINENO: result: $AR" >&5 $as_echo "$AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -20846,9 +21211,9 @@ ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -20859,24 +21224,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -20885,7 +21250,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -20936,14 +21301,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AR, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of AR, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of AR, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of AR" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AR" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -20963,11 +21330,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AR, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of AR, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of AR, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of AR" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AR" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -21059,14 +21428,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AR, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of AR, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of AR, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of AR" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AR" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -21121,18 +21492,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving AR (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving AR (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving AR (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AR, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of AR, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of AR, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of AR" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AR" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -21146,7 +21519,7 @@ if test "x$complete" != "x$new_complete"; then AR="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting AR to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting AR to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting AR to \"$new_complete\"" >&6;} fi @@ -21166,7 +21539,7 @@ COMPILER_NAME=gcc COMPILER_TYPE=CC -if test "x$OPENJDK_TARGET_OS" = xwindows; then : +if test "x$OPENJDK_TARGET_OS" = xwindows; then # For now, assume that we are always compiling using cl.exe. CC_OUT_OPTION=-Fo @@ -21177,9 +21550,9 @@ # program for something completely different. # Extract the first word of "link", so it can be a program name with args. set dummy link; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINLD+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_WINLD+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$WINLD"; then @@ -21191,18 +21564,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "$CYGWIN_LINK"; then ac_prog_rejected=yes continue fi ac_cv_prog_WINLD="link" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -21221,10 +21594,10 @@ fi WINLD=$ac_cv_prog_WINLD if test -n "$WINLD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINLD" >&5 + { $as_echo "$as_me:$LINENO: result: $WINLD" >&5 $as_echo "$WINLD" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -21272,14 +21645,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINLD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of WINLD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of WINLD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of WINLD" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINLD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINLD" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -21299,11 +21674,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINLD, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of WINLD, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of WINLD, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of WINLD" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINLD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINLD" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -21395,14 +21772,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINLD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of WINLD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of WINLD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of WINLD" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINLD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINLD" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -21457,18 +21836,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving WINLD (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving WINLD (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving WINLD (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINLD, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of WINLD, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of WINLD, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of WINLD" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINLD" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINLD" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -21482,20 +21863,22 @@ if test "x$complete" != "x$new_complete"; then WINLD="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting WINLD to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting WINLD to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting WINLD to \"$new_complete\"" >&6;} fi printf "Windows linker was found at $WINLD\n" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the found link.exe is actually the Visual Studio linker" >&5 + { $as_echo "$as_me:$LINENO: checking if the found link.exe is actually the Visual Studio linker" >&5 $as_echo_n "checking if the found link.exe is actually the Visual Studio linker... " >&6; } "$WINLD" --version > /dev/null if test $? -eq 0 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "This is the Cygwin link tool. Please check your PATH and rerun configure." "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:$LINENO: error: This is the Cygwin link tool. Please check your PATH and rerun configure." >&5 +$as_echo "$as_me: error: This is the Cygwin link tool. Please check your PATH and rerun configure." >&2;} + { (exit 1); exit 1; }; } + else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } fi LD="$WINLD" @@ -21505,9 +21888,9 @@ # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MT+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_MT+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$MT"; then @@ -21519,18 +21902,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/bin/mt"; then ac_prog_rejected=yes continue fi ac_cv_prog_MT="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -21549,10 +21932,10 @@ fi MT=$ac_cv_prog_MT if test -n "$MT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MT" >&5 + { $as_echo "$as_me:$LINENO: result: $MT" >&5 $as_echo "$MT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -21598,14 +21981,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MT, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of MT, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of MT, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of MT" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MT" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MT" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -21625,11 +22010,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MT, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of MT, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of MT, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of MT" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MT" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MT" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -21721,14 +22108,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MT, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of MT, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of MT, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of MT" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MT" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MT" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -21783,18 +22172,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving MT (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving MT (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving MT (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MT, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of MT, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of MT, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of MT" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MT" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MT" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -21808,16 +22199,16 @@ if test "x$complete" != "x$new_complete"; then MT="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting MT to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting MT to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting MT to \"$new_complete\"" >&6;} fi # The resource compiler # Extract the first word of "rc", so it can be a program name with args. set dummy rc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RC+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$RC"; then @@ -21829,18 +22220,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/bin/rc"; then ac_prog_rejected=yes continue fi ac_cv_prog_RC="rc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -21859,10 +22250,10 @@ fi RC=$ac_cv_prog_RC if test -n "$RC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 + { $as_echo "$as_me:$LINENO: result: $RC" >&5 $as_echo "$RC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -21908,14 +22299,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of RC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of RC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of RC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of RC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of RC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of RC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -21935,11 +22328,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of RC, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of RC, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of RC, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of RC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of RC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of RC" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -22031,14 +22426,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of RC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of RC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of RC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of RC" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of RC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of RC" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -22093,18 +22490,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving RC (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving RC (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving RC (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of RC, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of RC, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of RC, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of RC" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of RC" >&5 +$as_echo "$as_me: error: Cannot locate the the path of RC" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -22118,7 +22517,7 @@ if test "x$complete" != "x$new_complete"; then RC="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting RC to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting RC to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting RC to \"$new_complete\"" >&6;} fi @@ -22173,17 +22572,19 @@ RC_FLAGS="-nologo -l 0x409 -r" - if test "x$VARIANT" = xOPT; then : + if test "x$VARIANT" = xOPT; then RC_FLAGS="$RC_FLAGS -d NDEBUG" fi + JDK_UPDATE_VERSION_NOTNULL=$JDK_UPDATE_VERSION - if test "x$JDK_UPDATE_VERSION" = x; then : + if test "x$JDK_UPDATE_VERSION" = x; then JDK_UPDATE_VERSION_NOTNULL=0 fi + RC_FLAGS="$RC_FLAGS -d \"JDK_BUILD_ID=$FULL_VERSION\"" RC_FLAGS="$RC_FLAGS -d \"JDK_COMPANY=$COMPANY_NAME\"" RC_FLAGS="$RC_FLAGS -d \"JDK_COMPONENT=$PRODUCT_NAME $JDK_RC_PLATFORM_NAME binary\"" @@ -22195,9 +22596,9 @@ # lib.exe is used to create static libraries. # Extract the first word of "lib", so it can be a program name with args. set dummy lib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINAR+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_WINAR+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$WINAR"; then @@ -22208,24 +22609,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_WINAR="lib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi WINAR=$ac_cv_prog_WINAR if test -n "$WINAR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINAR" >&5 + { $as_echo "$as_me:$LINENO: result: $WINAR" >&5 $as_echo "$WINAR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -22271,14 +22672,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINAR, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of WINAR, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of WINAR, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of WINAR" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINAR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINAR" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -22298,11 +22701,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINAR, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of WINAR, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of WINAR, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of WINAR" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINAR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINAR" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -22394,14 +22799,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINAR, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of WINAR, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of WINAR, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of WINAR" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINAR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINAR" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -22456,18 +22863,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving WINAR (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving WINAR (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving WINAR (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of WINAR, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of WINAR, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of WINAR, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of WINAR" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of WINAR" >&5 +$as_echo "$as_me: error: Cannot locate the the path of WINAR" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -22481,7 +22890,7 @@ if test "x$complete" != "x$new_complete"; then WINAR="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting WINAR to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting WINAR to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting WINAR to \"$new_complete\"" >&6;} fi @@ -22490,9 +22899,9 @@ # Extract the first word of "dumpbin", so it can be a program name with args. set dummy dumpbin; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DUMPBIN+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then @@ -22503,24 +22912,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="dumpbin" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 + { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -22566,14 +22975,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of DUMPBIN" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of DUMPBIN" >&5 +$as_echo "$as_me: error: Cannot locate the the path of DUMPBIN" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -22593,11 +23004,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of DUMPBIN, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of DUMPBIN, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of DUMPBIN, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of DUMPBIN" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of DUMPBIN" >&5 +$as_echo "$as_me: error: Cannot locate the the path of DUMPBIN" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -22689,14 +23102,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of DUMPBIN" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of DUMPBIN" >&5 +$as_echo "$as_me: error: Cannot locate the the path of DUMPBIN" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -22751,18 +23166,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving DUMPBIN (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving DUMPBIN (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving DUMPBIN (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of DUMPBIN, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of DUMPBIN" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of DUMPBIN" >&5 +$as_echo "$as_me: error: Cannot locate the the path of DUMPBIN" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -22776,7 +23193,7 @@ if test "x$complete" != "x$new_complete"; then DUMPBIN="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting DUMPBIN to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting DUMPBIN to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting DUMPBIN to \"$new_complete\"" >&6;} fi @@ -22788,19 +23205,20 @@ + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -22815,7 +23233,11 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include @@ -22824,34 +23246,78 @@ #endif Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then break fi @@ -22863,7 +23329,7 @@ else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes @@ -22874,7 +23340,11 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include @@ -22883,40 +23353,87 @@ #endif Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5 ; } +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } fi ac_ext=cpp @@ -22966,14 +23483,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CPP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CPP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CPP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CPP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CPP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -22993,11 +23512,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CPP, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of CPP, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of CPP, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of CPP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CPP" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -23089,14 +23610,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CPP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CPP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CPP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CPP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CPP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -23151,18 +23674,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving CPP (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving CPP (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving CPP (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CPP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CPP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CPP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of CPP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CPP" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -23176,7 +23701,7 @@ if test "x$complete" != "x$new_complete"; then CPP="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CPP to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting CPP to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting CPP to \"$new_complete\"" >&6;} fi @@ -23186,10 +23711,10 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then : + if test "${ac_cv_prog_CXXCPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded @@ -23204,7 +23729,11 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include @@ -23213,34 +23742,78 @@ #endif Syntax error _ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then break fi @@ -23252,7 +23825,7 @@ else ac_cv_prog_CXXCPP=$CXXCPP fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes @@ -23263,7 +23836,11 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include @@ -23272,40 +23849,87 @@ #endif Syntax error _ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5 ; } +{ { $as_echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } fi ac_ext=cpp @@ -23355,14 +23979,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXXCPP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CXXCPP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CXXCPP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CXXCPP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXXCPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXXCPP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -23382,11 +24008,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXXCPP, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of CXXCPP, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of CXXCPP, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of CXXCPP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXXCPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXXCPP" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -23478,14 +24106,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXXCPP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CXXCPP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CXXCPP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of CXXCPP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXXCPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXXCPP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -23540,18 +24170,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving CXXCPP (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving CXXCPP (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving CXXCPP (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CXXCPP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of CXXCPP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of CXXCPP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of CXXCPP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of CXXCPP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of CXXCPP" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -23565,7 +24197,7 @@ if test "x$complete" != "x$new_complete"; then CXXCPP="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CXXCPP to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting CXXCPP to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting CXXCPP to \"$new_complete\"" >&6;} fi @@ -23594,9 +24226,9 @@ if test "x$OPENJDK_TARGET_OS" = xsolaris; then # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_AS+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_AS+set}" = set; then $as_echo_n "(cached) " >&6 else case $AS in @@ -23609,14 +24241,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_AS="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -23624,10 +24256,10 @@ fi AS=$ac_cv_path_AS if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 + { $as_echo "$as_me:$LINENO: result: $AS" >&5 $as_echo "$AS" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -23673,14 +24305,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AS, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of AS, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of AS, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of AS" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AS" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -23700,11 +24334,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AS, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of AS, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of AS, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of AS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AS" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -23796,14 +24432,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AS, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of AS, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of AS, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of AS" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AS" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -23858,18 +24496,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving AS (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving AS (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving AS (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of AS, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of AS, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of AS, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of AS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of AS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of AS" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -23883,7 +24523,7 @@ if test "x$complete" != "x$new_complete"; then AS="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting AS to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting AS to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting AS to \"$new_complete\"" >&6;} fi @@ -23897,9 +24537,9 @@ 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 test "${ac_cv_path_NM+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_NM+set}" = set; then $as_echo_n "(cached) " >&6 else case $NM in @@ -23912,14 +24552,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_NM="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -23927,10 +24567,10 @@ fi NM=$ac_cv_path_NM if test -n "$NM"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5 + { $as_echo "$as_me:$LINENO: result: $NM" >&5 $as_echo "$NM" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -23979,14 +24619,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -24006,11 +24648,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -24102,14 +24746,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -24164,18 +24810,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving NM (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving NM (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving NM (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -24189,15 +24837,15 @@ if test "x$complete" != "x$new_complete"; then NM="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting NM to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting NM to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting NM to \"$new_complete\"" >&6;} fi # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_STRIP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else case $STRIP in @@ -24210,14 +24858,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_STRIP="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -24225,10 +24873,10 @@ fi STRIP=$ac_cv_path_STRIP if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -24274,14 +24922,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -24301,11 +24951,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -24397,14 +25049,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -24459,18 +25113,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving STRIP (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving STRIP (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving STRIP (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -24484,15 +25140,15 @@ if test "x$complete" != "x$new_complete"; then STRIP="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting STRIP to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting STRIP to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting STRIP to \"$new_complete\"" >&6;} fi # Extract the first word of "mcs", so it can be a program name with args. set dummy mcs; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MCS+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MCS+set}" = set; then $as_echo_n "(cached) " >&6 else case $MCS in @@ -24505,14 +25161,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MCS="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -24520,10 +25176,10 @@ fi MCS=$ac_cv_path_MCS if test -n "$MCS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5 + { $as_echo "$as_me:$LINENO: result: $MCS" >&5 $as_echo "$MCS" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -24569,14 +25225,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of MCS, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of MCS, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MCS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MCS" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -24596,11 +25254,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of MCS, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of MCS, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MCS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MCS" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -24692,14 +25352,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of MCS, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of MCS, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MCS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MCS" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -24754,18 +25416,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving MCS (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving MCS (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving MCS (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of MCS, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of MCS, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of MCS, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of MCS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of MCS" >&5 +$as_echo "$as_me: error: Cannot locate the the path of MCS" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -24779,7 +25443,7 @@ if test "x$complete" != "x$new_complete"; then MCS="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting MCS to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting MCS to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting MCS to \"$new_complete\"" >&6;} fi @@ -24787,9 +25451,9 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args. set dummy ${ac_tool_prefix}nm; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NM+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_NM+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -24800,24 +25464,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NM="${ac_tool_prefix}nm" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi NM=$ac_cv_prog_NM if test -n "$NM"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5 + { $as_echo "$as_me:$LINENO: result: $NM" >&5 $as_echo "$NM" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -24827,9 +25491,9 @@ ac_ct_NM=$NM # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_NM+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_NM+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NM"; then @@ -24840,24 +25504,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NM="nm" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_NM=$ac_cv_prog_ac_ct_NM if test -n "$ac_ct_NM"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_NM" >&5 $as_echo "$ac_ct_NM" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -24866,7 +25530,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -24917,14 +25581,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -24944,11 +25610,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -25040,14 +25708,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -25102,18 +25772,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving NM (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving NM (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving NM (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of NM, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of NM, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of NM, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of NM" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of NM" >&5 +$as_echo "$as_me: error: Cannot locate the the path of NM" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -25127,16 +25799,16 @@ if test "x$complete" != "x$new_complete"; then NM="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting NM to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting NM to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting NM to \"$new_complete\"" >&6;} fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -25147,24 +25819,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -25174,9 +25846,9 @@ ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -25187,24 +25859,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -25213,7 +25885,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -25264,14 +25936,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -25291,11 +25965,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -25387,14 +26063,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -25449,18 +26127,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving STRIP (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving STRIP (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving STRIP (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of STRIP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of STRIP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of STRIP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of STRIP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of STRIP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of STRIP" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -25474,7 +26154,7 @@ if test "x$complete" != "x$new_complete"; then STRIP="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting STRIP to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting STRIP to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting STRIP to \"$new_complete\"" >&6;} fi @@ -25488,9 +26168,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$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 test "${ac_cv_prog_OBJCOPY+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJCOPY+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OBJCOPY"; then @@ -25501,24 +26181,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJCOPY="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi OBJCOPY=$ac_cv_prog_OBJCOPY if test -n "$OBJCOPY"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5 + { $as_echo "$as_me:$LINENO: result: $OBJCOPY" >&5 $as_echo "$OBJCOPY" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -25532,9 +26212,9 @@ 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 test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJCOPY"; then @@ -25545,24 +26225,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJCOPY="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_OBJCOPY=$ac_cv_prog_ac_ct_OBJCOPY if test -n "$ac_ct_OBJCOPY"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJCOPY" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJCOPY" >&5 $as_echo "$ac_ct_OBJCOPY" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -25575,7 +26255,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -25624,14 +26304,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of OBJCOPY" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJCOPY" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJCOPY" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -25651,11 +26333,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJCOPY, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJCOPY, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of OBJCOPY, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of OBJCOPY" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJCOPY" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJCOPY" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -25747,14 +26431,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of OBJCOPY" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJCOPY" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJCOPY" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -25809,18 +26495,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving OBJCOPY (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving OBJCOPY (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving OBJCOPY (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJCOPY, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of OBJCOPY" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJCOPY" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJCOPY" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -25834,7 +26522,7 @@ if test "x$complete" != "x$new_complete"; then OBJCOPY="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting OBJCOPY to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting OBJCOPY to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting OBJCOPY to \"$new_complete\"" >&6;} fi @@ -25845,9 +26533,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$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 test "${ac_cv_prog_OBJDUMP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -25858,24 +26546,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 + { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -25889,9 +26577,9 @@ 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 test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then @@ -25902,24 +26590,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 + { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -25932,7 +26620,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac @@ -25983,14 +26671,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of OBJDUMP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJDUMP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJDUMP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -26010,11 +26700,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJDUMP, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJDUMP, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of OBJDUMP, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of OBJDUMP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJDUMP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJDUMP" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -26106,14 +26798,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of OBJDUMP" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJDUMP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJDUMP" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -26168,18 +26862,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving OBJDUMP (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving OBJDUMP (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving OBJDUMP (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of OBJDUMP, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of OBJDUMP" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of OBJDUMP" >&5 +$as_echo "$as_me: error: Cannot locate the the path of OBJDUMP" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -26193,7 +26889,7 @@ if test "x$complete" != "x$new_complete"; then OBJDUMP="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting OBJDUMP to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting OBJDUMP to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting OBJDUMP to \"$new_complete\"" >&6;} fi @@ -26202,9 +26898,9 @@ if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LIPO+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_LIPO+set}" = set; then $as_echo_n "(cached) " >&6 else case $LIPO in @@ -26217,14 +26913,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIPO="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -26232,10 +26928,10 @@ fi LIPO=$ac_cv_path_LIPO if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 + { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi @@ -26281,14 +26977,16 @@ fi if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of LIPO, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of LIPO, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of LIPO, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of LIPO" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of LIPO" >&5 +$as_echo "$as_me: error: Cannot locate the the path of LIPO" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -26308,11 +27006,13 @@ elif test -f "${new_path}.cmd"; then input_to_shortpath="${new_path}.cmd" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of LIPO, which resolves as \"$new_path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of LIPO, which resolves as \"$new_path\", is invalid." >&5 $as_echo "$as_me: The path of LIPO, which resolves as \"$new_path\", is invalid." >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 + { $as_echo "$as_me:$LINENO: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&5 $as_echo "$as_me: Neither \"$new_path\" nor \"$new_path.exe/cmd\" can be found" >&6;} - as_fn_error $? "Cannot locate the the path of LIPO" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of LIPO" >&5 +$as_echo "$as_me: error: Cannot locate the the path of LIPO" >&2;} + { (exit 1); exit 1; }; } fi else input_to_shortpath="$new_path" @@ -26404,14 +27104,16 @@ if test "x$new_path" = x; then # It's still not found. Now this is an unrecoverable error. - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of LIPO, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of LIPO, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of LIPO, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 -$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} - fi - as_fn_error $? "Cannot locate the the path of LIPO" "$LINENO" 5 + { $as_echo "$as_me:$LINENO: You might be mixing spaces in the path and extra arguments, which is not allowed." >&5 +$as_echo "$as_me: You might be mixing spaces in the path and extra arguments, which is not allowed." >&6;} + fi + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of LIPO" >&5 +$as_echo "$as_me: error: Cannot locate the the path of LIPO" >&2;} + { (exit 1); exit 1; }; } fi fi @@ -26466,18 +27168,20 @@ if test "x$new_path" = x; then is_absolute_path=`$ECHO "$path" | $GREP ^/` if test "x$is_absolute_path" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Resolving LIPO (as $path) with 'which' failed, using $path directly." >&5 + { $as_echo "$as_me:$LINENO: Resolving LIPO (as $path) with 'which' failed, using $path directly." >&5 $as_echo "$as_me: Resolving LIPO (as $path) with 'which' failed, using $path directly." >&6;} new_path="$path" else - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of LIPO, which resolves as \"$complete\", is not found." >&5 + { $as_echo "$as_me:$LINENO: The path of LIPO, which resolves as \"$complete\", is not found." >&5 $as_echo "$as_me: The path of LIPO, which resolves as \"$complete\", is not found." >&6;} has_space=`$ECHO "$complete" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be caused by spaces in the path, which is not allowed." >&5 + { $as_echo "$as_me:$LINENO: This might be caused by spaces in the path, which is not allowed." >&5 $as_echo "$as_me: This might be caused by spaces in the path, which is not allowed." >&6;} fi - as_fn_error $? "Cannot locate the the path of LIPO" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of LIPO" >&5 +$as_echo "$as_me: error: Cannot locate the the path of LIPO" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -26491,7 +27195,7 @@ if test "x$complete" != "x$new_complete"; then LIPO="$new_complete" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting LIPO to \"$new_complete\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting LIPO to \"$new_complete\"" >&5 $as_echo "$as_me: Rewriting LIPO to \"$new_complete\"" >&6;} fi @@ -26506,12 +27210,16 @@ # And we can test some aspects on the target using configure macros. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test "${ac_cv_header_stdc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -26526,23 +27234,48 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else - ac_cv_header_stdc=no -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - + $EGREP "memchr" >/dev/null 2>&1; then + : else ac_cv_header_stdc=no fi @@ -26552,14 +27285,18 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - + $EGREP "free" >/dev/null 2>&1; then + : else ac_cv_header_stdc=no fi @@ -26569,10 +27306,14 @@ if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then : else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -26599,33 +27340,118 @@ return 0; } _ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then -$as_echo "#define STDC_HEADERS 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -26681,26 +27507,167 @@ fi # Make compilation sanity check + for ac_header in stdio.h -do : - ac_fn_cxx_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" -if test "x$ac_cv_header_stdio_h" = x""yes; then : +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------- ## +## Report this to build-dev@openjdk.java.net ## +## ----------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_STDIO_H 1 -_ACEOF - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: Failed to compile stdio.h. This likely implies missing compile dependencies." >&5 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + + { $as_echo "$as_me:$LINENO: Failed to compile stdio.h. This likely implies missing compile dependencies." >&5 $as_echo "$as_me: Failed to compile stdio.h. This likely implies missing compile dependencies." >&6;} if test "x$COMPILE_TYPE" = xreduced; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a reduced build. Check that you have 32-bit libraries installed." >&5 + { $as_echo "$as_me:$LINENO: You are doing a reduced build. Check that you have 32-bit libraries installed." >&5 $as_echo "$as_me: You are doing a reduced build. Check that you have 32-bit libraries installed." >&6;} elif test "x$COMPILE_TYPE" = xcross; then - { $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&5 + { $as_echo "$as_me:$LINENO: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&5 $as_echo "$as_me: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&6;} fi - as_fn_error $? "Cannot continue." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot continue." >&5 +$as_echo "$as_me: error: Cannot continue." >&2;} + { (exit 1); exit 1; }; } fi @@ -26711,26 +27678,352 @@ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5 +{ $as_echo "$as_me:$LINENO: checking size of int *" >&5 $as_echo_n "checking size of int *... " >&6; } -if test "${ac_cv_sizeof_int_p+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int *))" "ac_cv_sizeof_int_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +if test "${ac_cv_sizeof_int_p+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (int *))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (int *))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (int *))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (int *))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (int *))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_int_p=$ac_lo;; +'') if test "$ac_cv_type_int_p" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int *) -See \`config.log' for more details" "$LINENO" 5 ; } +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int *) +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute sizeof (int *) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_int_p=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +static long int longval () { return (long int) (sizeof (int *)); } +static unsigned long int ulongval () { return (long int) (sizeof (int *)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (int *))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (int *)))) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (int *)))) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_int_p=`cat conftest.val` +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_int_p" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int *) +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute sizeof (int *) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; }; } else ac_cv_sizeof_int_p=0 fi fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_p" >&5 +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_int_p" >&5 $as_echo "$ac_cv_sizeof_int_p" >&6; } @@ -26748,19 +28041,21 @@ if test "x$SIZEOF_INT_P" = x; then # The test failed, lets stick to the assumed value. - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The number of bits in the target could not be determined, using $OPENJDK_TARGET_CPU_BITS." >&5 + { $as_echo "$as_me:$LINENO: WARNING: The number of bits in the target could not be determined, using $OPENJDK_TARGET_CPU_BITS." >&5 $as_echo "$as_me: WARNING: The number of bits in the target could not be determined, using $OPENJDK_TARGET_CPU_BITS." >&2;} else TESTED_TARGET_CPU_BITS=`expr 8 \* $SIZEOF_INT_P` if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then - as_fn_error $? "The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" "$LINENO" 5 - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for target address size" >&5 + { { $as_echo "$as_me:$LINENO: error: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" >&5 +$as_echo "$as_me: error: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +{ $as_echo "$as_me:$LINENO: checking for target address size" >&5 $as_echo_n "checking for target address size... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENJDK_TARGET_CPU_BITS bits" >&5 +{ $as_echo "$as_me:$LINENO: result: $OPENJDK_TARGET_CPU_BITS bits" >&5 $as_echo "$OPENJDK_TARGET_CPU_BITS bits" >&6; } @@ -26768,14 +28063,19 @@ # # Is the target little of big endian? # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 + + { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : +if test "${ac_cv_c_bigendian+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler @@ -26783,34 +28083,46 @@ typedef int dummy; _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi + # there are some -arch flags. Note that *ppc* also matches + # ppc64. This check is also rather less than ideal. + case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #( + *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;; + esac +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -26828,9 +28140,30 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -26846,18 +28179,49 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else - ac_cv_c_bigendian=no -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_bigendian=no +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include @@ -26872,9 +28236,30 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include @@ -26889,20 +28274,51 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else - ac_cv_c_bigendian=no -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_bigendian=no +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; @@ -26928,7 +28344,24 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi @@ -26940,10 +28373,20 @@ ac_cv_c_bigendian=unknown fi fi -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int @@ -26963,18 +28406,45 @@ return 0; } _ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_c_bigendian=no else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) @@ -26990,10 +28460,14 @@ if test "x$ENDIAN" = xuniversal_endianness; then - as_fn_error $? "Building with both big and little endianness is not supported" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Building with both big and little endianness is not supported" >&5 +$as_echo "$as_me: error: Building with both big and little endianness is not supported" >&2;} + { (exit 1); exit 1; }; } fi if test "x$ENDIAN" != "x$OPENJDK_TARGET_CPU_ENDIAN"; then - as_fn_error $? "The tested endian in the target ($ENDIAN) differs from the endian expected to be found in the target ($OPENJDK_TARGET_CPU_ENDIAN)" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The tested endian in the target ($ENDIAN) differs from the endian expected to be found in the target ($OPENJDK_TARGET_CPU_ENDIAN)" >&5 +$as_echo "$as_me: error: The tested endian in the target ($ENDIAN) differs from the endian expected to be found in the target ($OPENJDK_TARGET_CPU_ENDIAN)" >&2;} + { (exit 1); exit 1; }; } fi @@ -27121,26 +28595,57 @@ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned. # While waiting for a better solution, the current workaround is to use -mstackrealign. CFLAGS="$CFLAGS -mstackrealign" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 32-bit compiler supports -mstackrealign" >&5 + { $as_echo "$as_me:$LINENO: checking if 32-bit compiler supports -mstackrealign" >&5 $as_echo_n "checking if 32-bit compiler supports -mstackrealign... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main() { return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:$LINENO: error: The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path." >&5 +$as_echo "$as_me: error: The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path." >&2;} + { (exit 1); exit 1; }; } + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext fi C_FLAG_DEPS="-MMD -MF" @@ -27288,37 +28793,37 @@ if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&5 + { $as_echo "$as_me:$LINENO: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&5 $as_echo "$as_me: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&2;} fi if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&5 + { $as_echo "$as_me:$LINENO: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&5 $as_echo "$as_me: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&2;} fi if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&5 + { $as_echo "$as_me:$LINENO: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&5 $as_echo "$as_me: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&2;} fi # Check whether --with-extra-cflags was given. -if test "${with_extra_cflags+set}" = set; then : +if test "${with_extra_cflags+set}" = set; then withval=$with_extra_cflags; fi # Check whether --with-extra-cxxflags was given. -if test "${with_extra_cxxflags+set}" = set; then : +if test "${with_extra_cxxflags+set}" = set; then withval=$with_extra_cxxflags; fi # Check whether --with-extra-ldflags was given. -if test "${with_extra_ldflags+set}" = set; then : +if test "${with_extra_ldflags+set}" = set; then withval=$with_extra_ldflags; fi @@ -27557,18 +29062,20 @@ fi # Check whether --enable-debug-symbols was given. -if test "${enable_debug_symbols+set}" = set; then : +if test "${enable_debug_symbols+set}" = set; then enableval=$enable_debug_symbols; ENABLE_DEBUG_SYMBOLS=${enable_debug_symbols} fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should generate debug symbols" >&5 +{ $as_echo "$as_me:$LINENO: checking if we should generate debug symbols" >&5 $as_echo_n "checking if we should generate debug symbols... " >&6; } if test "x$ENABLE_DEBUG_SYMBOLS" = "xyes" && test "x$OBJCOPY" = x; then # explicit enabling of enable-debug-symbols and can't find objcopy # this is an error - as_fn_error $? "Unable to find objcopy, cannot enable debug-symbols" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Unable to find objcopy, cannot enable debug-symbols" >&5 +$as_echo "$as_me: error: Unable to find objcopy, cannot enable debug-symbols" >&2;} + { (exit 1); exit 1; }; } fi if test "x$ENABLE_DEBUG_SYMBOLS" = "xdefault"; then @@ -27580,7 +29087,7 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_DEBUG_SYMBOLS" >&5 +{ $as_echo "$as_me:$LINENO: result: $ENABLE_DEBUG_SYMBOLS" >&5 $as_echo "$ENABLE_DEBUG_SYMBOLS" >&6; } # @@ -27589,14 +29096,14 @@ ZIP_DEBUGINFO_FILES=yes # Check whether --enable-zip-debug-info was given. -if test "${enable_zip_debug_info+set}" = set; then : +if test "${enable_zip_debug_info+set}" = set; then enableval=$enable_zip_debug_info; ZIP_DEBUGINFO_FILES=${enable_zip_debug_info} fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should zip debug-info files" >&5 +{ $as_echo "$as_me:$LINENO: checking if we should zip debug-info files" >&5 $as_echo_n "checking if we should zip debug-info files... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZIP_DEBUGINFO_FILES" >&5 +{ $as_echo "$as_me:$LINENO: result: $ZIP_DEBUGINFO_FILES" >&5 $as_echo "$ZIP_DEBUGINFO_FILES" >&6; } # Hotspot wants ZIP_DEBUGINFO_FILES to be 1 for yes @@ -27626,35 +29133,35 @@ # OS specific settings that we never will need to probe. # if test "x$OPENJDK_TARGET_OS" = xlinux; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on Linux?" >&5 + { $as_echo "$as_me:$LINENO: checking what is not needed on Linux?" >&5 $as_echo_n "checking what is not needed on Linux?... " >&6; } PULSE_NOT_NEEDED=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: pulse" >&5 + { $as_echo "$as_me:$LINENO: result: pulse" >&5 $as_echo "pulse" >&6; } fi if test "x$OPENJDK_TARGET_OS" = xsolaris; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on Solaris?" >&5 + { $as_echo "$as_me:$LINENO: checking what is not needed on Solaris?" >&5 $as_echo_n "checking what is not needed on Solaris?... " >&6; } ALSA_NOT_NEEDED=yes PULSE_NOT_NEEDED=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse" >&5 + { $as_echo "$as_me:$LINENO: result: alsa pulse" >&5 $as_echo "alsa pulse" >&6; } fi if test "x$OPENJDK_TARGET_OS" = xwindows; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on Windows?" >&5 + { $as_echo "$as_me:$LINENO: checking what is not needed on Windows?" >&5 $as_echo_n "checking what is not needed on Windows?... " >&6; } CUPS_NOT_NEEDED=yes ALSA_NOT_NEEDED=yes PULSE_NOT_NEEDED=yes X11_NOT_NEEDED=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa cups pulse x11" >&5 + { $as_echo "$as_me:$LINENO: result: alsa cups pulse x11" >&5 $as_echo "alsa cups pulse x11" >&6; } fi if test "x$OPENJDK_TARGET_OS" = xmacosx; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on MacOSX?" >&5 + { $as_echo "$as_me:$LINENO: checking what is not needed on MacOSX?" >&5 $as_echo_n "checking what is not needed on MacOSX?... " >&6; } ALSA_NOT_NEEDED=yes PULSE_NOT_NEEDED=yes @@ -27662,15 +29169,15 @@ FREETYPE2_NOT_NEEDED=yes # If the java runtime framework is disabled, then we need X11. # This will be adjusted below. - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse x11" >&5 + { $as_echo "$as_me:$LINENO: result: alsa pulse x11" >&5 $as_echo "alsa pulse x11" >&6; } fi if test "x$OPENJDK_TARGET_OS" = xbsd; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on bsd?" >&5 + { $as_echo "$as_me:$LINENO: checking what is not needed on bsd?" >&5 $as_echo_n "checking what is not needed on bsd?... " >&6; } ALSA_NOT_NEEDED=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa" >&5 + { $as_echo "$as_me:$LINENO: result: alsa" >&5 $as_echo "alsa" >&6; } fi @@ -27688,7 +29195,7 @@ # that uses this API. # # Check whether --enable-macosx-runtime-support was given. -if test "${enable_macosx_runtime_support+set}" = set; then : +if test "${enable_macosx_runtime_support+set}" = set; then enableval=$enable_macosx_runtime_support; MACOSX_RUNTIME_SUPPORT="${enableval}" else MACOSX_RUNTIME_SUPPORT="no" @@ -27696,29 +29203,29 @@ USE_MACOSX_RUNTIME_SUPPORT=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for explicit Java runtime support in the OS" >&5 +{ $as_echo "$as_me:$LINENO: checking for explicit Java runtime support in the OS" >&5 $as_echo_n "checking for explicit Java runtime support in the OS... " >&6; } if test -f /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Headers/JavaRuntimeSupport.h; then if test "x$MACOSX_RUNTIME_SUPPORT" != xno; then MACOSX_RUNTIME_SUPPORT=yes USE_MACOSX_RUNTIME_SUPPORT=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, does not need alsa freetype2 pulse and X11" >&5 + { $as_echo "$as_me:$LINENO: result: yes, does not need alsa freetype2 pulse and X11" >&5 $as_echo "yes, does not need alsa freetype2 pulse and X11" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, but explicitly disabled." >&5 + { $as_echo "$as_me:$LINENO: result: yes, but explicitly disabled." >&5 $as_echo "yes, but explicitly disabled." >&6; } fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$OPENJDK_TARGET_OS" = xmacosx && test "x$USE_MACOSX_RUNTIME_SUPPORT" = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on an X11 build on MacOSX?" >&5 + { $as_echo "$as_me:$LINENO: checking what is not needed on an X11 build on MacOSX?" >&5 $as_echo_n "checking what is not needed on an X11 build on MacOSX?... " >&6; } X11_NOT_NEEDED= FREETYPE2_NOT_NEEDED= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse" >&5 + { $as_echo "$as_me:$LINENO: result: alsa pulse" >&5 $as_echo "alsa pulse" >&6; } fi @@ -27747,12 +29254,12 @@ fi # Now let autoconf do it's magic -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +{ $as_echo "$as_me:$LINENO: checking for X" >&5 $as_echo_n "checking for X... " >&6; } # Check whether --with-x was given. -if test "${with_x+set}" = set; then : +if test "${with_x+set}" = set; then withval=$with_x; fi @@ -27762,8 +29269,10 @@ have_x=disabled else case $x_includes,$x_libraries in #( - *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( - *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : + *\'*) { { $as_echo "$as_me:$LINENO: error: cannot use X directory names containing '" >&5 +$as_echo "$as_me: error: cannot use X directory names containing '" >&2;} + { (exit 1); exit 1; }; };; #( + *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. @@ -27780,7 +29289,7 @@ @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done @@ -27811,25 +29320,21 @@ # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include -/usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 -/usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include -/usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 -/usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 @@ -27851,14 +29356,37 @@ if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then # We can compile using X headers with no special include directory. ac_x_includes= else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir @@ -27866,7 +29394,8 @@ fi done fi -rm -f conftest.err conftest.i conftest.$ac_ext + +rm -f conftest.err conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then @@ -27875,7 +29404,11 @@ # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int @@ -27886,12 +29419,35 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else - LIBS=$ac_save_LIBS + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + LIBS=$ac_save_LIBS for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! @@ -27903,8 +29459,10 @@ done done fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( @@ -27925,7 +29483,7 @@ fi # $with_x != no if test "$have_x" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 + { $as_echo "$as_me:$LINENO: result: $have_x" >&5 $as_echo "$have_x" >&6; } no_x=yes else @@ -27936,14 +29494,16 @@ ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 + { $as_echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 $as_echo "libraries $x_libraries, headers $x_includes" >&6; } fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. -$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define X_DISPLAY_MISSING 1 +_ACEOF X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else @@ -27956,52 +29516,110 @@ X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 + { $as_echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 $as_echo_n "checking whether -R must be followed by a space... " >&6; } ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ac_xsave_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" else - LIBS="$ac_xsave_LIBS -R $x_libraries" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: neither works" >&5 $as_echo "neither works" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext ac_cxx_werror_flag=$ac_xsave_cxx_werror_flag LIBS=$ac_xsave_LIBS fi @@ -28017,7 +29635,11 @@ # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -28035,17 +29657,114 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dnet_dnet_ntoa=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dnet_dnet_ntoa=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -28063,66 +29782,52 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - ac_cv_lib_dnet_dnet_ntoa=yes -else - ac_cv_lib_dnet_dnet_ntoa=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } -if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" -fi - - if test $ac_cv_lib_dnet_dnet_ntoa = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } -if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet_stub $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dnet_ntoa (); -int -main () -{ -return dnet_ntoa (); - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - ac_cv_lib_dnet_stub_dnet_ntoa=yes -else - ac_cv_lib_dnet_stub_dnet_ntoa=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } -if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS="$ac_xsave_LIBS" # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, @@ -28133,20 +29838,175 @@ # on Irix 5.2, according to T.E. Dickey. # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. - ac_fn_cxx_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = x""yes; then : - -fi + { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5 +$as_echo_n "checking for gethostbyname... " >&6; } +if test "${ac_cv_func_gethostbyname+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname innocuous_gethostbyname + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef gethostbyname + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_gethostbyname || defined __stub___gethostbyname +choke me +#endif + +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_gethostbyname=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_gethostbyname=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 +$as_echo "$ac_cv_func_gethostbyname" >&6; } if test $ac_cv_func_gethostbyname = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 + { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_nsl_gethostbyname=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_nsl_gethostbyname=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -28164,59 +30024,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - ac_cv_lib_nsl_gethostbyname=yes -else - ac_cv_lib_nsl_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_bsd_gethostbyname=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_bsd_gethostbyname=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" -fi - - if test $ac_cv_lib_nsl_gethostbyname = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 -$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } -if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - ac_cv_lib_bsd_gethostbyname=yes -else - ac_cv_lib_bsd_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } -if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : +if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi @@ -28230,20 +30074,105 @@ # variants that don't use the name server (or something). -lsocket # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. - ac_fn_cxx_check_func "$LINENO" "connect" "ac_cv_func_connect" -if test "x$ac_cv_func_connect" = x""yes; then : - -fi + { $as_echo "$as_me:$LINENO: checking for connect" >&5 +$as_echo_n "checking for connect... " >&6; } +if test "${ac_cv_func_connect+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define connect to an innocuous variant, in case declares connect. + For example, HP-UX 11i declares gettimeofday. */ +#define connect innocuous_connect + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char connect (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef connect + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_connect || defined __stub___connect +choke me +#endif + +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_connect=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_connect=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 +$as_echo "$ac_cv_func_connect" >&6; } if test $ac_cv_func_connect = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 + { $as_echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_connect+set}" = set; then : +if test "${ac_cv_lib_socket_connect+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -28261,38 +30190,148 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_socket_connect=yes else - ac_cv_lib_socket_connect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_socket_connect=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } -if test "x$ac_cv_lib_socket_connect" = x""yes; then : +if test "x$ac_cv_lib_socket_connect" = x""yes; then X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. - ac_fn_cxx_check_func "$LINENO" "remove" "ac_cv_func_remove" -if test "x$ac_cv_func_remove" = x""yes; then : - -fi + { $as_echo "$as_me:$LINENO: checking for remove" >&5 +$as_echo_n "checking for remove... " >&6; } +if test "${ac_cv_func_remove+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define remove to an innocuous variant, in case declares remove. + For example, HP-UX 11i declares gettimeofday. */ +#define remove innocuous_remove + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char remove (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef remove + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_remove || defined __stub___remove +choke me +#endif + +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_remove=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_remove=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 +$as_echo "$ac_cv_func_remove" >&6; } if test $ac_cv_func_remove = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 + { $as_echo "$as_me:$LINENO: checking for remove in -lposix" >&5 $as_echo_n "checking for remove in -lposix... " >&6; } -if test "${ac_cv_lib_posix_remove+set}" = set; then : +if test "${ac_cv_lib_posix_remove+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -28310,38 +30349,148 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_posix_remove=yes else - ac_cv_lib_posix_remove=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_posix_remove=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 $as_echo "$ac_cv_lib_posix_remove" >&6; } -if test "x$ac_cv_lib_posix_remove" = x""yes; then : +if test "x$ac_cv_lib_posix_remove" = x""yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. - ac_fn_cxx_check_func "$LINENO" "shmat" "ac_cv_func_shmat" -if test "x$ac_cv_func_shmat" = x""yes; then : - -fi + { $as_echo "$as_me:$LINENO: checking for shmat" >&5 +$as_echo_n "checking for shmat... " >&6; } +if test "${ac_cv_func_shmat+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shmat to an innocuous variant, in case declares shmat. + For example, HP-UX 11i declares gettimeofday. */ +#define shmat innocuous_shmat + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shmat (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shmat + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shmat || defined __stub___shmat +choke me +#endif + +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_shmat=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shmat=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 +$as_echo "$ac_cv_func_shmat" >&6; } if test $ac_cv_func_shmat = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 + { $as_echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 $as_echo_n "checking for shmat in -lipc... " >&6; } -if test "${ac_cv_lib_ipc_shmat+set}" = set; then : +if test "${ac_cv_lib_ipc_shmat+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -28359,18 +30508,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_ipc_shmat=yes else - ac_cv_lib_ipc_shmat=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ipc_shmat=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } -if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : +if test "x$ac_cv_lib_ipc_shmat" = x""yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi @@ -28386,14 +30560,18 @@ # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # John Interrante, Karl Berry - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 + { $as_echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } -if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -28411,18 +30589,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_ICE_IceConnectionNumber=yes else - ac_cv_lib_ICE_IceConnectionNumber=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ICE_IceConnectionNumber=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } -if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi @@ -28457,7 +30660,9 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - as_fn_error $? "Could not find X11 libraries. $HELP_MSG" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find X11 libraries. $HELP_MSG" >&5 +$as_echo "$as_me: error: Could not find X11 libraries. $HELP_MSG" >&2;} + { (exit 1); exit 1; }; } fi # Some of the old makefiles require a setting of OPENWIN_HOME @@ -28498,14 +30703,64 @@ CFLAGS="$CFLAGS $X_CFLAGS" # Need to include Xlib.h and Xutil.h to avoid "present but cannot be compiled" warnings on Solaris 10 + + + for ac_header in X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " # include +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + # include # include -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -28551,7 +30806,9 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - as_fn_error $? "Could not find all X11 headers (shape.h Xrender.h XTest.h). $HELP_MSG" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find all X11 headers (shape.h Xrender.h XTest.h). $HELP_MSG" >&5 +$as_echo "$as_me: error: Could not find all X11 headers (shape.h Xrender.h XTest.h). $HELP_MSG" >&2;} + { (exit 1); exit 1; }; } fi @@ -28565,20 +30822,20 @@ # # Check whether --with-cups was given. -if test "${with_cups+set}" = set; then : +if test "${with_cups+set}" = set; then withval=$with_cups; fi # Check whether --with-cups-include was given. -if test "${with_cups_include+set}" = set; then : +if test "${with_cups_include+set}" = set; then withval=$with_cups_include; fi if test "x$CUPS_NOT_NEEDED" = xyes; then if test "x${with_cups}" != x || test "x${with_cups_include}" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cups not used, so --with-cups is ignored" >&5 + { $as_echo "$as_me:$LINENO: WARNING: cups not used, so --with-cups is ignored" >&5 $as_echo "$as_me: WARNING: cups not used, so --with-cups is ignored" >&2;} fi CUPS_CFLAGS= @@ -28586,7 +30843,9 @@ CUPS_FOUND=no if test "x${with_cups}" = xno || test "x${with_cups_include}" = xno; then - as_fn_error $? "It is not possible to disable the use of cups. Remove the --without-cups option." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: It is not possible to disable the use of cups. Remove the --without-cups option." >&5 +$as_echo "$as_me: error: It is not possible to disable the use of cups. Remove the --without-cups option." >&2;} + { (exit 1); exit 1; }; } fi if test "x${with_cups}" != x; then @@ -28619,7 +30878,7 @@ resource=${builddep_cups} fi if test "x$resource" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for cups" >&5 + { $as_echo "$as_me:$LINENO: Using builddeps $resource for cups" >&5 $as_echo "$as_me: Using builddeps $resource for cups" >&6;} # If the resource in the builddeps.conf file is an existing directory, # for example /java/linux/cups @@ -28640,18 +30899,22 @@ extension=${filename#*.} installdir=$with_builddeps_dir/$filebase if test ! -f $installdir/$filename.unpacked; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency cups from $with_builddeps_server/$resource and installing into $installdir" >&5 + { $as_echo "$as_me:$LINENO: Downloading build dependency cups from $with_builddeps_server/$resource and installing into $installdir" >&5 $as_echo "$as_me: Downloading build dependency cups 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 + { { $as_echo "$as_me:$LINENO: error: Could not create directory $installdir" >&5 +$as_echo "$as_me: error: Could not create directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi tmpfile=`mktemp $installdir/cups.XXXXXXXXX` touch $tmpfile if test ! -f $tmpfile; then - as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not create files in directory $installdir" >&5 +$as_echo "$as_me: error: Could not create files in directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi # $with_builddeps_server/$resource is the ftp://abuilddeps.server.com/libs/cups.zip @@ -28689,12 +30952,16 @@ ) | 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 + { { $as_echo "$as_me:$LINENO: error: I do not know how to use the tool: $BDEPS_FTP" >&5 +$as_echo "$as_me: error: I do not know how to use the tool: $BDEPS_FTP" >&2;} + { (exit 1); exit 1; }; } fi mv $tmpfile $installdir/$filename if test ! -s $installdir/$filename; then - as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download $with_builddeps_server/$resource" >&5 +$as_echo "$as_me: error: Could not download $with_builddeps_server/$resource" >&2;} + { (exit 1); exit 1; }; } fi case "$extension" in zip) echo "Unzipping $installdir/$filename..." @@ -28706,7 +30973,9 @@ 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 + *) { { $as_echo "$as_me:$LINENO: error: Cannot handle build depency archive with extension $extension" >&5 +$as_echo "$as_me: error: Cannot handle build depency archive with extension $extension" >&2;} + { (exit 1); exit 1; }; } ;; esac fi @@ -28723,7 +30992,9 @@ thecflags=${builddep_cups_CFLAGS} thelibs=${builddep_cups_LIBS} if test "x$depdir" = x; then - as_fn_error $? "Could not download build dependency cups" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download build dependency cups" >&5 +$as_echo "$as_me: error: Could not download build dependency cups" >&2;} + { (exit 1); exit 1; }; } fi CUPS=$depdir if test "x$theroot" != x; then @@ -28744,11 +31015,150 @@ fi if test "x$CUPS_FOUND" = xno; then # Are the cups headers installed in the default /usr/include location? - for ac_header in cups/cups.h cups/ppd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + + +for ac_header in cups/cups.h cups/ppd.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------- ## +## Report this to build-dev@openjdk.java.net ## +## ----------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -28763,7 +31173,7 @@ if test "x$CUPS_FOUND" = xno; then # Getting nervous now? Lets poke around for standard Solaris third-party # package installation locations. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cups headers" >&5 + { $as_echo "$as_me:$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 # An SFW package seems to be installed! @@ -28774,7 +31184,7 @@ CUPS_FOUND=yes CUPS_CFLAGS="-I/opt/csw/include" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_FOUND" >&5 + { $as_echo "$as_me:$LINENO: result: $CUPS_FOUND" >&5 $as_echo "$CUPS_FOUND" >&6; } fi if test "x$CUPS_FOUND" = xno; then @@ -28803,7 +31213,9 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - as_fn_error $? "Could not find cups! $HELP_MSG " "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find cups! $HELP_MSG " >&5 +$as_echo "$as_me: error: Could not find cups! $HELP_MSG " >&2;} + { (exit 1); exit 1; }; } fi fi @@ -28818,7 +31230,7 @@ # # Check whether --with-freetype was given. -if test "${with_freetype+set}" = set; then : +if test "${with_freetype+set}" = set; then withval=$with_freetype; fi @@ -28828,7 +31240,7 @@ if test "x$FREETYPE2_NOT_NEEDED" = xyes; then if test "x$with_freetype" != x || test "x$with_freetype_include" != x || test "x$with_freetype_lib" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: freetype not used, so --with-freetype is ignored" >&5 + { $as_echo "$as_me:$LINENO: WARNING: freetype not used, so --with-freetype is ignored" >&5 $as_echo "$as_me: WARNING: freetype not used, so --with-freetype is ignored" >&2;} fi FREETYPE2_CFLAGS= @@ -28855,9 +31267,11 @@ # 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_freetype, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of with_freetype, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of with_freetype, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of with_freetype" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of with_freetype" >&5 +$as_echo "$as_me: error: Cannot locate the the path of with_freetype" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -28896,7 +31310,7 @@ if test "x$path" != "x$new_path"; then with_freetype="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting with_freetype to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting with_freetype to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting with_freetype to \"$new_path\"" >&6;} fi @@ -28934,7 +31348,7 @@ if test "x$path" != "x$new_path"; then with_freetype="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting with_freetype to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting with_freetype to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting with_freetype to \"$new_path\"" >&6;} fi @@ -28946,14 +31360,18 @@ path="$with_freetype" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of with_freetype, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of with_freetype, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of with_freetype, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of with_freetype, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of with_freetype, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of with_freetype, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } fi fi @@ -28974,16 +31392,22 @@ if test "x$FREETYPE2_FOUND" = xyes; then # Verify that the directories exist if ! test -d "$with_freetype/lib" || ! test -d "$with_freetype/include"; then - as_fn_error $? "Could not find the expected directories $with_freetype/lib and $with_freetype/include" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find the expected directories $with_freetype/lib and $with_freetype/include" >&5 +$as_echo "$as_me: error: Could not find the expected directories $with_freetype/lib and $with_freetype/include" >&2;} + { (exit 1); exit 1; }; } fi # List the contents of the lib. FREETYPELIB=`ls $with_freetype/lib/libfreetype.so $with_freetype/lib/freetype.dll 2> /dev/null` if test "x$FREETYPELIB" = x; then - as_fn_error $? "Could not find libfreetype.so nor freetype.dll in $with_freetype/lib" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find libfreetype.so nor freetype.dll in $with_freetype/lib" >&5 +$as_echo "$as_me: error: Could not find libfreetype.so nor freetype.dll in $with_freetype/lib" >&2;} + { (exit 1); exit 1; }; } fi # Check one h-file if ! test -s "$with_freetype/include/ft2build.h"; then - as_fn_error $? "Could not find $with_freetype/include/ft2build.h" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find $with_freetype/include/ft2build.h" >&5 +$as_echo "$as_me: error: Could not find $with_freetype/include/ft2build.h" >&2;} + { (exit 1); exit 1; }; } fi fi fi @@ -29009,7 +31433,7 @@ resource=${builddep_freetype2} fi if test "x$resource" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for freetype2" >&5 + { $as_echo "$as_me:$LINENO: Using builddeps $resource for freetype2" >&5 $as_echo "$as_me: Using builddeps $resource for freetype2" >&6;} # If the resource in the builddeps.conf file is an existing directory, # for example /java/linux/cups @@ -29030,18 +31454,22 @@ extension=${filename#*.} installdir=$with_builddeps_dir/$filebase if test ! -f $installdir/$filename.unpacked; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency freetype2 from $with_builddeps_server/$resource and installing into $installdir" >&5 + { $as_echo "$as_me:$LINENO: Downloading build dependency freetype2 from $with_builddeps_server/$resource and installing into $installdir" >&5 $as_echo "$as_me: Downloading build dependency freetype2 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 + { { $as_echo "$as_me:$LINENO: error: Could not create directory $installdir" >&5 +$as_echo "$as_me: error: Could not create directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi tmpfile=`mktemp $installdir/freetype2.XXXXXXXXX` touch $tmpfile if test ! -f $tmpfile; then - as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not create files in directory $installdir" >&5 +$as_echo "$as_me: error: Could not create files in directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi # $with_builddeps_server/$resource is the ftp://abuilddeps.server.com/libs/cups.zip @@ -29079,12 +31507,16 @@ ) | 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 + { { $as_echo "$as_me:$LINENO: error: I do not know how to use the tool: $BDEPS_FTP" >&5 +$as_echo "$as_me: error: I do not know how to use the tool: $BDEPS_FTP" >&2;} + { (exit 1); exit 1; }; } fi mv $tmpfile $installdir/$filename if test ! -s $installdir/$filename; then - as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download $with_builddeps_server/$resource" >&5 +$as_echo "$as_me: error: Could not download $with_builddeps_server/$resource" >&2;} + { (exit 1); exit 1; }; } fi case "$extension" in zip) echo "Unzipping $installdir/$filename..." @@ -29096,7 +31528,9 @@ 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 + *) { { $as_echo "$as_me:$LINENO: error: Cannot handle build depency archive with extension $extension" >&5 +$as_echo "$as_me: error: Cannot handle build depency archive with extension $extension" >&2;} + { (exit 1); exit 1; }; } ;; esac fi @@ -29113,7 +31547,9 @@ thecflags=${builddep_freetype2_CFLAGS} thelibs=${builddep_freetype2_LIBS} if test "x$depdir" = x; then - as_fn_error $? "Could not download build dependency freetype2" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download build dependency freetype2" >&5 +$as_echo "$as_me: error: Could not download build dependency freetype2" >&2;} + { (exit 1); exit 1; }; } fi FREETYPE2=$depdir if test "x$theroot" != x; then @@ -29154,9 +31590,11 @@ # 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 FREETYPELOCATION, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of FREETYPELOCATION, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of FREETYPELOCATION, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Cannot locate the the path of FREETYPELOCATION" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Cannot locate the the path of FREETYPELOCATION" >&5 +$as_echo "$as_me: error: Cannot locate the the path of FREETYPELOCATION" >&2;} + { (exit 1); exit 1; }; } fi # Call helper function which possibly converts this using DOS-style short mode. @@ -29195,7 +31633,7 @@ if test "x$path" != "x$new_path"; then FREETYPELOCATION="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FREETYPELOCATION to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting FREETYPELOCATION to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting FREETYPELOCATION to \"$new_path\"" >&6;} fi @@ -29233,7 +31671,7 @@ if test "x$path" != "x$new_path"; then FREETYPELOCATION="$new_path" - { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FREETYPELOCATION to \"$new_path\"" >&5 + { $as_echo "$as_me:$LINENO: Rewriting FREETYPELOCATION to \"$new_path\"" >&5 $as_echo "$as_me: Rewriting FREETYPELOCATION to \"$new_path\"" >&6;} fi @@ -29245,50 +31683,58 @@ path="$FREETYPELOCATION" if test ! -f "$path" && test ! -d "$path"; then - as_fn_error $? "The path of FREETYPELOCATION, which resolves as \"$path\", is not found." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: The path of FREETYPELOCATION, which resolves as \"$path\", is not found." >&5 +$as_echo "$as_me: error: The path of FREETYPELOCATION, which resolves as \"$path\", is not found." >&2;} + { (exit 1); exit 1; }; } fi has_space=`$ECHO "$path" | $GREP " "` if test "x$has_space" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FREETYPELOCATION, which resolves as \"$path\", is invalid." >&5 + { $as_echo "$as_me:$LINENO: The path of FREETYPELOCATION, which resolves as \"$path\", is invalid." >&5 $as_echo "$as_me: The path of FREETYPELOCATION, which resolves as \"$path\", is invalid." >&6;} - as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype in some standard windows locations" >&5 + { { $as_echo "$as_me:$LINENO: error: Spaces are not allowed in this path." >&5 +$as_echo "$as_me: error: Spaces are not allowed in this path." >&2;} + { (exit 1); exit 1; }; } + fi + fi + + { $as_echo "$as_me:$LINENO: checking for freetype in some standard windows locations" >&5 $as_echo_n "checking for freetype in some standard windows locations... " >&6; } if test -s "$FREETYPELOCATION/include/ft2build.h" && test -d "$FREETYPELOCATION/include/freetype2/freetype"; then FREETYPE2_CFLAGS="-I$FREETYPELOCATION/include/freetype2 -I$FREETYPELOCATION/include" FREETYPE2_LIBS="$FREETYPELOCATION/lib/freetype.lib" FREETYPE2_LIB_PATH="$FREETYPELOCATION/lib" if ! test -s "$FREETYPE2_LIBS"; then - as_fn_error $? "Could not find $FREETYPE2_LIBS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find $FREETYPE2_LIBS" >&5 +$as_echo "$as_me: error: Could not find $FREETYPE2_LIBS" >&2;} + { (exit 1); exit 1; }; } fi if ! test -s "$FREETYPE2_LIB_PATH/freetype.dll"; then - as_fn_error $? "Could not find $FREETYPE2_LIB_PATH/freetype.dll" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find $FREETYPE2_LIB_PATH/freetype.dll" >&5 +$as_echo "$as_me: error: Could not find $FREETYPE2_LIB_PATH/freetype.dll" >&2;} + { (exit 1); exit 1; }; } fi USING_SYSTEM_FT_LIB=true FREETYPE2_FOUND=yes fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE2_FOUND" >&5 + { $as_echo "$as_me:$LINENO: result: $FREETYPE2_FOUND" >&5 $as_echo "$FREETYPE2_FOUND" >&6; } fi if test "x$FREETYPE2_FOUND" = xno; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE2" >&5 +{ $as_echo "$as_me:$LINENO: checking for FREETYPE2" >&5 $as_echo_n "checking for FREETYPE2... " >&6; } if test -n "$FREETYPE2_CFLAGS"; then pkg_cv_FREETYPE2_CFLAGS="$FREETYPE2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"freetype2\"") >&5 ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then pkg_cv_FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null` else pkg_failed=yes @@ -29300,11 +31746,11 @@ pkg_cv_FREETYPE2_LIBS="$FREETYPE2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"freetype2\"") >&5 ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then pkg_cv_FREETYPE2_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null` else pkg_failed=yes @@ -29330,7 +31776,7 @@ # Put the nasty error message in config.log where it belongs echo "$FREETYPE2_PKG_ERRORS" >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } FREETYPE2_FOUND=no elif test $pkg_failed = untried; then @@ -29338,7 +31784,7 @@ else FREETYPE2_CFLAGS=$pkg_cv_FREETYPE2_CFLAGS FREETYPE2_LIBS=$pkg_cv_FREETYPE2_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } FREETYPE2_FOUND=yes fi @@ -29351,7 +31797,7 @@ fi fi if test "x$FREETYPE2_FOUND" = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype in some standard locations" >&5 + { $as_echo "$as_me:$LINENO: checking for freetype in some standard locations" >&5 $as_echo_n "checking for freetype in some standard locations... " >&6; } if test -s /usr/X11/include/ft2build.h && test -d /usr/X11/include/freetype2/freetype; then @@ -29367,14 +31813,38 @@ PREV_LDFLAGS="$LDFLAGS" CXXFLAGS="$CXXFLAGS $DEFAULT_FREETYPE_CFLAGS" LDFLAGS="$LDFLAGS $DEFAULT_FREETYPE_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include FT_FREETYPE_H int main() { return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then # Yes, the default cflags and libs did the trick. FREETYPE2_FOUND=yes @@ -29382,15 +31852,20 @@ FREETYPE2_LIBS="$DEFAULT_FREETYPE_LIBS" else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + FREETYPE2_FOUND=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext CXXCFLAGS="$PREV_CXXFLAGS" LDFLAGS="$PREV_LDFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE2_FOUND" >&5 + { $as_echo "$as_me:$LINENO: result: $FREETYPE2_FOUND" >&5 $as_echo "$FREETYPE2_FOUND" >&6; } USING_SYSTEM_FT_LIB=true fi @@ -29420,21 +31895,27 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - as_fn_error $? "Could not find freetype2! $HELP_MSG " "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find freetype2! $HELP_MSG " >&5 +$as_echo "$as_me: error: Could not find freetype2! $HELP_MSG " >&2;} + { (exit 1); exit 1; }; } fi if test "x$OPENJDK_TARGET_OS" != xwindows; then # AC_CHECK_LIB does not support use of cl.exe PREV_LDFLAGS="$LDFLAGS" LDFLAGS="$FREETYPE2_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_Init_FreeType in -lfreetype" >&5 + { $as_echo "$as_me:$LINENO: checking for FT_Init_FreeType in -lfreetype" >&5 $as_echo_n "checking for FT_Init_FreeType in -lfreetype... " >&6; } -if test "${ac_cv_lib_freetype_FT_Init_FreeType+set}" = set; then : +if test "${ac_cv_lib_freetype_FT_Init_FreeType+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lfreetype $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -29452,21 +31933,48 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_freetype_FT_Init_FreeType=yes else - ac_cv_lib_freetype_FT_Init_FreeType=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_freetype_FT_Init_FreeType=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5 $as_echo "$ac_cv_lib_freetype_FT_Init_FreeType" >&6; } -if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = x""yes; then : +if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = x""yes; then FREETYPE2_FOUND=true else - as_fn_error $? "Could not find freetype2! $HELP_MSG " "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find freetype2! $HELP_MSG " >&5 +$as_echo "$as_me: error: Could not find freetype2! $HELP_MSG " >&2;} + { (exit 1); exit 1; }; } fi LDFLAGS="$PREV_LDFLAGS" @@ -29487,26 +31995,26 @@ # # Check whether --with-alsa was given. -if test "${with_alsa+set}" = set; then : +if test "${with_alsa+set}" = set; then withval=$with_alsa; fi # Check whether --with-alsa-include was given. -if test "${with_alsa_include+set}" = set; then : +if test "${with_alsa_include+set}" = set; then withval=$with_alsa_include; fi # Check whether --with-alsa-lib was given. -if test "${with_alsa_lib+set}" = set; then : +if test "${with_alsa_lib+set}" = set; then withval=$with_alsa_lib; fi if test "x$ALSA_NOT_NEEDED" = xyes; then if test "x${with_alsa}" != x || test "x${with_alsa_include}" != x || test "x${with_alsa_lib}" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: alsa not used, so --with-alsa is ignored" >&5 + { $as_echo "$as_me:$LINENO: WARNING: alsa not used, so --with-alsa is ignored" >&5 $as_echo "$as_me: WARNING: alsa not used, so --with-alsa is ignored" >&2;} fi ALSA_CFLAGS= @@ -29515,7 +32023,9 @@ ALSA_FOUND=no if test "x${with_alsa}" = xno || test "x${with_alsa_include}" = xno || test "x${with_alsa_lib}" = xno; then - as_fn_error $? "It is not possible to disable the use of alsa. Remove the --without-alsa option." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: It is not possible to disable the use of alsa. Remove the --without-alsa option." >&5 +$as_echo "$as_me: error: It is not possible to disable the use of alsa. Remove the --without-alsa option." >&2;} + { (exit 1); exit 1; }; } fi if test "x${with_alsa}" != x; then @@ -29553,7 +32063,7 @@ resource=${builddep_alsa} fi if test "x$resource" != x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Using builddeps $resource for alsa" >&5 + { $as_echo "$as_me:$LINENO: Using builddeps $resource for alsa" >&5 $as_echo "$as_me: Using builddeps $resource for alsa" >&6;} # If the resource in the builddeps.conf file is an existing directory, # for example /java/linux/cups @@ -29574,18 +32084,22 @@ extension=${filename#*.} installdir=$with_builddeps_dir/$filebase if test ! -f $installdir/$filename.unpacked; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Downloading build dependency alsa from $with_builddeps_server/$resource and installing into $installdir" >&5 + { $as_echo "$as_me:$LINENO: Downloading build dependency alsa from $with_builddeps_server/$resource and installing into $installdir" >&5 $as_echo "$as_me: Downloading build dependency alsa 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 + { { $as_echo "$as_me:$LINENO: error: Could not create directory $installdir" >&5 +$as_echo "$as_me: error: Could not create directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi tmpfile=`mktemp $installdir/alsa.XXXXXXXXX` touch $tmpfile if test ! -f $tmpfile; then - as_fn_error $? "Could not create files in directory $installdir" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not create files in directory $installdir" >&5 +$as_echo "$as_me: error: Could not create files in directory $installdir" >&2;} + { (exit 1); exit 1; }; } fi # $with_builddeps_server/$resource is the ftp://abuilddeps.server.com/libs/cups.zip @@ -29623,12 +32137,16 @@ ) | 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 + { { $as_echo "$as_me:$LINENO: error: I do not know how to use the tool: $BDEPS_FTP" >&5 +$as_echo "$as_me: error: I do not know how to use the tool: $BDEPS_FTP" >&2;} + { (exit 1); exit 1; }; } fi mv $tmpfile $installdir/$filename if test ! -s $installdir/$filename; then - as_fn_error $? "Could not download $with_builddeps_server/$resource" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download $with_builddeps_server/$resource" >&5 +$as_echo "$as_me: error: Could not download $with_builddeps_server/$resource" >&2;} + { (exit 1); exit 1; }; } fi case "$extension" in zip) echo "Unzipping $installdir/$filename..." @@ -29640,7 +32158,9 @@ 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 + *) { { $as_echo "$as_me:$LINENO: error: Cannot handle build depency archive with extension $extension" >&5 +$as_echo "$as_me: error: Cannot handle build depency archive with extension $extension" >&2;} + { (exit 1); exit 1; }; } ;; esac fi @@ -29657,7 +32177,9 @@ thecflags=${builddep_alsa_CFLAGS} thelibs=${builddep_alsa_LIBS} if test "x$depdir" = x; then - as_fn_error $? "Could not download build dependency alsa" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not download build dependency alsa" >&5 +$as_echo "$as_me: error: Could not download build dependency alsa" >&2;} + { (exit 1); exit 1; }; } fi ALSA=$depdir if test "x$theroot" != x; then @@ -29681,18 +32203,18 @@ if test "x$ALSA_FOUND" = xno; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA" >&5 +{ $as_echo "$as_me:$LINENO: checking for ALSA" >&5 $as_echo_n "checking for ALSA... " >&6; } if test -n "$ALSA_CFLAGS"; then pkg_cv_ALSA_CFLAGS="$ALSA_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"alsa\""; } >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"alsa\"") >&5 ($PKG_CONFIG --exists --print-errors "alsa") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then pkg_cv_ALSA_CFLAGS=`$PKG_CONFIG --cflags "alsa" 2>/dev/null` else pkg_failed=yes @@ -29704,11 +32226,11 @@ pkg_cv_ALSA_LIBS="$ALSA_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"alsa\""; } >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"alsa\"") >&5 ($PKG_CONFIG --exists --print-errors "alsa") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then pkg_cv_ALSA_LIBS=`$PKG_CONFIG --libs "alsa" 2>/dev/null` else pkg_failed=yes @@ -29734,7 +32256,7 @@ # Put the nasty error message in config.log where it belongs echo "$ALSA_PKG_ERRORS" >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } ALSA_FOUND=no elif test $pkg_failed = untried; then @@ -29742,18 +32264,157 @@ else ALSA_CFLAGS=$pkg_cv_ALSA_CFLAGS ALSA_LIBS=$pkg_cv_ALSA_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } ALSA_FOUND=yes fi fi if test "x$ALSA_FOUND" = xno; then - for ac_header in alsa/asoundlib.h -do : - ac_fn_cxx_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default" -if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then : + +for ac_header in alsa/asoundlib.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------- ## +## Report this to build-dev@openjdk.java.net ## +## ----------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_ALSA_ASOUNDLIB_H 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF ALSA_FOUND=yes ALSA_CFLAGS=-Iignoreme @@ -29792,7 +32453,9 @@ HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'." fi - as_fn_error $? "Could not find alsa! $HELP_MSG " "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not find alsa! $HELP_MSG " >&5 +$as_echo "$as_me: error: Could not find alsa! $HELP_MSG " >&2;} + { (exit 1); exit 1; }; } fi fi @@ -29808,14 +32471,19 @@ # USE_EXTERNAL_LIBJPEG=true -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5 + +{ $as_echo "$as_me:$LINENO: checking for main in -ljpeg" >&5 $as_echo_n "checking for main in -ljpeg... " >&6; } -if test "${ac_cv_lib_jpeg_main+set}" = set; then : +if test "${ac_cv_lib_jpeg_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @@ -29827,18 +32495,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_jpeg_main=yes else - ac_cv_lib_jpeg_main=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_jpeg_main=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_main" >&5 $as_echo "$ac_cv_lib_jpeg_main" >&6; } -if test "x$ac_cv_lib_jpeg_main" = x""yes; then : +if test "x$ac_cv_lib_jpeg_main" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBJPEG 1 _ACEOF @@ -29847,7 +32540,7 @@ else USE_EXTERNAL_LIBJPEG=false - { $as_echo "$as_me:${as_lineno-$LINENO}: Will use jpeg decoder bundled with the OpenJDK source" >&5 + { $as_echo "$as_me:$LINENO: Will use jpeg decoder bundled with the OpenJDK source" >&5 $as_echo "$as_me: Will use jpeg decoder bundled with the OpenJDK source" >&6;} fi @@ -29860,14 +32553,19 @@ # USE_EXTERNAL_LIBJPEG=true -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5 + +{ $as_echo "$as_me:$LINENO: checking for main in -lgif" >&5 $as_echo_n "checking for main in -lgif... " >&6; } -if test "${ac_cv_lib_gif_main+set}" = set; then : +if test "${ac_cv_lib_gif_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgif $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @@ -29879,18 +32577,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_gif_main=yes else - ac_cv_lib_gif_main=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_gif_main=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gif_main" >&5 $as_echo "$ac_cv_lib_gif_main" >&6; } -if test "x$ac_cv_lib_gif_main" = x""yes; then : +if test "x$ac_cv_lib_gif_main" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBGIF 1 _ACEOF @@ -29899,7 +32622,7 @@ else USE_EXTERNAL_LIBGIF=false - { $as_echo "$as_me:${as_lineno-$LINENO}: Will use gif decoder bundled with the OpenJDK source" >&5 + { $as_echo "$as_me:$LINENO: Will use gif decoder bundled with the OpenJDK source" >&5 $as_echo "$as_me: Will use gif decoder bundled with the OpenJDK source" >&6;} fi @@ -29913,19 +32636,23 @@ # Check whether --with-zlib was given. -if test "${with_zlib+set}" = set; then : +if test "${with_zlib+set}" = set; then withval=$with_zlib; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5 +{ $as_echo "$as_me:$LINENO: checking for compress in -lz" >&5 $as_echo_n "checking for compress in -lz... " >&6; } -if test "${ac_cv_lib_z_compress+set}" = set; then : +if test "${ac_cv_lib_z_compress+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -29943,25 +32670,50 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_z_compress=yes else - ac_cv_lib_z_compress=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_z_compress=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_z_compress" >&5 $as_echo "$ac_cv_lib_z_compress" >&6; } -if test "x$ac_cv_lib_z_compress" = x""yes; then : +if test "x$ac_cv_lib_z_compress" = x""yes; then ZLIB_FOUND=yes else ZLIB_FOUND=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for which zlib to use" >&5 +{ $as_echo "$as_me:$LINENO: checking for which zlib to use" >&5 $as_echo_n "checking for which zlib to use... " >&6; } DEFAULT_ZLIB=bundled @@ -29988,20 +32740,24 @@ if test "x${with_zlib}" = "xbundled"; then USE_EXTERNAL_LIBZ=false - { $as_echo "$as_me:${as_lineno-$LINENO}: result: bundled" >&5 + { $as_echo "$as_me:$LINENO: result: bundled" >&5 $as_echo "bundled" >&6; } elif test "x${with_zlib}" = "xsystem"; then if test "x${ZLIB_FOUND}" = "xyes"; then USE_EXTERNAL_LIBZ=true - { $as_echo "$as_me:${as_lineno-$LINENO}: result: system" >&5 + { $as_echo "$as_me:$LINENO: result: system" >&5 $as_echo "system" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: system not found" >&5 + { $as_echo "$as_me:$LINENO: result: system not found" >&5 $as_echo "system not found" >&6; } - as_fn_error $? "--with-zlib=system specified, but no zlib found!" "$LINENO" 5 - fi -else - as_fn_error $? "Invalid value for --with-zlib: ${with_zlib}, use 'system' or 'bundled'" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: --with-zlib=system specified, but no zlib found!" >&5 +$as_echo "$as_me: error: --with-zlib=system specified, but no zlib found!" >&2;} + { (exit 1); exit 1; }; } + fi +else + { { $as_echo "$as_me:$LINENO: error: Invalid value for --with-zlib: ${with_zlib}, use 'system' or 'bundled'" >&5 +$as_echo "$as_me: error: Invalid value for --with-zlib: ${with_zlib}, use 'system' or 'bundled'" >&2;} + { (exit 1); exit 1; }; } fi @@ -30016,7 +32772,11 @@ # Check if altzone exists in time.h # -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int @@ -30027,16 +32787,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then has_altzone=yes else - has_altzone=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + has_altzone=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext if test "x$has_altzone" = xyes; then -$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALTZONE 1 +_ACEOF fi @@ -30045,14 +32832,19 @@ # Check the maths library # -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 + +{ $as_echo "$as_me:$LINENO: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } -if test "${ac_cv_lib_m_cos+set}" = set; then : +if test "${ac_cv_lib_m_cos+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -30070,18 +32862,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_m_cos=yes else - ac_cv_lib_m_cos=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_m_cos=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } -if test "x$ac_cv_lib_m_cos" = x""yes; then : +if test "x$ac_cv_lib_m_cos" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF @@ -30090,7 +32907,7 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: Maths library was not found" >&5 + { $as_echo "$as_me:$LINENO: Maths library was not found" >&5 $as_echo "$as_me: Maths library was not found" >&6;} fi @@ -30103,14 +32920,19 @@ save_LIBS="$LIBS" LIBS="" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 + +{ $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : +if test "${ac_cv_lib_dl_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -30128,18 +32950,43 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dl_dlopen=yes else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBDL 1 _ACEOF @@ -30160,8 +33007,8 @@ # dynamic build is configured on command line. # # Check whether --enable-static-link-stdc++ was given. -if test "${enable_static_link_stdc__+set}" = set; then : - enableval=$enable_static_link_stdc__; +if test "${enable_static_link_stdc+++set}" = set; then + enableval=$enable_static_link_stdc++; else enable_static_link_stdc__=yes @@ -30171,7 +33018,7 @@ if test "x$OPENJDK_TARGET_OS" = xlinux; then # Test if -lstdc++ works. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic link of stdc++ is possible" >&5 + { $as_echo "$as_me:$LINENO: checking if dynamic link of stdc++ is possible" >&5 $as_echo_n "checking if dynamic link of stdc++ is possible... " >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -30181,7 +33028,11 @@ OLD_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -lstdc++" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -30192,13 +33043,38 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then has_dynamic_libstdcxx=yes else - has_dynamic_libstdcxx=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + has_dynamic_libstdcxx=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext CXXFLAGS="$OLD_CXXFLAGS" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -30206,11 +33082,11 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_dynamic_libstdcxx" >&5 + { $as_echo "$as_me:$LINENO: result: $has_dynamic_libstdcxx" >&5 $as_echo "$has_dynamic_libstdcxx" >&6; } # Test if stdc++ can be linked statically. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if static link of stdc++ is possible" >&5 + { $as_echo "$as_me:$LINENO: checking if static link of stdc++ is possible" >&5 $as_echo_n "checking if static link of stdc++ is possible... " >&6; } STATIC_STDCXX_FLAGS="-Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic" ac_ext=cpp @@ -30223,7 +33099,11 @@ OLD_CXX="$CXX" LIBS="$STATIC_STDCXX_FLAGS" CXX="$CC" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -30234,13 +33114,38 @@ return 0; } _ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then has_static_libstdcxx=yes else - has_static_libstdcxx=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + has_static_libstdcxx=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext LIBS="$OLD_LIBS" CXX="$OLD_CXX" ac_ext=cpp @@ -30249,38 +33154,40 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_static_libstdcxx" >&5 + { $as_echo "$as_me:$LINENO: result: $has_static_libstdcxx" >&5 $as_echo "$has_static_libstdcxx" >&6; } if test "x$has_static_libcxx" = xno && test "x$has_dynamic_libcxx" = xno; then - as_fn_error $? "I cannot link to stdc++! Neither dynamically nor statically." "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: I cannot link to stdc++! Neither dynamically nor statically." >&5 +$as_echo "$as_me: error: I cannot link to stdc++! Neither dynamically nor statically." >&2;} + { (exit 1); exit 1; }; } fi if test "x$enable_static_link_stdc__" = xyes && test "x$has_static_libstdcxx" = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Static linking of libstdc++ was not possible reverting to dynamic linking." >&5 + { $as_echo "$as_me:$LINENO: Static linking of libstdc++ was not possible reverting to dynamic linking." >&5 $as_echo "$as_me: Static linking of libstdc++ was not possible reverting to dynamic linking." >&6;} enable_static_link_stdc__=no fi if test "x$enable_static_link_stdc__" = xno && test "x$has_dynamic_libstdcxx" = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Dynamic linking of libstdc++ was not possible reverting to static linking." >&5 + { $as_echo "$as_me:$LINENO: Dynamic linking of libstdc++ was not possible reverting to static linking." >&5 $as_echo "$as_me: Dynamic linking of libstdc++ was not possible reverting to static linking." >&6;} enable_static_link_stdc__=yes fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libstdc++" >&5 + { $as_echo "$as_me:$LINENO: checking how to link with libstdc++" >&5 $as_echo_n "checking how to link with libstdc++... " >&6; } if test "x$enable_static_link_stdc__" = xyes; then LIBCXX="$LIBCXX $STATIC_STDCXX_FLAGS" LDCXX="$CC" STATIC_CXX_SETTING="STATIC_CXX=true" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: static" >&5 + { $as_echo "$as_me:$LINENO: result: static" >&5 $as_echo "static" >&6; } else LIBCXX="$LIBCXX -lstdc++" LDCXX="$CXX" STATIC_CXX_SETTING="STATIC_CXX=false" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic" >&5 + { $as_echo "$as_me:$LINENO: result: dynamic" >&5 $as_echo "dynamic" >&6; } fi fi @@ -30308,7 +33215,7 @@ # called fixpath. FIXPATH= if test "x$OPENJDK_BUILD_OS" = xwindows; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fixpath can be created" >&5 + { $as_echo "$as_me:$LINENO: checking if fixpath can be created" >&5 $as_echo_n "checking if fixpath can be created... " >&6; } FIXPATH_SRC="$SRC_ROOT/common/src/fixpath.c" FIXPATH_BIN="$OUTPUT_ROOT/fixpath.exe" @@ -30334,25 +33241,29 @@ cd $CURDIR if test ! -x $OUTPUT_ROOT/fixpath.exe; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } cat $OUTPUT_ROOT/fixpath1.log - as_fn_error $? "Could not create $OUTPUT_ROOT/fixpath.exe" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { { $as_echo "$as_me:$LINENO: error: Could not create $OUTPUT_ROOT/fixpath.exe" >&5 +$as_echo "$as_me: error: Could not create $OUTPUT_ROOT/fixpath.exe" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if fixpath.exe works" >&5 + { $as_echo "$as_me:$LINENO: checking if fixpath.exe works" >&5 $as_echo_n "checking if fixpath.exe works... " >&6; } cd $OUTPUT_ROOT $FIXPATH $CC $SRC_ROOT/common/src/fixpath.c -Fe$OUTPUT_ROOT/fixpath2.exe > $OUTPUT_ROOT/fixpath2.log 2>&1 cd $CURDIR if test ! -x $OUTPUT_ROOT/fixpath2.exe; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } cat $OUTPUT_ROOT/fixpath2.log - as_fn_error $? "fixpath did not work!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { { $as_echo "$as_me:$LINENO: error: fixpath did not work!" >&5 +$as_echo "$as_me: error: fixpath did not work!" >&2;} + { (exit 1); exit 1; }; } + fi + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f $OUTPUT_ROOT/fixpath?.??? $OUTPUT_ROOT/fixpath.obj fi @@ -30390,14 +33301,14 @@ # How many cores do we have on this build system? # Check whether --with-num-cores was given. -if test "${with_num_cores+set}" = set; then : +if test "${with_num_cores+set}" = set; then withval=$with_num_cores; fi if test "x$with_num_cores" = x; then # The number of cores were not specified, try to probe them. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for number of cores" >&5 + { $as_echo "$as_me:$LINENO: checking for number of cores" >&5 $as_echo_n "checking for number of cores... " >&6; } NUM_CORES=1 FOUND_CORES=no @@ -30425,12 +33336,12 @@ CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2` if test "x$FOUND_CORES" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NUM_CORES" >&5 + { $as_echo "$as_me:$LINENO: result: $NUM_CORES" >&5 $as_echo "$NUM_CORES" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not detect number of cores, defaulting to 1" >&5 + { $as_echo "$as_me:$LINENO: result: could not detect number of cores, defaulting to 1" >&5 $as_echo "could not detect number of cores, defaulting to 1" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This will disable all parallelism from build!" >&5 + { $as_echo "$as_me:$LINENO: WARNING: This will disable all parallelism from build!" >&5 $as_echo "$as_me: WARNING: This will disable all parallelism from build!" >&2;} fi @@ -30446,14 +33357,14 @@ # How much memory do we have on this build system? # Check whether --with-memory-size was given. -if test "${with_memory_size+set}" = set; then : +if test "${with_memory_size+set}" = set; then withval=$with_memory_size; fi if test "x$with_memory_size" = x; then # The memory size was not specified, try to probe it. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memory size" >&5 + { $as_echo "$as_me:$LINENO: checking for memory size" >&5 $as_echo_n "checking for memory size... " >&6; } # Default to 1024 MB MEMORY_SIZE=1024 @@ -30481,12 +33392,12 @@ fi if test "x$FOUND_MEM" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MEMORY_SIZE MB" >&5 + { $as_echo "$as_me:$LINENO: result: $MEMORY_SIZE MB" >&5 $as_echo "$MEMORY_SIZE MB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: could not detect memory size, defaulting to 1024 MB" >&5 + { $as_echo "$as_me:$LINENO: result: could not detect memory size, defaulting to 1024 MB" >&5 $as_echo "could not detect memory size, defaulting to 1024 MB" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This might seriously impact build performance!" >&5 + { $as_echo "$as_me:$LINENO: WARNING: This might seriously impact build performance!" >&5 $as_echo "$as_me: WARNING: This might seriously impact build performance!" >&2;} fi @@ -30500,7 +33411,7 @@ # Check whether --with-sjavac-server-java was given. -if test "${with_sjavac_server_java+set}" = set; then : +if test "${with_sjavac_server_java+set}" = set; then withval=$with_sjavac_server_java; fi @@ -30509,7 +33420,9 @@ SJAVAC_SERVER_JAVA="$with_sjavac_server_java" FOUND_VERSION=`$SJAVAC_SERVER_JAVA -version 2>&1 | grep " version \""` if test "x$FOUND_VERSION" = x; then - as_fn_error $? "Could not execute server java: $SJAVAC_SERVER_JAVA" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: Could not execute server java: $SJAVAC_SERVER_JAVA" >&5 +$as_echo "$as_me: error: Could not execute server java: $SJAVAC_SERVER_JAVA" >&2;} + { (exit 1); exit 1; }; } fi else SJAVAC_SERVER_JAVA="" @@ -30539,7 +33452,7 @@ # Check whether --with-sjavac-server-cores was given. -if test "${with_sjavac_server_cores+set}" = set; then : +if test "${with_sjavac_server_cores+set}" = set; then withval=$with_sjavac_server_cores; fi @@ -30693,25 +33606,25 @@ MAX_COMPILERS_IN_HEAP=`expr $MAX_HEAP_MEM / 501` if test "$SJAVAC_SERVER_CORES" -gt "$MAX_COMPILERS_IN_HEAP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if number of server cores must be reduced" >&5 + { $as_echo "$as_me:$LINENO: checking if number of server cores must be reduced" >&5 $as_echo_n "checking if number of server cores must be reduced... " >&6; } SJAVAC_SERVER_CORES="$MAX_COMPILERS_IN_HEAP" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, to $SJAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB" >&5 + { $as_echo "$as_me:$LINENO: result: yes, to $SJAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB" >&5 $as_echo "yes, to $SJAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB" >&6; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use sjavac" >&5 +{ $as_echo "$as_me:$LINENO: checking whether to use sjavac" >&5 $as_echo_n "checking whether to use sjavac... " >&6; } # Check whether --enable-sjavac was given. -if test "${enable_sjavac+set}" = set; then : +if test "${enable_sjavac+set}" = set; then enableval=$enable_sjavac; ENABLE_SJAVAC="${enableval}" else ENABLE_SJAVAC='no' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENABLE_SJAVAC" >&5 +{ $as_echo "$as_me:$LINENO: result: $ENABLE_SJAVAC" >&5 $as_echo "$ENABLE_SJAVAC" >&6; } @@ -30732,7 +33645,7 @@ # Can the C/C++ compiler use precompiled headers? # # Check whether --enable-precompiled-headers was given. -if test "${enable_precompiled_headers+set}" = set; then : +if test "${enable_precompiled_headers+set}" = set; then enableval=$enable_precompiled_headers; ENABLE_PRECOMPH=${enable_precompiled-headers} else ENABLE_PRECOMPH=yes @@ -30747,17 +33660,17 @@ if test "x$ENABLE_PRECOMPH" = xyes; then # Check that the compiler actually supports precomp headers. if test "x$GCC" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking that precompiled headers work" >&5 + { $as_echo "$as_me:$LINENO: checking that precompiled headers work" >&5 $as_echo_n "checking that precompiled headers work... " >&6; } echo "int alfa();" > conftest.h $CXX -x c++-header conftest.h -o conftest.hpp.gch if test ! -f conftest.hpp.gch; then echo Precompiled header is not working! USE_PRECOMPILED_HEADER=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } fi rm -f conftest.h @@ -30770,7 +33683,7 @@ # Setup use of ccache, if available # Check whether --enable-ccache was given. -if test "${enable_ccache+set}" = set; then : +if test "${enable_ccache+set}" = set; then enableval=$enable_ccache; ENABLE_CCACHE=${enable_ccache} else ENABLE_CCACHE=yes @@ -30779,9 +33692,9 @@ if test "x$ENABLE_CCACHE" = xyes; then # Extract the first word of "ccache", so it can be a program name with args. set dummy ccache; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_CCACHE+set}" = set; then : +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CCACHE+set}" = set; then $as_echo_n "(cached) " >&6 else case $CCACHE in @@ -30794,14 +33707,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do + for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CCACHE="$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 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done IFS=$as_save_IFS ;; @@ -30809,18 +33722,18 @@ fi CCACHE=$ac_cv_path_CCACHE if test -n "$CCACHE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCACHE" >&5 + { $as_echo "$as_me:$LINENO: result: $CCACHE" >&5 $as_echo "$CCACHE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ccache" >&5 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + { $as_echo "$as_me:$LINENO: checking for ccache" >&5 $as_echo_n "checking for ccache... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: explicitly disabled" >&5 + { $as_echo "$as_me:$LINENO: result: explicitly disabled" >&5 $as_echo "explicitly disabled" >&6; } CCACHE= fi @@ -30828,7 +33741,7 @@ # Check whether --with-ccache-dir was given. -if test "${with_ccache_dir+set}" = set; then : +if test "${with_ccache_dir+set}" = set; then withval=$with_ccache_dir; fi @@ -30845,43 +33758,68 @@ CCACHE_FOUND="true" # Only use ccache if it is 3.1.4 or later, which supports # precompiled headers. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ccache supports precompiled headers" >&5 + { $as_echo "$as_me:$LINENO: checking if ccache supports precompiled headers" >&5 $as_echo_n "checking if ccache supports precompiled headers... " >&6; } HAS_GOOD_CCACHE=`($CCACHE --version | head -n 1 | grep -E 3.1.[456789]) 2> /dev/null` if test "x$HAS_GOOD_CCACHE" = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabling ccache" >&5 + { $as_echo "$as_me:$LINENO: result: no, disabling ccache" >&5 $as_echo "no, disabling ccache" >&6; } CCACHE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C-compiler supports ccache precompiled headers" >&5 + { $as_echo "$as_me:$LINENO: checking if C-compiler supports ccache precompiled headers" >&5 $as_echo_n "checking if C-compiler supports ccache precompiled headers... " >&6; } PUSHED_FLAGS="$CXXFLAGS" CXXFLAGS="-fpch-preprocess $CXXFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then CC_KNOWS_CCACHE_TRICK=yes else - CC_KNOWS_CCACHE_TRICK=no -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CC_KNOWS_CCACHE_TRICK=no +fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS="$PUSHED_FLAGS" if test "x$CC_KNOWS_CCACHE_TRICK" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabling ccaching of precompiled headers" >&5 + { $as_echo "$as_me:$LINENO: result: no, disabling ccaching of precompiled headers" >&5 $as_echo "no, disabling ccaching of precompiled headers" >&6; } CCACHE= fi @@ -30911,7 +33849,7 @@ # Check for some common pitfalls -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if build directory is on local disk" >&5 +{ $as_echo "$as_me:$LINENO: checking if build directory is on local disk" >&5 $as_echo_n "checking if build directory is on local disk... " >&6; } # df -l lists only local disks; if the given directory is not found then @@ -30937,7 +33875,7 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $OUTPUT_DIR_IS_LOCAL" >&5 +{ $as_echo "$as_me:$LINENO: result: $OUTPUT_DIR_IS_LOCAL" >&5 $as_echo "$OUTPUT_DIR_IS_LOCAL" >&6; } # Check if the user has any old-style ALT_ variables set. @@ -30995,13 +33933,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; + *) $as_unset $ac_var ;; esac ;; esac done @@ -31009,8 +33947,8 @@ (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" @@ -31033,11 +33971,11 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi @@ -31051,15 +33989,14 @@ ac_libobjs= ac_ltlibobjs= -U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -31071,10 +34008,9 @@ ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -31084,18 +34020,17 @@ debug=false ac_cs_recheck=false ac_cs_silent=false - SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -31103,14 +34038,22 @@ alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' @@ -31119,13 +34062,7 @@ as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else @@ -31136,7 +34073,7 @@ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in #( + case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -31159,6 +34096,13 @@ } fi +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -31168,15 +34112,15 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in #(( +case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done IFS=$as_save_IFS ;; @@ -31188,16 +34132,12 @@ fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' @@ -31209,89 +34149,7 @@ LANGUAGE=C export LANGUAGE -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - +# Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -31305,12 +34163,8 @@ as_basename=false fi -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - + +# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ @@ -31330,25 +34184,76 @@ } s/.*/./; q'` -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( +case `echo -n x` in -n*) - case `echo 'xy\c'` in + case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; + *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -31377,56 +34282,8 @@ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' + as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false @@ -31445,10 +34302,10 @@ if test -d "$1"; then test -d "$1/."; else - case $1 in #( + case $1 in -*)set "./$1";; esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' @@ -31463,19 +34320,13 @@ exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to + +# Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by OpenJDK $as_me jdk8, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -31506,15 +34357,13 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit - --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -31530,18 +34379,16 @@ Configuration headers: $config_headers -Report bugs to . -OpenJDK home page: ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ OpenJDK config.status jdk8 -configured by $0, generated by GNU Autoconf 2.67, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2010 Free Software Foundation, Inc. +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -31557,16 +34404,11 @@ while test $# != 0 do case $1 in - --*=?*) + --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; *) ac_option=$1 ac_optarg=$2 @@ -31580,29 +34422,27 @@ ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; esac - as_fn_append CONFIG_FILES " '$ac_optarg'" + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; + { $as_echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ @@ -31610,10 +34450,11 @@ ac_cs_silent=: ;; # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" + -*) { $as_echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac @@ -31667,7 +34508,9 @@ "$OUTPUT_ROOT/spec.sh") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/spec.sh:$AUTOCONF_DIR/spec.sh.in" ;; "$OUTPUT_ROOT/Makefile") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; esac done @@ -31693,7 +34536,7 @@ trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 - trap 'as_fn_exit 1' 1 2 13 15 + trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. @@ -31704,7 +34547,11 @@ { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +} || +{ + $as_echo "$as_me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -31712,13 +34559,7 @@ if test -n "$CONFIG_FILES"; then -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi +ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' @@ -31735,18 +34576,24 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -31768,7 +34615,7 @@ t delim :nl h -s/\(.\{148\}\)..*/\1/ +s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -31782,7 +34629,7 @@ t nl :delim h -s/\(.\{148\}\)..*/\1/ +s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -31835,28 +34682,22 @@ else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } +_ACEOF + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// s/^[^=]*=[ ]*$// }' fi @@ -31884,7 +34725,9 @@ if test -z "$ac_t"; then break elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -31969,7 +34812,9 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" @@ -31982,7 +34827,9 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} + { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -32010,10 +34857,12 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" + ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't @@ -32024,7 +34873,7 @@ `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. @@ -32037,7 +34886,9 @@ case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; esac ;; esac @@ -32065,7 +34916,47 @@ q } s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in @@ -32113,6 +35004,7 @@ # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= + ac_sed_dataroot=' /datarootdir/ { p @@ -32122,11 +35014,12 @@ /@docdir@/p /@infodir@/p /@localedir@/p -/@mandir@/p' +/@mandir@/p +' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -32136,7 +35029,7 @@ s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; + s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF @@ -32163,22 +35056,26 @@ $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} +which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; :H) # @@ -32189,19 +35086,25 @@ $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } fi ;; @@ -32211,12 +35114,15 @@ done # for ac_tag -as_fn_exit 0 -_ACEOF +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. @@ -32237,10 +35143,10 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 + $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi diff -r 0e685b019743 -r a7496bb56968 common/autoconf/source-dirs.m4 --- a/common/autoconf/source-dirs.m4 Fri Nov 09 14:47:22 2012 -0800 +++ b/common/autoconf/source-dirs.m4 Wed Jul 05 18:29:53 2017 +0200 @@ -253,5 +253,24 @@ BUILD_OUTPUT="$OUTPUT_ROOT" AC_SUBST(BUILD_OUTPUT) +HOTSPOT_DIST="$OUTPUT_ROOT/hotspot/dist" +BUILD_HOTSPOT=true +AC_SUBST(HOTSPOT_DIST) +AC_SUBST(BUILD_HOTSPOT) +AC_ARG_WITH(import-hotspot, [AS_HELP_STRING([--with-import-hotspot], + [import hotspot binaries from this jdk image or hotspot build dist dir instead of building from source])]) +if test "x$with_import_hotspot" != x; then + CURDIR="$PWD" + cd "$with_import_hotspot" + HOTSPOT_DIST="`pwd`" + cd "$CURDIR" + if ! (test -d $HOTSPOT_DIST/lib && test -d $HOTSPOT_DIST/jre/lib); then + AC_MSG_ERROR([You have to import hotspot from a full jdk image or hotspot build dist dir!]) + fi + AC_MSG_CHECKING([if hotspot should be imported]) + AC_MSG_RESULT([yes from $HOTSPOT_DIST]) + BUILD_HOTSPOT=false +fi + JDK_OUTPUTDIR="$OUTPUT_ROOT/jdk" ]) diff -r 0e685b019743 -r a7496bb56968 common/autoconf/spec.gmk.in --- a/common/autoconf/spec.gmk.in Fri Nov 09 14:47:22 2012 -0800 +++ b/common/autoconf/spec.gmk.in Wed Jul 05 18:29:53 2017 +0200 @@ -224,7 +224,9 @@ CORBA_DIST=$(CORBA_OUTPUTDIR)/dist JAXP_DIST=$(JAXP_OUTPUTDIR)/dist JAXWS_DIST=$(JAXWS_OUTPUTDIR)/dist -HOTSPOT_DIST=$(HOTSPOT_OUTPUTDIR)/dist +HOTSPOT_DIST=@HOTSPOT_DIST@ + +BUILD_HOTSPOT=@BUILD_HOTSPOT@ # The boot jdk to use BOOT_JDK:=@BOOT_JDK@ @@ -244,12 +246,6 @@ # Store sjavac server synchronization files here, and # the sjavac server log files. SJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@ -# We can block the Javac server to never use more cores than this. -# This is not for performance reasons, but for memory usage, since each -# core requires its own JavaCompiler. We might have 64 cores and 4GB -# of memory, 64 JavaCompilers will currently not fit in a 3GB heap. -# Since there is no sharing of data between the JavaCompilers. -SJAVAC_SERVER_CORES:=@SJAVAC_SERVER_CORES@ # The OpenJDK makefiles should be changed to using the standard # configure output ..._CFLAGS and ..._LIBS. In the meantime we @@ -494,7 +490,14 @@ # Where the build output is stored for your convenience. BUILD_LOG:=@BUILD_LOG@ BUILD_LOG_PREVIOUS:=@BUILD_LOG_PREVIOUS@ -BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@ +# Disable the build log wrapper on sjavac+winapi until +# we have solved how to prevent the log wrapper to wait +# for the background sjavac server process. +ifeq (@ENABLE_SJAVAC@X@OPENJDK_BUILD_OS_API@,yesXwinapi) + BUILD_LOG_WRAPPER:= +else + BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@ +endif # Build setup ENABLE_JFR=@ENABLE_JFR@ diff -r 0e685b019743 -r a7496bb56968 common/makefiles/JavaCompilation.gmk --- a/common/makefiles/JavaCompilation.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/common/makefiles/JavaCompilation.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -111,7 +111,7 @@ ifeq ($$(word 20,$$($1_GREP_INCLUDE_PATTERNS)),) $1_GREP_INCLUDES:=| $(GREP) $$(patsubst %,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_INCLUDE_PATTERNS)) else - $$(shell $(RM) $$($1_BIN)/_the.$$($1_JARNAME)_include) + $$(shell $(MKDIR) -p $$($1_BIN) && $(RM) $$($1_BIN)/_the.$$($1_JARNAME)_include) $$(eval $$(call ListPathsSafelyNow,$1_GREP_INCLUDE_PATTERNS,\n, \ >> $$($1_BIN)/_the.$$($1_JARNAME)_include)) $1_GREP_INCLUDES:=| $(GREP) -f $$($1_BIN)/_the.$$($1_JARNAME)_include @@ -124,7 +124,7 @@ ifeq ($$(word 20,$$($1_GREP_EXCLUDE_PATTERNS)),) $1_GREP_EXCLUDES:=| $(GREP) -v $$(patsubst %,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_EXCLUDE_PATTERNS)) else - $$(shell $(RM) $$($1_BIN)/_the.$$($1_JARNAME)_exclude) + $$(shell $(MKDIR) -p $$($1_BIN) && $(RM) $$($1_BIN)/_the.$$($1_JARNAME)_exclude) $$(eval $$(call ListPathsSafelyNow,$1_GREP_EXCLUDE_PATTERNS,\n, \ >> $$($1_BIN)/_the.$$($1_JARNAME)_exclude)) $1_GREP_EXCLUDES:=| $(GREP) -v -f $$($1_BIN)/_the.$$($1_JARNAME)_exclude @@ -170,9 +170,10 @@ # tells us what to remove from the jar-file. $1_CAPTURE_DELETES=$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.deleted -newer $$@ -exec $(SED) 's|$$(src)||g' \{\} >> $$($1_DELETES_FILE) \;) $$(NEWLINE)) # The update contents macro updates the jar file with the previously capture contents. + # xargs is used to trim the whitespace from the contents file, to see if it is empty. $1_UPDATE_CONTENTS=$$(foreach src,$$($1_SRCS),\ (cd $$(src) && \ - if [ -s _the.$$($1_JARNAME)_contents ]; then \ + if [ -n "`$(CAT) _the.$$($1_JARNAME)_contents | $(XARGS)`" ]; then \ $(ECHO) " updating" `$(WC) -l _the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'` files && \ $(JAR) $$($1_JAR_UPDATE_OPTIONS) $$@ @_the.$$($1_JARNAME)_contents; \ fi) $$(NEWLINE)) diff -r 0e685b019743 -r a7496bb56968 common/makefiles/Main.gmk --- a/common/makefiles/Main.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/common/makefiles/Main.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -94,11 +94,13 @@ @($(CD) $(JAXWS_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f BuildJaxws.gmk) @$(call TargetExit) +ifeq ($(BUILD_HOTSPOT),true) hotspot: hotspot-only hotspot-only: start-make @$(call TargetEnter) @($(CD) $(SRC_ROOT)/common/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f HotspotWrapper.gmk) @$(call TargetExit) +endif jdk: langtools hotspot corba jaxp jaxws jdk-only jdk-only: start-make diff -r 0e685b019743 -r a7496bb56968 common/makefiles/MakeHelpers.gmk --- a/common/makefiles/MakeHelpers.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/common/makefiles/MakeHelpers.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -157,7 +157,7 @@ # Hook to be called as the very last thing for targets that are "top level" targets define AtMakeEnd - $(if $(SJAVAC_SERVER_DIR),@$(RM) -rf $(SJAVAC_SERVER_DIR)/*.port) + [ -f $(SJAVAC_SERVER_DIR)/server.port ] && echo Stopping sjavac server && $(TOUCH) $(SJAVAC_SERVER_DIR)/server.port.stop; true $(call StopGlobalTimer) $(call ReportBuildTimes) @$(PRINTF) "Finished building $(PRODUCT_NAME) for target '$(call GetRealTarget)'\n" @@ -174,8 +174,8 @@ define ParseLogLevel ifeq ($$(origin VERBOSE),undefined) # Setup logging according to LOG (but only if VERBOSE is not given) - - # If the "nofile" argument is given, act on it and strip it away + + # If the "nofile" argument is given, act on it and strip it away ifneq ($$(findstring nofile,$$(LOG)),) # Reset the build log wrapper, regardless of other values override BUILD_LOG_WRAPPER= diff -r 0e685b019743 -r a7496bb56968 corba/.hgtags --- a/corba/.hgtags Fri Nov 09 14:47:22 2012 -0800 +++ b/corba/.hgtags Wed Jul 05 18:29:53 2017 +0200 @@ -185,3 +185,4 @@ 0e08ba7648fb3faa0986cb217887d7c4990977f3 jdk8-b61 08afb9c6f44f11c3595b01fd0985db64b29834dd jdk8-b62 6ccbf67b68bfed1ab9c44ab8748a5bdc7df33506 jdk8-b63 +54d599a5b4aad83c235d590652fc81f41c2824fb jdk8-b64 diff -r 0e685b019743 -r a7496bb56968 hotspot/.hgtags --- a/hotspot/.hgtags Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/.hgtags Wed Jul 05 18:29:53 2017 +0200 @@ -291,3 +291,5 @@ dc16fe422c535ecd4e9f80fb814a1bb9704da6f5 hs25-b07 acabb5c282f59be7e3238920b2ea06b684ab68f7 jdk8-b63 8cb93eadfb6dcab88d91b8e2cd3e0e07d0ac4048 hs25-b08 +5920f72e799c8133d1066c4a62fa1fafcb729966 jdk8-b64 +b4ee7b773144a88af8b6b92e4384dea82cb948d8 hs25-b09 diff -r 0e685b019743 -r a7496bb56968 hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java Wed Jul 05 18:29:53 2017 +0200 @@ -121,7 +121,7 @@ Address addr = cache.getValue(getAddress()); return (ConstantPoolCache) VMObjectFactory.newObject(ConstantPoolCache.class, addr); } - public Klass getPoolHolder() { return (Klass) poolHolder.getValue(this); } + public InstanceKlass getPoolHolder() { return (InstanceKlass)poolHolder.getValue(this); } public int getLength() { return (int)length.getValue(getAddress()); } public Oop getResolvedReferences() { Address handle = resolvedReferences.getValue(getAddress()); diff -r 0e685b019743 -r a7496bb56968 hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Method.java Wed Jul 05 18:29:53 2017 +0200 @@ -177,7 +177,7 @@ bci. It is required that there is currently a bytecode at this bci. */ public int getOrigBytecodeAt(int bci) { - BreakpointInfo bp = ((InstanceKlass) getMethodHolder()).getBreakpoints(); + BreakpointInfo bp = getMethodHolder().getBreakpoints(); for (; bp != null; bp = bp.getNext()) { if (bp.match(this, bci)) { return bp.getOrigBytecode(); @@ -238,7 +238,7 @@ } // Method holder (the Klass holding this method) - public Klass getMethodHolder() { return getConstants().getPoolHolder(); } + public InstanceKlass getMethodHolder() { return getConstants().getPoolHolder(); } // Access flags public boolean isPublic() { return getAccessFlagsObj().isPublic(); } diff -r 0e685b019743 -r a7496bb56968 hotspot/make/hotspot_version --- a/hotspot/make/hotspot_version Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/make/hotspot_version Wed Jul 05 18:29:53 2017 +0200 @@ -35,7 +35,7 @@ HS_MAJOR_VER=25 HS_MINOR_VER=0 -HS_BUILD_NUMBER=08 +HS_BUILD_NUMBER=09 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff -r 0e685b019743 -r a7496bb56968 hotspot/make/linux/makefiles/defs.make --- a/hotspot/make/linux/makefiles/defs.make Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/make/linux/makefiles/defs.make Wed Jul 05 18:29:53 2017 +0200 @@ -170,68 +170,70 @@ # overridden in some situations, e.g., a BUILD_FLAVOR != product # build. - ifeq ($(BUILD_FLAVOR), product) - FULL_DEBUG_SYMBOLS ?= 1 - ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) - else - # debug variants always get Full Debug Symbols (if available) - ENABLE_FULL_DEBUG_SYMBOLS = 1 - endif - _JUNK_ := $(shell \ - echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") - # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later + # Due to the multiple sub-make processes that occur this logic gets + # executed multiple times. We reduce the noise by at least checking that + # BUILD_FLAVOR has been set. + ifneq ($(BUILD_FLAVOR),) + ifeq ($(BUILD_FLAVOR), product) + FULL_DEBUG_SYMBOLS ?= 1 + ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) + else + # debug variants always get Full Debug Symbols (if available) + ENABLE_FULL_DEBUG_SYMBOLS = 1 + endif + _JUNK_ := $(shell \ + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") + # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later - ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - # Default OBJCOPY comes from GNU Binutils on Linux: - DEF_OBJCOPY=/usr/bin/objcopy - ifdef CROSS_COMPILE_ARCH - # don't try to generate .debuginfo files when cross compiling - _JUNK_ := $(shell \ - echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \ - "skipping .debuginfo generation.") - OBJCOPY= - else + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + # Default OBJCOPY comes from GNU Binutils on Linux + ifeq ($(CROSS_COMPILE_ARCH),) + DEF_OBJCOPY=/usr/bin/objcopy + else + # Assume objcopy is part of the cross-compilation toolset + ifneq ($(ALT_COMPILER_PATH),) + DEF_OBJCOPY=$(ALT_COMPILER_PATH)/objcopy + endif + endif OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) ifneq ($(ALT_OBJCOPY),) _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) endif - endif - else - OBJCOPY= - endif - ifeq ($(OBJCOPY),) - _JUNK_ := $(shell \ - echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") - ENABLE_FULL_DEBUG_SYMBOLS=0 - _JUNK_ := $(shell \ - echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") - else - _JUNK_ := $(shell \ - echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") + ifeq ($(OBJCOPY),) + _JUNK_ := $(shell \ + echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files. You may need to set ALT_OBJCOPY.") + ENABLE_FULL_DEBUG_SYMBOLS=0 + _JUNK_ := $(shell \ + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") + else + _JUNK_ := $(shell \ + echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") - # Library stripping policies for .debuginfo configs: - # all_strip - strips everything from the library - # min_strip - strips most stuff from the library; leaves minimum symbols - # no_strip - does not strip the library at all - # - # Oracle security policy requires "all_strip". A waiver was granted on - # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. - # - # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. - # - STRIP_POLICY ?= min_strip + # Library stripping policies for .debuginfo configs: + # all_strip - strips everything from the library + # min_strip - strips most stuff from the library; leaves minimum symbols + # no_strip - does not strip the library at all + # + # Oracle security policy requires "all_strip". A waiver was granted on + # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. + # + # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. + # + STRIP_POLICY ?= min_strip - _JUNK_ := $(shell \ - echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") + _JUNK_ := $(shell \ + echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") - ZIP_DEBUGINFO_FILES ?= 1 + ZIP_DEBUGINFO_FILES ?= 1 - _JUNK_ := $(shell \ - echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") - endif -endif + _JUNK_ := $(shell \ + echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") + endif + endif # ENABLE_FULL_DEBUG_SYMBOLS=1 + endif # BUILD_FLAVOR +endif # JDK_6_OR_EARLIER JDK_INCLUDE_SUBDIR=linux diff -r 0e685b019743 -r a7496bb56968 hotspot/make/linux/makefiles/vm.make --- a/hotspot/make/linux/makefiles/vm.make Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/make/linux/makefiles/vm.make Wed Jul 05 18:29:53 2017 +0200 @@ -336,24 +336,23 @@ fi \ fi \ } -ifeq ($(CROSS_COMPILE_ARCH),) - ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ - ifeq ($(STRIP_POLICY),all_strip) + ifeq ($(STRIP_POLICY),all_strip) $(QUIETLY) $(STRIP) $@ - else - ifeq ($(STRIP_POLICY),min_strip) + else + ifeq ($(STRIP_POLICY),min_strip) $(QUIETLY) $(STRIP) -g $@ - # implied else here is no stripping at all - endif + # implied else here is no stripping at all endif + endif $(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) - ifeq ($(ZIP_DEBUGINFO_FILES),1) + ifeq ($(ZIP_DEBUGINFO_FILES),1) $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) $(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) [ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); } - endif endif endif diff -r 0e685b019743 -r a7496bb56968 hotspot/make/solaris/makefiles/defs.make --- a/hotspot/make/solaris/makefiles/defs.make Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/make/solaris/makefiles/defs.make Wed Jul 05 18:29:53 2017 +0200 @@ -109,60 +109,63 @@ # overridden in some situations, e.g., a BUILD_FLAVOR != product # build. - ifeq ($(BUILD_FLAVOR), product) - FULL_DEBUG_SYMBOLS ?= 1 - ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) - else - # debug variants always get Full Debug Symbols (if available) - ENABLE_FULL_DEBUG_SYMBOLS = 1 - endif - _JUNK_ := $(shell \ - echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") - # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later - - ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - # Default OBJCOPY comes from the SUNWbinutils package: - DEF_OBJCOPY=/usr/sfw/bin/gobjcopy - OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) - ifneq ($(ALT_OBJCOPY),) - _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") - OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) + # Due to the multiple sub-make processes that occur this logic gets + # executed multiple times. We reduce the noise by at least checking that + # BUILD_FLAVOR has been set. + ifneq ($(BUILD_FLAVOR),) + ifeq ($(BUILD_FLAVOR), product) + FULL_DEBUG_SYMBOLS ?= 1 + ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) + else + # debug variants always get Full Debug Symbols (if available) + ENABLE_FULL_DEBUG_SYMBOLS = 1 endif - else - OBJCOPY= - endif - - ifeq ($(OBJCOPY),) - _JUNK_ := $(shell \ - echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") - ENABLE_FULL_DEBUG_SYMBOLS=0 _JUNK_ := $(shell \ echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") - else - _JUNK_ := $(shell \ - echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") + # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later + + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + # Default OBJCOPY comes from the SUNWbinutils package: + DEF_OBJCOPY=/usr/sfw/bin/gobjcopy + OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) + ifneq ($(ALT_OBJCOPY),) + _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") + OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) + endif + + ifeq ($(OBJCOPY),) + _JUNK_ := $(shell \ + echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") + ENABLE_FULL_DEBUG_SYMBOLS=0 + _JUNK_ := $(shell \ + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") + else + _JUNK_ := $(shell \ + echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") - # Library stripping policies for .debuginfo configs: - # all_strip - strips everything from the library - # min_strip - strips most stuff from the library; leaves minimum symbols - # no_strip - does not strip the library at all - # - # Oracle security policy requires "all_strip". A waiver was granted on - # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. - # - # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. - # - STRIP_POLICY ?= min_strip + # Library stripping policies for .debuginfo configs: + # all_strip - strips everything from the library + # min_strip - strips most stuff from the library; leaves minimum symbols + # no_strip - does not strip the library at all + # + # Oracle security policy requires "all_strip". A waiver was granted on + # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. + # + # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. + # + STRIP_POLICY ?= min_strip - _JUNK_ := $(shell \ - echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") + _JUNK_ := $(shell \ + echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") - ZIP_DEBUGINFO_FILES ?= 1 + ZIP_DEBUGINFO_FILES ?= 1 - _JUNK_ := $(shell \ - echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") - endif -endif + _JUNK_ := $(shell \ + echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") + endif + endif # ENABLE_FULL_DEBUG_SYMBOLS=1 + endif # BUILD_FLAVOR +endif # JDK_6_OR_EARLIER JDK_INCLUDE_SUBDIR=solaris diff -r 0e685b019743 -r a7496bb56968 hotspot/make/windows/makefiles/defs.make --- a/hotspot/make/windows/makefiles/defs.make Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/make/windows/makefiles/defs.make Wed Jul 05 18:29:53 2017 +0200 @@ -131,23 +131,29 @@ # overridden in some situations, e.g., a BUILD_FLAVOR != product # build. -ifeq ($(BUILD_FLAVOR), product) - FULL_DEBUG_SYMBOLS ?= 1 - ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) -else - # debug variants always get Full Debug Symbols (if available) - ENABLE_FULL_DEBUG_SYMBOLS = 1 +# Due to the multiple sub-make processes that occur this logic gets +# executed multiple times. We reduce the noise by at least checking that +# BUILD_FLAVOR has been set. +ifneq ($(BUILD_FLAVOR),) + ifeq ($(BUILD_FLAVOR), product) + FULL_DEBUG_SYMBOLS ?= 1 + ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) + else + # debug variants always get Full Debug Symbols (if available) + ENABLE_FULL_DEBUG_SYMBOLS = 1 + endif + _JUNK_ := $(shell \ + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") + MAKE_ARGS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) + + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + ZIP_DEBUGINFO_FILES ?= 1 + else + ZIP_DEBUGINFO_FILES=0 + endif + MAKE_ARGS += ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) endif -_JUNK_ := $(shell \ - echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") -MAKE_ARGS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) -ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - ZIP_DEBUGINFO_FILES ?= 1 -else - ZIP_DEBUGINFO_FILES=0 -endif -MAKE_ARGS += ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) MAKE_ARGS += RM="$(RM)" MAKE_ARGS += ZIPEXE=$(ZIPEXE) diff -r 0e685b019743 -r a7496bb56968 hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp --- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -2322,7 +2322,7 @@ // Pre-load a static method's oop into O1. Used both by locking code and // the normal JNI call code. if (method->is_static() && !is_critical_native) { - __ set_oop_constant(JNIHandles::make_local(Klass::cast(method->method_holder())->java_mirror()), O1); + __ set_oop_constant(JNIHandles::make_local(method->method_holder()->java_mirror()), O1); // Now handlize the static class mirror in O1. It's known not-null. __ st_ptr(O1, SP, klass_offset + STACK_BIAS); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1936,7 +1936,7 @@ if (method->is_static() && !is_critical_native) { // load opp into a register - __ movoop(oop_handle_reg, JNIHandles::make_local(Klass::cast(method->method_holder())->java_mirror())); + __ movoop(oop_handle_reg, JNIHandles::make_local(method->method_holder()->java_mirror())); // Now handlize the static class mirror it's known not-null. __ movptr(Address(rsp, klass_offset), oop_handle_reg); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -2179,7 +2179,7 @@ if (method->is_static() && !is_critical_native) { // load oop into a register - __ movoop(oop_handle_reg, JNIHandles::make_local(Klass::cast(method->method_holder())->java_mirror())); + __ movoop(oop_handle_reg, JNIHandles::make_local(method->method_holder()->java_mirror())); // Now handlize the static class mirror it's known not-null. __ movptr(Address(rsp, klass_offset), oop_handle_reg); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/cpu/x86/vm/vm_version_x86.cpp --- a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -488,8 +488,8 @@ } // The AES intrinsic stubs require AES instruction support (of course) - // but also require AVX mode for misaligned SSE access - if (UseAES && (UseAVX > 0)) { + // but also require AVX and sse3 modes for instructions it use. + if (UseAES && (UseAVX > 0) && (UseSSE > 2)) { if (FLAG_IS_DEFAULT(UseAESIntrinsics)) { UseAESIntrinsics = true; } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/tools/hsdis/hsdis-demo.c --- a/hotspot/src/share/tools/hsdis/hsdis-demo.c Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/tools/hsdis/hsdis-demo.c Wed Jul 05 18:29:53 2017 +0200 @@ -85,9 +85,11 @@ #include "dlfcn.h" -#define DECODE_INSTRUCTIONS_NAME "decode_instructions_virtual" +#define DECODE_INSTRUCTIONS_VIRTUAL_NAME "decode_instructions_virtual" +#define DECODE_INSTRUCTIONS_NAME "decode_instructions" #define HSDIS_NAME "hsdis" static void* decode_instructions_pv = 0; +static void* decode_instructions_sv = 0; static const char* hsdis_path[] = { HSDIS_NAME"-"LIBARCH LIB_EXT, "./" HSDIS_NAME"-"LIBARCH LIB_EXT, @@ -101,11 +103,12 @@ void* dllib = NULL; const char* *next_in_path = hsdis_path; while (1) { - decode_instructions_pv = dlsym(dllib, DECODE_INSTRUCTIONS_NAME); - if (decode_instructions_pv != NULL) + decode_instructions_pv = dlsym(dllib, DECODE_INSTRUCTIONS_VIRTUAL_NAME); + decode_instructions_sv = dlsym(dllib, DECODE_INSTRUCTIONS_NAME); + if (decode_instructions_pv != NULL || decode_instructions_sv != NULL) return NULL; if (dllib != NULL) - return "plugin does not defined "DECODE_INSTRUCTIONS_NAME; + return "plugin does not defined "DECODE_INSTRUCTIONS_VIRTUAL_NAME" and "DECODE_INSTRUCTIONS_NAME; for (dllib = NULL; dllib == NULL; ) { const char* next_lib = (*next_in_path++); if (next_lib == NULL) @@ -213,20 +216,44 @@ printf("%s: %s\n", err, dlerror()); exit(1); } - printf("Decoding from %p to %p...\n", from, to); - decode_instructions_ftype decode_instructions - = (decode_instructions_ftype) decode_instructions_pv; + decode_func_vtype decode_instructions_v + = (decode_func_vtype) decode_instructions_pv; + decode_func_stype decode_instructions_s + = (decode_func_stype) decode_instructions_sv; void* res; - if (raw && xml) { - res = (*decode_instructions)(from, to, (unsigned char*)from, to - from, simple_handle_event, stdout, NULL, stdout, options); - } else if (raw) { - res = (*decode_instructions)(from, to, (unsigned char*)from, to - from, simple_handle_event, stdout, NULL, stdout, options); - } else { - res = (*decode_instructions)(from, to, (unsigned char*)from, to - from, - handle_event, (void*) event_cookie, - fprintf_callback, stdout, - options); + if (decode_instructions_pv != NULL) { + printf("\nDecoding from %p to %p...with %s\n", from, to, DECODE_INSTRUCTIONS_VIRTUAL_NAME); + if (raw) { + res = (*decode_instructions_v)(from, to, + (unsigned char*)from, to - from, + simple_handle_event, stdout, + NULL, stdout, + options, 0); + } else { + res = (*decode_instructions_v)(from, to, + (unsigned char*)from, to - from, + handle_event, (void*) event_cookie, + fprintf_callback, stdout, + options, 0); + } + if (res != (void*)to) + printf("*** Result was %p!\n", res); } - if (res != (void*)to) - printf("*** Result was %p!\n", res); + void* sres; + if (decode_instructions_sv != NULL) { + printf("\nDecoding from %p to %p...with old decode_instructions\n", from, to, DECODE_INSTRUCTIONS_NAME); + if (raw) { + sres = (*decode_instructions_s)(from, to, + simple_handle_event, stdout, + NULL, stdout, + options); + } else { + sres = (*decode_instructions_s)(from, to, + handle_event, (void*) event_cookie, + fprintf_callback, stdout, + options); + } + if (sres != (void *)to) + printf("*** Result of decode_instructions %p!\n", sres); + } } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/tools/hsdis/hsdis.c --- a/hotspot/src/share/tools/hsdis/hsdis.c Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/tools/hsdis/hsdis.c Wed Jul 05 18:29:53 2017 +0200 @@ -99,7 +99,7 @@ unsigned char* buffer, uintptr_t length, event_callback_t event_callback_arg, void* event_stream_arg, printf_callback_t printf_callback_arg, void* printf_stream_arg, - const char* options) { + const char* options, int newline) { struct hsdis_app_data app_data; memset(&app_data, 0, sizeof(app_data)); app_data.start_va = start_va; @@ -110,7 +110,7 @@ app_data.event_stream = event_stream_arg; app_data.printf_callback = printf_callback_arg; app_data.printf_stream = printf_stream_arg; - app_data.do_newline = false; + app_data.do_newline = newline == 0 ? false : true; return decode(&app_data, options); } @@ -132,7 +132,7 @@ event_stream_arg, printf_callback_arg, printf_stream_arg, - options); + options, false); } static void* decode(struct hsdis_app_data* app_data, const char* options) { @@ -173,7 +173,7 @@ if (!app_data->losing) { const char* insn_close = format_insn_close("/insn", &app_data->dinfo, buf, sizeof(buf)); - (*event_callback)(event_stream, insn_close, (void*) p) != NULL; + (*event_callback)(event_stream, insn_close, (void*) p); if (app_data->do_newline) { /* follow each complete insn by a nice newline */ @@ -182,13 +182,14 @@ } } - (*event_callback)(event_stream, "/insns", (void*) p); + if (app_data->losing) (*event_callback)(event_stream, "/insns", (void*) p); return (void*) p; } } /* take the address of the function, for luck, and also test the typedef: */ -const decode_instructions_ftype decode_instructions_address = &decode_instructions_virtual; +const decode_func_vtype decode_func_virtual_address = &decode_instructions_virtual; +const decode_func_stype decode_func_address = &decode_instructions; static const char* format_insn_close(const char* close, disassemble_info* dinfo, diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/tools/hsdis/hsdis.h --- a/hotspot/src/share/tools/hsdis/hsdis.h Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/tools/hsdis/hsdis.h Wed Jul 05 18:29:53 2017 +0200 @@ -47,6 +47,9 @@ where tag is a simple identifier, signifying (as in XML) a element start, element end, and standalone element. (To render as XML, add angle brackets.) */ +#ifndef SHARED_TOOLS_HSDIS_H +#define SHARED_TOOLS_HSDIS_H + extern #ifdef DLL_EXPORT DLL_EXPORT @@ -57,16 +60,37 @@ void* event_stream, int (*printf_callback)(void*, const char*, ...), void* printf_stream, - const char* options); + const char* options, + int newline /* bool value for nice new line */); + +/* This is the compatability interface for older versions of hotspot */ +extern +#ifdef DLL_ENTRY + DLL_ENTRY +#endif +void* decode_instructions(void* start_pv, void* end_pv, + void* (*event_callback)(void*, const char*, void*), + void* event_stream, + int (*printf_callback)(void*, const char*, ...), + void* printf_stream, + const char* options); /* convenience typedefs */ typedef void* (*decode_instructions_event_callback_ftype) (void*, const char*, void*); typedef int (*decode_instructions_printf_callback_ftype) (void*, const char*, ...); -typedef void* (*decode_instructions_ftype) (uintptr_t start_va, uintptr_t end_va, - unsigned char* buffer, uintptr_t length, - decode_instructions_event_callback_ftype event_callback, - void* event_stream, - decode_instructions_printf_callback_ftype printf_callback, - void* printf_stream, - const char* options); +typedef void* (*decode_func_vtype) (uintptr_t start_va, uintptr_t end_va, + unsigned char* buffer, uintptr_t length, + decode_instructions_event_callback_ftype event_callback, + void* event_stream, + decode_instructions_printf_callback_ftype printf_callback, + void* printf_stream, + const char* options, + int newline); +typedef void* (*decode_func_stype) (void* start_pv, void* end_pv, + decode_instructions_event_callback_ftype event_callback, + void* event_stream, + decode_instructions_printf_callback_ftype printf_callback, + void* printf_stream, + const char* options); +#endif /* SHARED_TOOLS_HSDIS_H */ diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/ci/ciEnv.cpp --- a/hotspot/src/share/vm/ci/ciEnv.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/ci/ciEnv.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -768,8 +768,8 @@ Method* m = lookup_method(accessor->get_instanceKlass(), lookup, name_sym, sig_sym, bc); if (m != NULL && (bc == Bytecodes::_invokestatic - ? InstanceKlass::cast(m->method_holder())->is_not_initialized() - : !InstanceKlass::cast(m->method_holder())->is_loaded())) { + ? m->method_holder()->is_not_initialized() + : !m->method_holder()->is_loaded())) { m = NULL; } if (m != NULL) { @@ -1056,7 +1056,7 @@ method_name, entry_bci); } - InstanceKlass::cast(method->method_holder())->add_osr_nmethod(nm); + method->method_holder()->add_osr_nmethod(nm); } } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/ci/ciMethod.cpp --- a/hotspot/src/share/vm/ci/ciMethod.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/ci/ciMethod.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -105,7 +105,7 @@ CHECK_UNHANDLED_OOPS_ONLY(Thread::current()->clear_unhandled_oops()); } - if (InstanceKlass::cast(h_m()->method_holder())->is_linked()) { + if (h_m()->method_holder()->is_linked()) { _can_be_statically_bound = h_m()->can_be_statically_bound(); } else { // Have to use a conservative value in this case. @@ -188,7 +188,7 @@ // Revert any breakpoint bytecodes in ci's copy if (me->number_of_breakpoints() > 0) { - BreakpointInfo* bp = InstanceKlass::cast(me->method_holder())->breakpoints(); + BreakpointInfo* bp = me->method_holder()->breakpoints(); for (; bp != NULL; bp = bp->next()) { if (bp->match(me)) { code_at_put(bp->bci(), bp->orig_bytecode()); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/bytecodeAssembler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/classfile/bytecodeAssembler.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,269 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" + +#include "classfile/bytecodeAssembler.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/oopFactory.hpp" +#include "oops/constantPool.hpp" + +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif +#ifdef TARGET_ARCH_arm +# include "bytes_arm.hpp" +#endif +#ifdef TARGET_ARCH_ppc +# include "bytes_ppc.hpp" +#endif + +u2 BytecodeConstantPool::find_or_add(BytecodeCPEntry const& bcpe) { + u2 index; + u2* probe = _indices.get(bcpe); + if (probe == NULL) { + index = _entries.length(); + _entries.append(bcpe); + _indices.put(bcpe, index); + } else { + index = *probe; + } + return index + _orig->length(); +} + +ConstantPool* BytecodeConstantPool::create_constant_pool(TRAPS) const { + if (_entries.length() == 0) { + return _orig; + } + + ConstantPool* cp = ConstantPool::allocate( + _orig->pool_holder()->class_loader_data(), + _orig->length() + _entries.length(), CHECK_NULL); + + cp->set_pool_holder(_orig->pool_holder()); + _orig->copy_cp_to(1, _orig->length() - 1, cp, 1, CHECK_NULL); + + for (int i = 0; i < _entries.length(); ++i) { + BytecodeCPEntry entry = _entries.at(i); + int idx = i + _orig->length(); + switch (entry._tag) { + case BytecodeCPEntry::UTF8: + cp->symbol_at_put(idx, entry._u.utf8); + entry._u.utf8->increment_refcount(); + break; + case BytecodeCPEntry::KLASS: + cp->unresolved_klass_at_put( + idx, cp->symbol_at(entry._u.klass)); + break; + case BytecodeCPEntry::STRING: + cp->unresolved_string_at_put( + idx, cp->symbol_at(entry._u.string)); + break; + case BytecodeCPEntry::NAME_AND_TYPE: + cp->name_and_type_at_put(idx, + entry._u.name_and_type.name_index, + entry._u.name_and_type.type_index); + break; + case BytecodeCPEntry::METHODREF: + cp->method_at_put(idx, + entry._u.methodref.class_index, + entry._u.methodref.name_and_type_index); + break; + default: + ShouldNotReachHere(); + } + } + return cp; +} + +void BytecodeAssembler::append(u1 imm_u1) { + _code->append(imm_u1); +} + +void BytecodeAssembler::append(u2 imm_u2) { + _code->append(0); + _code->append(0); + Bytes::put_Java_u2(_code->adr_at(_code->length() - 2), imm_u2); +} + +void BytecodeAssembler::append(u4 imm_u4) { + _code->append(0); + _code->append(0); + _code->append(0); + _code->append(0); + Bytes::put_Java_u4(_code->adr_at(_code->length() - 4), imm_u4); +} + +void BytecodeAssembler::xload(u4 index, u1 onebyteop, u1 twobyteop) { + if (index < 4) { + _code->append(onebyteop + index); + } else { + _code->append(twobyteop); + _code->append((u2)index); + } +} + +void BytecodeAssembler::dup() { + _code->append(Bytecodes::_dup); +} + +void BytecodeAssembler::_new(Symbol* sym) { + u2 cpool_index = _cp->klass(sym); + _code->append(Bytecodes::_new); + append(cpool_index); +} + +void BytecodeAssembler::load_string(Symbol* sym) { + u2 cpool_index = _cp->string(sym); + if (cpool_index < 0x100) { + ldc(cpool_index); + } else { + ldc_w(cpool_index); + } +} + +void BytecodeAssembler::ldc(u1 index) { + _code->append(Bytecodes::_ldc); + append(index); +} + +void BytecodeAssembler::ldc_w(u2 index) { + _code->append(Bytecodes::_ldc_w); + append(index); +} + +void BytecodeAssembler::athrow() { + _code->append(Bytecodes::_athrow); +} + +void BytecodeAssembler::iload(u4 index) { + xload(index, Bytecodes::_iload_0, Bytecodes::_iload); +} + +void BytecodeAssembler::lload(u4 index) { + xload(index, Bytecodes::_lload_0, Bytecodes::_lload); +} + +void BytecodeAssembler::fload(u4 index) { + xload(index, Bytecodes::_fload_0, Bytecodes::_fload); +} + +void BytecodeAssembler::dload(u4 index) { + xload(index, Bytecodes::_dload_0, Bytecodes::_dload); +} + +void BytecodeAssembler::aload(u4 index) { + xload(index, Bytecodes::_aload_0, Bytecodes::_aload); +} + +void BytecodeAssembler::load(BasicType bt, u4 index) { + switch (bt) { + case T_BOOLEAN: + case T_CHAR: + case T_BYTE: + case T_SHORT: + case T_INT: iload(index); break; + case T_FLOAT: fload(index); break; + case T_DOUBLE: dload(index); break; + case T_LONG: lload(index); break; + case T_OBJECT: + case T_ARRAY: aload(index); break; + default: + ShouldNotReachHere(); + } +} + +void BytecodeAssembler::checkcast(Symbol* sym) { + u2 cpool_index = _cp->klass(sym); + _code->append(Bytecodes::_checkcast); + append(cpool_index); +} + +void BytecodeAssembler::invokespecial(Method* method) { + invokespecial(method->klass_name(), method->name(), method->signature()); +} + +void BytecodeAssembler::invokespecial(Symbol* klss, Symbol* name, Symbol* sig) { + u2 methodref_index = _cp->methodref(klss, name, sig); + _code->append(Bytecodes::_invokespecial); + append(methodref_index); +} + +void BytecodeAssembler::invokevirtual(Method* method) { + invokevirtual(method->klass_name(), method->name(), method->signature()); +} + +void BytecodeAssembler::invokevirtual(Symbol* klss, Symbol* name, Symbol* sig) { + u2 methodref_index = _cp->methodref(klss, name, sig); + _code->append(Bytecodes::_invokevirtual); + append(methodref_index); +} + +void BytecodeAssembler::ireturn() { + _code->append(Bytecodes::_ireturn); +} + +void BytecodeAssembler::lreturn() { + _code->append(Bytecodes::_lreturn); +} + +void BytecodeAssembler::freturn() { + _code->append(Bytecodes::_freturn); +} + +void BytecodeAssembler::dreturn() { + _code->append(Bytecodes::_dreturn); +} + +void BytecodeAssembler::areturn() { + _code->append(Bytecodes::_areturn); +} + +void BytecodeAssembler::_return() { + _code->append(Bytecodes::_return); +} + +void BytecodeAssembler::_return(BasicType bt) { + switch (bt) { + case T_BOOLEAN: + case T_CHAR: + case T_BYTE: + case T_SHORT: + case T_INT: ireturn(); break; + case T_FLOAT: freturn(); break; + case T_DOUBLE: dreturn(); break; + case T_LONG: lreturn(); break; + case T_OBJECT: + case T_ARRAY: areturn(); break; + case T_VOID: _return(); break; + default: + ShouldNotReachHere(); + } +} diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/bytecodeAssembler.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/classfile/bytecodeAssembler.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,214 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_VM_CLASSFILE_BYTECODEASSEMBLER_HPP +#define SHARE_VM_CLASSFILE_BYTECODEASSEMBLER_HPP + +#include "memory/allocation.hpp" +#include "oops/method.hpp" +#include "oops/symbol.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/resourceHash.hpp" + + +/** + * Bytecode Assembler + * + * These classes are used to synthesize code for creating new methods from + * within the VM. This is only a partial implementation of an assembler; + * only the bytecodes that are needed by clients are implemented at this time. + * This is used during default method analysis to create overpass methods + * and add them to a call during parsing. Other uses (such as creating + * bridges) may come later. Any missing bytecodes can be implemented on an + * as-need basis. + */ + +class BytecodeBuffer : public GrowableArray { + public: + BytecodeBuffer() : GrowableArray(20) {} +}; + +// Entries in a yet-to-be-created constant pool. Limited types for now. +class BytecodeCPEntry VALUE_OBJ_CLASS_SPEC { + public: + enum tag { + ERROR_TAG, + UTF8, + KLASS, + STRING, + NAME_AND_TYPE, + METHODREF + }; + + u1 _tag; + union { + Symbol* utf8; + u2 klass; + u2 string; + struct { + u2 name_index; + u2 type_index; + } name_and_type; + struct { + u2 class_index; + u2 name_and_type_index; + } methodref; + uintptr_t hash; + } _u; + + BytecodeCPEntry() : _tag(ERROR_TAG) { _u.hash = 0; } + BytecodeCPEntry(u1 tag) : _tag(tag) { _u.hash = 0; } + + static BytecodeCPEntry utf8(Symbol* symbol) { + BytecodeCPEntry bcpe(UTF8); + bcpe._u.utf8 = symbol; + return bcpe; + } + + static BytecodeCPEntry klass(u2 index) { + BytecodeCPEntry bcpe(KLASS); + bcpe._u.klass = index; + return bcpe; + } + + static BytecodeCPEntry string(u2 index) { + BytecodeCPEntry bcpe(STRING); + bcpe._u.string = index; + return bcpe; + } + + static BytecodeCPEntry name_and_type(u2 name, u2 type) { + BytecodeCPEntry bcpe(NAME_AND_TYPE); + bcpe._u.name_and_type.name_index = name; + bcpe._u.name_and_type.type_index = type; + return bcpe; + } + + static BytecodeCPEntry methodref(u2 class_index, u2 nat) { + BytecodeCPEntry bcpe(METHODREF); + bcpe._u.methodref.class_index = class_index; + bcpe._u.methodref.name_and_type_index = nat; + return bcpe; + } + + static bool equals(BytecodeCPEntry const& e0, BytecodeCPEntry const& e1) { + return e0._tag == e1._tag && e0._u.hash == e1._u.hash; + } + + static unsigned hash(BytecodeCPEntry const& e0) { + return (unsigned)(e0._tag ^ e0._u.hash); + } +}; + +class BytecodeConstantPool : ResourceObj { + private: + typedef ResourceHashtable IndexHash; + + ConstantPool* _orig; + GrowableArray _entries; + IndexHash _indices; + + u2 find_or_add(BytecodeCPEntry const& bcpe); + + public: + + BytecodeConstantPool(ConstantPool* orig) : _orig(orig) {} + + BytecodeCPEntry const& at(u2 index) const { return _entries.at(index); } + + InstanceKlass* pool_holder() const { + return InstanceKlass::cast(_orig->pool_holder()); + } + + u2 utf8(Symbol* sym) { + return find_or_add(BytecodeCPEntry::utf8(sym)); + } + + u2 klass(Symbol* class_name) { + return find_or_add(BytecodeCPEntry::klass(utf8(class_name))); + } + + u2 string(Symbol* str) { + return find_or_add(BytecodeCPEntry::string(utf8(str))); + } + + u2 name_and_type(Symbol* name, Symbol* sig) { + return find_or_add(BytecodeCPEntry::name_and_type(utf8(name), utf8(sig))); + } + + u2 methodref(Symbol* class_name, Symbol* name, Symbol* sig) { + return find_or_add(BytecodeCPEntry::methodref( + klass(class_name), name_and_type(name, sig))); + } + + ConstantPool* create_constant_pool(TRAPS) const; +}; + +// Partial bytecode assembler - only what we need for creating +// overpass methods for default methods is implemented +class BytecodeAssembler : StackObj { + private: + BytecodeBuffer* _code; + BytecodeConstantPool* _cp; + + void append(u1 imm_u1); + void append(u2 imm_u2); + void append(u4 imm_u4); + + void xload(u4 index, u1 quick, u1 twobyte); + + public: + BytecodeAssembler(BytecodeBuffer* buffer, BytecodeConstantPool* cp) + : _code(buffer), _cp(cp) {} + + void aload(u4 index); + void areturn(); + void athrow(); + void checkcast(Symbol* sym); + void dload(u4 index); + void dreturn(); + void dup(); + void fload(u4 index); + void freturn(); + void iload(u4 index); + void invokespecial(Method* method); + void invokespecial(Symbol* cls, Symbol* name, Symbol* sig); + void invokevirtual(Method* method); + void invokevirtual(Symbol* cls, Symbol* name, Symbol* sig); + void ireturn(); + void ldc(u1 index); + void ldc_w(u2 index); + void lload(u4 index); + void lreturn(); + void _new(Symbol* sym); + void _return(); + + void load_string(Symbol* sym); + void load(BasicType bt, u4 index); + void _return(BasicType bt); +}; + +#endif // SHARE_VM_CLASSFILE_BYTECODEASSEMBLER_HPP diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/classFileParser.cpp --- a/hotspot/src/share/vm/classfile/classFileParser.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -27,6 +27,8 @@ #include "classfile/classLoader.hpp" #include "classfile/classLoaderData.hpp" #include "classfile/classLoaderData.inline.hpp" +#include "classfile/defaultMethods.hpp" +#include "classfile/genericSignatures.hpp" #include "classfile/javaClasses.hpp" #include "classfile/symbolTable.hpp" #include "classfile/systemDictionary.hpp" @@ -84,6 +86,9 @@ // - to check NameAndType_info signatures more aggressively #define JAVA_7_VERSION 51 +// Extension method support. +#define JAVA_8_VERSION 52 + void ClassFileParser::parse_constant_pool_entries(ClassLoaderData* loader_data, constantPoolHandle cp, int length, TRAPS) { // Use a local copy of ClassFileStream. It helps the C++ compiler to optimize @@ -785,6 +790,7 @@ ClassLoaderData* loader_data, Handle protection_domain, Symbol* class_name, + bool* has_default_methods, TRAPS) { ClassFileStream* cfs = stream(); assert(length > 0, "only called for length>0"); @@ -821,6 +827,9 @@ if (!Klass::cast(interf())->is_interface()) { THROW_MSG_(vmSymbols::java_lang_IncompatibleClassChangeError(), "Implementing class", NULL); } + if (InstanceKlass::cast(interf())->has_default_methods()) { + *has_default_methods = true; + } interfaces->at_put(index, interf()); } @@ -1928,7 +1937,8 @@ if (method_attribute_name == vmSymbols::tag_code()) { // Parse Code attribute if (_need_verify) { - guarantee_property(!access_flags.is_native() && !access_flags.is_abstract(), + guarantee_property( + !access_flags.is_native() && !access_flags.is_abstract(), "Code attribute in native or abstract methods in class file %s", CHECK_(nullHandle)); } @@ -2125,7 +2135,9 @@ runtime_visible_annotations_length = method_attribute_length; runtime_visible_annotations = cfs->get_u1_buffer(); assert(runtime_visible_annotations != NULL, "null visible annotations"); - parse_annotations(runtime_visible_annotations, runtime_visible_annotations_length, cp, &parsed_annotations, CHECK_(nullHandle)); + parse_annotations(runtime_visible_annotations, + runtime_visible_annotations_length, cp, &parsed_annotations, + CHECK_(nullHandle)); cfs->skip_u1(runtime_visible_annotations_length, CHECK_(nullHandle)); } else if (PreserveAllAnnotations && method_attribute_name == vmSymbols::tag_runtime_invisible_annotations()) { runtime_invisible_annotations_length = method_attribute_length; @@ -2169,12 +2181,10 @@ } // All sizing information for a Method* is finally available, now create it - Method* m = Method::allocate(loader_data, code_length, access_flags, - linenumber_table_length, - total_lvt_length, - exception_table_length, - checked_exceptions_length, - CHECK_(nullHandle)); + Method* m = Method::allocate( + loader_data, code_length, access_flags, linenumber_table_length, + total_lvt_length, exception_table_length, checked_exceptions_length, + ConstMethod::NORMAL, CHECK_(nullHandle)); ClassLoadingService::add_class_method_size(m->size()*HeapWordSize); @@ -2204,7 +2214,6 @@ // Fill in code attribute information m->set_max_stack(max_stack); m->set_max_locals(max_locals); - m->constMethod()->set_stackmap_data(stackmap_data); // Copy byte codes @@ -2356,6 +2365,7 @@ Array** methods_annotations, Array** methods_parameter_annotations, Array** methods_default_annotations, + bool* has_default_methods, TRAPS) { ClassFileStream* cfs = stream(); AnnotationArray* method_annotations = NULL; @@ -2382,6 +2392,10 @@ if (method->is_final()) { *has_final_method = true; } + if (is_interface && !method->is_abstract() && !method->is_static()) { + // default method + *has_default_methods = true; + } methods->at_put(index, method()); if (*methods_annotations == NULL) { *methods_annotations = @@ -2907,6 +2921,34 @@ } +#ifndef PRODUCT +static void parseAndPrintGenericSignatures( + instanceKlassHandle this_klass, TRAPS) { + assert(ParseAllGenericSignatures == true, "Shouldn't call otherwise"); + ResourceMark rm; + + if (this_klass->generic_signature() != NULL) { + using namespace generic; + ClassDescriptor* spec = ClassDescriptor::parse_generic_signature(this_klass(), CHECK); + + tty->print_cr("Parsing %s", this_klass->generic_signature()->as_C_string()); + spec->print_on(tty); + + for (int i = 0; i < this_klass->methods()->length(); ++i) { + Method* m = this_klass->methods()->at(i); + MethodDescriptor* method_spec = MethodDescriptor::parse_generic_signature(m, spec); + Symbol* sig = m->generic_signature(); + if (sig == NULL) { + sig = m->signature(); + } + tty->print_cr("Parsing %s", sig->as_C_string()); + method_spec->print_on(tty); + } + } +} +#endif // ndef PRODUCT + + instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name, Handle class_loader, Handle protection_domain, @@ -2923,6 +2965,8 @@ unsigned char *cached_class_file_bytes = NULL; jint cached_class_file_length; ClassLoaderData* loader_data = ClassLoaderData::class_loader_data(class_loader()); + bool has_default_methods = false; + ResourceMark rm(THREAD); ClassFileStream* cfs = stream(); // Timing @@ -3138,7 +3182,9 @@ if (itfs_len == 0) { local_interfaces = Universe::the_empty_klass_array(); } else { - local_interfaces = parse_interfaces(cp, itfs_len, loader_data, protection_domain, _class_name, CHECK_(nullHandle)); + local_interfaces = parse_interfaces( + cp, itfs_len, loader_data, protection_domain, _class_name, + &has_default_methods, CHECK_(nullHandle)); } u2 java_fields_count = 0; @@ -3164,6 +3210,7 @@ &methods_annotations, &methods_parameter_annotations, &methods_default_annotations, + &has_default_methods, CHECK_(nullHandle)); // Additional attributes @@ -3193,6 +3240,11 @@ super_klass = instanceKlassHandle(THREAD, kh()); } if (super_klass.not_null()) { + + if (super_klass->has_default_methods()) { + has_default_methods = true; + } + if (super_klass->is_interface()) { ResourceMark rm(THREAD); Exceptions::fthrow( @@ -3229,14 +3281,11 @@ int itable_size = 0; int num_miranda_methods = 0; - klassVtable::compute_vtable_size_and_num_mirandas(vtable_size, - num_miranda_methods, - super_klass(), - methods, - access_flags, - class_loader, - class_name, - local_interfaces, + GrowableArray all_mirandas(20); + + klassVtable::compute_vtable_size_and_num_mirandas( + &vtable_size, &num_miranda_methods, &all_mirandas, super_klass(), methods, + access_flags, class_loader, class_name, local_interfaces, CHECK_(nullHandle)); // Size of Java itable (in words) @@ -3656,6 +3705,7 @@ this_klass->set_minor_version(minor_version); this_klass->set_major_version(major_version); + this_klass->set_has_default_methods(has_default_methods); // Set up Method*::intrinsic_id as soon as we know the names of methods. // (We used to do this lazily, but now we query it in Rewriter, @@ -3673,6 +3723,16 @@ cached_class_file_length); } + // Fill in field values obtained by parse_classfile_attributes + if (parsed_annotations.has_any_annotations()) + parsed_annotations.apply_to(this_klass); + // Create annotations + if (_annotations != NULL && this_klass->annotations() == NULL) { + Annotations* anno = Annotations::allocate(loader_data, CHECK_NULL); + this_klass->set_annotations(anno); + } + apply_parsed_class_attributes(this_klass); + // Miranda methods if ((num_miranda_methods > 0) || // if this class introduced new miranda methods or @@ -3682,18 +3742,6 @@ this_klass->set_has_miranda_methods(); // then set a flag } - // Fill in field values obtained by parse_classfile_attributes - if (parsed_annotations.has_any_annotations()) { - parsed_annotations.apply_to(this_klass); - } - // Create annotations - if (_annotations != NULL && this_klass->annotations() == NULL) { - Annotations* anno = Annotations::allocate(loader_data, CHECK_NULL); - this_klass->set_annotations(anno); - } - apply_parsed_class_attributes(this_klass); - - // Compute transitive closure of interfaces this class implements this_klass->set_transitive_interfaces(transitive_interfaces); // Fill in information needed to compute superclasses. @@ -3702,6 +3750,7 @@ // Initialize itable offset tables klassItable::setup_itable_offset_table(this_klass); + // Compute transitive closure of interfaces this class implements // Do final class setup fill_oop_maps(this_klass, nonstatic_oop_map_count, nonstatic_oop_offsets, nonstatic_oop_counts); @@ -3726,6 +3775,21 @@ check_illegal_static_method(this_klass, CHECK_(nullHandle)); } + +#ifdef ASSERT + if (ParseAllGenericSignatures) { + parseAndPrintGenericSignatures(this_klass, CHECK_(nullHandle)); + } +#endif + + // Generate any default methods - default methods are interface methods + // that have a default implementation. This is new with Lambda project. + if (has_default_methods && !access_flags.is_interface() && + local_interfaces->length() > 0) { + DefaultMethods::generate_default_methods( + this_klass(), &all_mirandas, CHECK_(nullHandle)); + } + // Allocate mirror and initialize static fields java_lang_Class::create_mirror(this_klass, CHECK_(nullHandle)); @@ -3744,6 +3808,7 @@ false /* not shared class */); if (TraceClassLoading) { + ResourceMark rm; // print in a single call to reduce interleaving of output if (cfs->source() != NULL) { tty->print("[Loaded %s from %s]\n", this_klass->external_name(), @@ -3758,13 +3823,13 @@ tty->print("[Loaded %s]\n", this_klass->external_name()); } } else { - ResourceMark rm; tty->print("[Loaded %s from %s]\n", this_klass->external_name(), InstanceKlass::cast(class_loader->klass())->external_name()); } } if (TraceClassResolution) { + ResourceMark rm; // print out the superclass. const char * from = Klass::cast(this_klass())->external_name(); if (this_klass->java_super() != NULL) { @@ -3785,6 +3850,7 @@ #ifndef PRODUCT if( PrintCompactFieldsSavings ) { + ResourceMark rm; if( nonstatic_field_size < orig_nonstatic_field_size ) { tty->print("[Saved %d of %d bytes in %s]\n", (orig_nonstatic_field_size - nonstatic_field_size)*heapOopSize, @@ -3811,7 +3877,6 @@ return this_klass; } - unsigned int ClassFileParser::compute_oop_map_count(instanceKlassHandle super, unsigned int nonstatic_oop_map_count, @@ -4128,7 +4193,7 @@ } // continue to look from super_m's holder's super. - k = InstanceKlass::cast(super_m->method_holder())->super(); + k = super_m->method_holder()->super(); continue; } @@ -4263,13 +4328,16 @@ const bool is_strict = (flags & JVM_ACC_STRICT) != 0; const bool is_synchronized = (flags & JVM_ACC_SYNCHRONIZED) != 0; const bool major_gte_15 = _major_version >= JAVA_1_5_VERSION; + const bool major_gte_8 = _major_version >= JAVA_8_VERSION; const bool is_initializer = (name == vmSymbols::object_initializer_name()); bool is_illegal = false; if (is_interface) { - if (!is_abstract || !is_public || is_static || is_final || - is_native || (major_gte_15 && (is_synchronized || is_strict))) { + if (!is_public || is_static || is_final || is_native || + ((is_synchronized || is_strict) && major_gte_15 && + (!major_gte_8 || is_abstract)) || + (!major_gte_8 && !is_abstract)) { is_illegal = true; } } else { // not interface diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/classFileParser.hpp --- a/hotspot/src/share/vm/classfile/classFileParser.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/classfile/classFileParser.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -151,6 +151,7 @@ ClassLoaderData* loader_data, Handle protection_domain, Symbol* class_name, + bool* has_default_methods, TRAPS); void record_defined_class_dependencies(instanceKlassHandle defined_klass, TRAPS); @@ -188,6 +189,7 @@ Array** methods_annotations, Array** methods_parameter_annotations, Array** methods_default_annotations, + bool* has_default_method, TRAPS); Array* sort_methods(ClassLoaderData* loader_data, Array* methods, diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/defaultMethods.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/classfile/defaultMethods.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,1387 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" +#include "classfile/bytecodeAssembler.hpp" +#include "classfile/defaultMethods.hpp" +#include "classfile/genericSignatures.hpp" +#include "classfile/symbolTable.hpp" +#include "memory/allocation.hpp" +#include "memory/metadataFactory.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/signature.hpp" +#include "runtime/thread.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klass.hpp" +#include "oops/method.hpp" +#include "utilities/accessFlags.hpp" +#include "utilities/exceptions.hpp" +#include "utilities/ostream.hpp" +#include "utilities/pair.hpp" +#include "utilities/resourceHash.hpp" + +typedef enum { QUALIFIED, DISQUALIFIED } QualifiedState; + +// Because we use an iterative algorithm when iterating over the type +// hierarchy, we can't use traditional scoped objects which automatically do +// cleanup in the destructor when the scope is exited. PseudoScope (and +// PseudoScopeMark) provides a similar functionality, but for when you want a +// scoped object in non-stack memory (such as in resource memory, as we do +// here). You've just got to remember to call 'destroy()' on the scope when +// leaving it (and marks have to be explicitly added). +class PseudoScopeMark : public ResourceObj { + public: + virtual void destroy() = 0; +}; + +class PseudoScope : public ResourceObj { + private: + GrowableArray _marks; + public: + + static PseudoScope* cast(void* data) { + return static_cast(data); + } + + void add_mark(PseudoScopeMark* psm) { + _marks.append(psm); + } + + void destroy() { + for (int i = 0; i < _marks.length(); ++i) { + _marks.at(i)->destroy(); + } + } +}; + +class ContextMark : public PseudoScopeMark { + private: + generic::Context::Mark _mark; + public: + ContextMark(const generic::Context::Mark& cm) : _mark(cm) {} + virtual void destroy() { _mark.destroy(); } +}; + +#ifndef PRODUCT +static void print_slot(outputStream* str, Symbol* name, Symbol* signature) { + ResourceMark rm; + str->print("%s%s", name->as_C_string(), signature->as_C_string()); +} + +static void print_method(outputStream* str, Method* mo, bool with_class=true) { + ResourceMark rm; + if (with_class) { + str->print("%s.", mo->klass_name()->as_C_string()); + } + print_slot(str, mo->name(), mo->signature()); +} +#endif // ndef PRODUCT + +/** + * Perform a depth-first iteration over the class hierarchy, applying + * algorithmic logic as it goes. + * + * This class is one half of the inheritance hierarchy analysis mechanism. + * It is meant to be used in conjunction with another class, the algorithm, + * which is indicated by the ALGO template parameter. This class can be + * paired with any algorithm class that provides the required methods. + * + * This class contains all the mechanics for iterating over the class hierarchy + * starting at a particular root, without recursing (thus limiting stack growth + * from this point). It visits each superclass (if present) and superinterface + * in a depth-first manner, with callbacks to the ALGO class as each class is + * encountered (visit()), The algorithm can cut-off further exploration of a + * particular branch by returning 'false' from a visit() call. + * + * The ALGO class, must provide a visit() method, which each of which will be + * called once for each node in the inheritance tree during the iteration. In + * addition, it can provide a memory block via new_node_data(InstanceKlass*), + * which it can use for node-specific storage (and access via the + * current_data() and data_at_depth(int) methods). + * + * Bare minimum needed to be an ALGO class: + * class Algo : public HierarchyVisitor { + * void* new_node_data(InstanceKlass* cls) { return NULL; } + * void free_node_data(void* data) { return; } + * bool visit() { return true; } + * }; + */ +template +class HierarchyVisitor : StackObj { + private: + + class Node : public ResourceObj { + public: + InstanceKlass* _class; + bool _super_was_visited; + int _interface_index; + void* _algorithm_data; + + Node(InstanceKlass* cls, void* data, bool visit_super) + : _class(cls), _super_was_visited(!visit_super), + _interface_index(0), _algorithm_data(data) {} + + int number_of_interfaces() { return _class->local_interfaces()->length(); } + int interface_index() { return _interface_index; } + void set_super_visited() { _super_was_visited = true; } + void increment_visited_interface() { ++_interface_index; } + void set_all_interfaces_visited() { + _interface_index = number_of_interfaces(); + } + bool has_visited_super() { return _super_was_visited; } + bool has_visited_all_interfaces() { + return interface_index() >= number_of_interfaces(); + } + InstanceKlass* interface_at(int index) { + return InstanceKlass::cast(_class->local_interfaces()->at(index)); + } + InstanceKlass* next_super() { return _class->java_super(); } + InstanceKlass* next_interface() { + return interface_at(interface_index()); + } + }; + + bool _cancelled; + GrowableArray _path; + + Node* current_top() const { return _path.top(); } + bool has_more_nodes() const { return !_path.is_empty(); } + void push(InstanceKlass* cls, void* data) { + assert(cls != NULL, "Requires a valid instance class"); + Node* node = new Node(cls, data, has_super(cls)); + _path.push(node); + } + void pop() { _path.pop(); } + + void reset_iteration() { + _cancelled = false; + _path.clear(); + } + bool is_cancelled() const { return _cancelled; } + + static bool has_super(InstanceKlass* cls) { + return cls->super() != NULL && !cls->is_interface(); + } + + Node* node_at_depth(int i) const { + return (i >= _path.length()) ? NULL : _path.at(_path.length() - i - 1); + } + + protected: + + // Accessors available to the algorithm + int current_depth() const { return _path.length() - 1; } + + InstanceKlass* class_at_depth(int i) { + Node* n = node_at_depth(i); + return n == NULL ? NULL : n->_class; + } + InstanceKlass* current_class() { return class_at_depth(0); } + + void* data_at_depth(int i) { + Node* n = node_at_depth(i); + return n == NULL ? NULL : n->_algorithm_data; + } + void* current_data() { return data_at_depth(0); } + + void cancel_iteration() { _cancelled = true; } + + public: + + void run(InstanceKlass* root) { + ALGO* algo = static_cast(this); + + reset_iteration(); + + void* algo_data = algo->new_node_data(root); + push(root, algo_data); + bool top_needs_visit = true; + + do { + Node* top = current_top(); + if (top_needs_visit) { + if (algo->visit() == false) { + // algorithm does not want to continue along this path. Arrange + // it so that this state is immediately popped off the stack + top->set_super_visited(); + top->set_all_interfaces_visited(); + } + top_needs_visit = false; + } + + if (top->has_visited_super() && top->has_visited_all_interfaces()) { + algo->free_node_data(top->_algorithm_data); + pop(); + } else { + InstanceKlass* next = NULL; + if (top->has_visited_super() == false) { + next = top->next_super(); + top->set_super_visited(); + } else { + next = top->next_interface(); + top->increment_visited_interface(); + } + assert(next != NULL, "Otherwise we shouldn't be here"); + algo_data = algo->new_node_data(next); + push(next, algo_data); + top_needs_visit = true; + } + } while (!is_cancelled() && has_more_nodes()); + } +}; + +#ifndef PRODUCT +class PrintHierarchy : public HierarchyVisitor { + public: + + bool visit() { + InstanceKlass* cls = current_class(); + streamIndentor si(tty, current_depth() * 2); + tty->indent().print_cr("%s", cls->name()->as_C_string()); + return true; + } + + void* new_node_data(InstanceKlass* cls) { return NULL; } + void free_node_data(void* data) { return; } +}; +#endif // ndef PRODUCT + +// Used to register InstanceKlass objects and all related metadata structures +// (Methods, ConstantPools) as "in-use" by the current thread so that they can't +// be deallocated by class redefinition while we're using them. The classes are +// de-registered when this goes out of scope. +// +// Once a class is registered, we need not bother with methodHandles or +// constantPoolHandles for it's associated metadata. +class KeepAliveRegistrar : public StackObj { + private: + Thread* _thread; + GrowableArray _keep_alive; + + public: + KeepAliveRegistrar(Thread* thread) : _thread(thread), _keep_alive(20) { + assert(thread == Thread::current(), "Must be current thread"); + } + + ~KeepAliveRegistrar() { + for (int i = _keep_alive.length() - 1; i >= 0; --i) { + ConstantPool* cp = _keep_alive.at(i); + int idx = _thread->metadata_handles()->find_from_end(cp); + assert(idx > 0, "Must be in the list"); + _thread->metadata_handles()->remove_at(idx); + } + } + + // Register a class as 'in-use' by the thread. It's fine to register a class + // multiple times (though perhaps inefficient) + void register_class(InstanceKlass* ik) { + ConstantPool* cp = ik->constants(); + _keep_alive.push(cp); + _thread->metadata_handles()->push(cp); + } +}; + +class KeepAliveVisitor : public HierarchyVisitor { + private: + KeepAliveRegistrar* _registrar; + + public: + KeepAliveVisitor(KeepAliveRegistrar* registrar) : _registrar(registrar) {} + + void* new_node_data(InstanceKlass* cls) { return NULL; } + void free_node_data(void* data) { return; } + + bool visit() { + _registrar->register_class(current_class()); + return true; + } +}; + +// A method family contains a set of all methods that implement a single +// language-level method. Because of erasure, these methods may have different +// signatures. As members of the set are collected while walking over the +// hierarchy, they are tagged with a qualification state. The qualification +// state for an erased method is set to disqualified if there exists a path +// from the root of hierarchy to the method that contains an interleaving +// language-equivalent method defined in an interface. +class MethodFamily : public ResourceObj { + private: + + generic::MethodDescriptor* _descriptor; // language-level description + GrowableArray > _members; + ResourceHashtable _member_index; + + Method* _selected_target; // Filled in later, if a unique target exists + Symbol* _exception_message; // If no unique target is found + + bool contains_method(Method* method) { + int* lookup = _member_index.get(method); + return lookup != NULL; + } + + void add_method(Method* method, QualifiedState state) { + Pair entry(method, state); + _member_index.put(method, _members.length()); + _members.append(entry); + } + + void disqualify_method(Method* method) { + int* index = _member_index.get(method); + assert(index != NULL && *index >= 0 && *index < _members.length(), "bad index"); + _members.at(*index).second = DISQUALIFIED; + } + + Symbol* generate_no_defaults_message(TRAPS) const; + Symbol* generate_abstract_method_message(Method* method, TRAPS) const; + Symbol* generate_conflicts_message(GrowableArray* methods, TRAPS) const; + + public: + + MethodFamily(generic::MethodDescriptor* canonical_desc) + : _descriptor(canonical_desc), _selected_target(NULL), + _exception_message(NULL) {} + + generic::MethodDescriptor* descriptor() const { return _descriptor; } + + bool descriptor_matches(generic::MethodDescriptor* md, generic::Context* ctx) { + return descriptor()->covariant_match(md, ctx); + } + + void set_target_if_empty(Method* m) { + if (_selected_target == NULL && !m->is_overpass()) { + _selected_target = m; + } + } + + void record_qualified_method(Method* m) { + // If the method already exists in the set as qualified, this operation is + // redundant. If it already exists as disqualified, then we leave it as + // disqualfied. Thus we only add to the set if it's not already in the + // set. + if (!contains_method(m)) { + add_method(m, QUALIFIED); + } + } + + void record_disqualified_method(Method* m) { + // If not in the set, add it as disqualified. If it's already in the set, + // then set the state to disqualified no matter what the previous state was. + if (!contains_method(m)) { + add_method(m, DISQUALIFIED); + } else { + disqualify_method(m); + } + } + + bool has_target() const { return _selected_target != NULL; } + bool throws_exception() { return _exception_message != NULL; } + + Method* get_selected_target() { return _selected_target; } + Symbol* get_exception_message() { return _exception_message; } + + // Either sets the target or the exception error message + void determine_target(InstanceKlass* root, TRAPS) { + if (has_target() || throws_exception()) { + return; + } + + GrowableArray qualified_methods; + for (int i = 0; i < _members.length(); ++i) { + Pair entry = _members.at(i); + if (entry.second == QUALIFIED) { + qualified_methods.append(entry.first); + } + } + + if (qualified_methods.length() == 0) { + _exception_message = generate_no_defaults_message(CHECK); + } else if (qualified_methods.length() == 1) { + Method* method = qualified_methods.at(0); + if (method->is_abstract()) { + _exception_message = generate_abstract_method_message(method, CHECK); + } else { + _selected_target = qualified_methods.at(0); + } + } else { + _exception_message = generate_conflicts_message(&qualified_methods,CHECK); + } + + assert((has_target() ^ throws_exception()) == 1, + "One and only one must be true"); + } + + bool contains_signature(Symbol* query) { + for (int i = 0; i < _members.length(); ++i) { + if (query == _members.at(i).first->signature()) { + return true; + } + } + return false; + } + +#ifndef PRODUCT + void print_on(outputStream* str) const { + print_on(str, 0); + } + + void print_on(outputStream* str, int indent) const { + streamIndentor si(str, indent * 2); + + generic::Context ctx(NULL); // empty, as _descriptor already canonicalized + TempNewSymbol family = descriptor()->reify_signature(&ctx, Thread::current()); + str->indent().print_cr("Logical Method %s:", family->as_C_string()); + + streamIndentor si2(str); + for (int i = 0; i < _members.length(); ++i) { + str->indent(); + print_method(str, _members.at(i).first); + if (_members.at(i).second == DISQUALIFIED) { + str->print(" (disqualified)"); + } + str->print_cr(""); + } + + if (_selected_target != NULL) { + print_selected(str, 1); + } + } + + void print_selected(outputStream* str, int indent) const { + assert(has_target(), "Should be called otherwise"); + streamIndentor si(str, indent * 2); + str->indent().print("Selected method: "); + print_method(str, _selected_target); + str->print_cr(""); + } + + void print_exception(outputStream* str, int indent) { + assert(throws_exception(), "Should be called otherwise"); + streamIndentor si(str, indent * 2); + str->indent().print_cr("%s", _exception_message->as_C_string()); + } +#endif // ndef PRODUCT +}; + +Symbol* MethodFamily::generate_no_defaults_message(TRAPS) const { + return SymbolTable::new_symbol("No qualifying defaults found", CHECK_NULL); +} + +Symbol* MethodFamily::generate_abstract_method_message(Method* method, TRAPS) const { + Symbol* klass = method->klass_name(); + Symbol* name = method->name(); + Symbol* sig = method->signature(); + stringStream ss; + ss.print("Method "); + ss.write((const char*)klass->bytes(), klass->utf8_length()); + ss.print("."); + ss.write((const char*)name->bytes(), name->utf8_length()); + ss.write((const char*)sig->bytes(), sig->utf8_length()); + ss.print(" is abstract"); + return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL); +} + +Symbol* MethodFamily::generate_conflicts_message(GrowableArray* methods, TRAPS) const { + stringStream ss; + ss.print("Conflicting default methods:"); + for (int i = 0; i < methods->length(); ++i) { + Method* method = methods->at(i); + Symbol* klass = method->klass_name(); + Symbol* name = method->name(); + ss.print(" "); + ss.write((const char*)klass->bytes(), klass->utf8_length()); + ss.print("."); + ss.write((const char*)name->bytes(), name->utf8_length()); + } + return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL); +} + +class StateRestorer; + +// StatefulMethodFamily is a wrapper around MethodFamily that maintains the +// qualification state during hierarchy visitation, and applies that state +// when adding members to the MethodFamily. +class StatefulMethodFamily : public ResourceObj { + friend class StateRestorer; + private: + MethodFamily* _method; + QualifiedState _qualification_state; + + void set_qualification_state(QualifiedState state) { + _qualification_state = state; + } + + public: + StatefulMethodFamily(generic::MethodDescriptor* md, generic::Context* ctx) { + _method = new MethodFamily(md->canonicalize(ctx)); + _qualification_state = QUALIFIED; + } + + void set_target_if_empty(Method* m) { _method->set_target_if_empty(m); } + + MethodFamily* get_method_family() { return _method; } + + bool descriptor_matches(generic::MethodDescriptor* md, generic::Context* ctx) { + return _method->descriptor_matches(md, ctx); + } + + StateRestorer* record_method_and_dq_further(Method* mo); +}; + +class StateRestorer : public PseudoScopeMark { + private: + StatefulMethodFamily* _method; + QualifiedState _state_to_restore; + public: + StateRestorer(StatefulMethodFamily* dm, QualifiedState state) + : _method(dm), _state_to_restore(state) {} + ~StateRestorer() { destroy(); } + void restore_state() { _method->set_qualification_state(_state_to_restore); } + virtual void destroy() { restore_state(); } +}; + +StateRestorer* StatefulMethodFamily::record_method_and_dq_further(Method* mo) { + StateRestorer* mark = new StateRestorer(this, _qualification_state); + if (_qualification_state == QUALIFIED) { + _method->record_qualified_method(mo); + } else { + _method->record_disqualified_method(mo); + } + // Everything found "above"??? this method in the hierarchy walk is set to + // disqualified + set_qualification_state(DISQUALIFIED); + return mark; +} + +class StatefulMethodFamilies : public ResourceObj { + private: + GrowableArray _methods; + + public: + StatefulMethodFamily* find_matching( + generic::MethodDescriptor* md, generic::Context* ctx) { + for (int i = 0; i < _methods.length(); ++i) { + StatefulMethodFamily* existing = _methods.at(i); + if (existing->descriptor_matches(md, ctx)) { + return existing; + } + } + return NULL; + } + + StatefulMethodFamily* find_matching_or_create( + generic::MethodDescriptor* md, generic::Context* ctx) { + StatefulMethodFamily* method = find_matching(md, ctx); + if (method == NULL) { + method = new StatefulMethodFamily(md, ctx); + _methods.append(method); + } + return method; + } + + void extract_families_into(GrowableArray* array) { + for (int i = 0; i < _methods.length(); ++i) { + array->append(_methods.at(i)->get_method_family()); + } + } +}; + +// Represents a location corresponding to a vtable slot for methods that +// neither the class nor any of it's ancestors provide an implementaion. +// Default methods may be present to fill this slot. +class EmptyVtableSlot : public ResourceObj { + private: + Symbol* _name; + Symbol* _signature; + int _size_of_parameters; + MethodFamily* _binding; + + public: + EmptyVtableSlot(Method* method) + : _name(method->name()), _signature(method->signature()), + _size_of_parameters(method->size_of_parameters()), _binding(NULL) {} + + Symbol* name() const { return _name; } + Symbol* signature() const { return _signature; } + int size_of_parameters() const { return _size_of_parameters; } + + void bind_family(MethodFamily* lm) { _binding = lm; } + bool is_bound() { return _binding != NULL; } + MethodFamily* get_binding() { return _binding; } + +#ifndef PRODUCT + void print_on(outputStream* str) const { + print_slot(str, name(), signature()); + } +#endif // ndef PRODUCT +}; + +static GrowableArray* find_empty_vtable_slots( + InstanceKlass* klass, GrowableArray* mirandas, TRAPS) { + + assert(klass != NULL, "Must be valid class"); + + GrowableArray* slots = new GrowableArray(); + + // All miranda methods are obvious candidates + for (int i = 0; i < mirandas->length(); ++i) { + EmptyVtableSlot* slot = new EmptyVtableSlot(mirandas->at(i)); + slots->append(slot); + } + + // Also any overpasses in our superclasses, that we haven't implemented. + // (can't use the vtable because it is not guaranteed to be initialized yet) + InstanceKlass* super = klass->java_super(); + while (super != NULL) { + for (int i = 0; i < super->methods()->length(); ++i) { + Method* m = super->methods()->at(i); + if (m->is_overpass()) { + // m is a method that would have been a miranda if not for the + // default method processing that occurred on behalf of our superclass, + // so it's a method we want to re-examine in this new context. That is, + // unless we have a real implementation of it in the current class. + Method* impl = klass->lookup_method(m->name(), m->signature()); + if (impl == NULL || impl->is_overpass()) { + slots->append(new EmptyVtableSlot(m)); + } + } + } + super = super->java_super(); + } + +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print_cr("Slots that need filling:"); + streamIndentor si(tty); + for (int i = 0; i < slots->length(); ++i) { + tty->indent(); + slots->at(i)->print_on(tty); + tty->print_cr(""); + } + } +#endif // ndef PRODUCT + return slots; +} + +// Iterates over the type hierarchy looking for all methods with a specific +// method name. The result of this is a set of method families each of +// which is populated with a set of methods that implement the same +// language-level signature. +class FindMethodsByName : public HierarchyVisitor { + private: + // Context data + Thread* THREAD; + generic::DescriptorCache* _cache; + Symbol* _method_name; + generic::Context* _ctx; + StatefulMethodFamilies _families; + + public: + + FindMethodsByName(generic::DescriptorCache* cache, Symbol* name, + generic::Context* ctx, Thread* thread) : + _cache(cache), _method_name(name), _ctx(ctx), THREAD(thread) {} + + void get_discovered_families(GrowableArray* methods) { + _families.extract_families_into(methods); + } + + void* new_node_data(InstanceKlass* cls) { return new PseudoScope(); } + void free_node_data(void* node_data) { + PseudoScope::cast(node_data)->destroy(); + } + + bool visit() { + PseudoScope* scope = PseudoScope::cast(current_data()); + InstanceKlass* klass = current_class(); + InstanceKlass* sub = current_depth() > 0 ? class_at_depth(1) : NULL; + + ContextMark* cm = new ContextMark(_ctx->mark()); + scope->add_mark(cm); // will restore context when scope is freed + + _ctx->apply_type_arguments(sub, klass, THREAD); + + int start, end = 0; + start = klass->find_method_by_name(_method_name, &end); + if (start != -1) { + for (int i = start; i < end; ++i) { + Method* m = klass->methods()->at(i); + // This gets the method's parameter list with its generic type + // parameters resolved + generic::MethodDescriptor* md = _cache->descriptor_for(m, THREAD); + + // Find all methods on this hierarchy that match this method + // (name, signature). This class collects other families of this + // method name. + StatefulMethodFamily* family = + _families.find_matching_or_create(md, _ctx); + + if (klass->is_interface()) { + // ??? + StateRestorer* restorer = family->record_method_and_dq_further(m); + scope->add_mark(restorer); + } else { + // This is the rule that methods in classes "win" (bad word) over + // methods in interfaces. This works because of single inheritance + family->set_target_if_empty(m); + } + } + } + return true; + } +}; + +#ifndef PRODUCT +static void print_families( + GrowableArray* methods, Symbol* match) { + streamIndentor si(tty, 4); + if (methods->length() == 0) { + tty->indent(); + tty->print_cr("No Logical Method found"); + } + for (int i = 0; i < methods->length(); ++i) { + tty->indent(); + MethodFamily* lm = methods->at(i); + if (lm->contains_signature(match)) { + tty->print_cr(""); + } else { + tty->print_cr(""); + } + lm->print_on(tty, 1); + } +} +#endif // ndef PRODUCT + +static void merge_in_new_methods(InstanceKlass* klass, + GrowableArray* new_methods, TRAPS); +static void create_overpasses( + GrowableArray* slots, InstanceKlass* klass, TRAPS); + +// This is the guts of the default methods implementation. This is called just +// after the classfile has been parsed if some ancestor has default methods. +// +// First if finds any name/signature slots that need any implementation (either +// because they are miranda or a superclass's implementation is an overpass +// itself). For each slot, iterate over the hierarchy, using generic signature +// information to partition any methods that match the name into method families +// where each family contains methods whose signatures are equivalent at the +// language level (i.e., their reified parameters match and return values are +// covariant). Check those sets to see if they contain a signature that matches +// the slot we're looking at (if we're lucky, there might be other empty slots +// that we can fill using the same analysis). +// +// For each slot filled, we generate an overpass method that either calls the +// unique default method candidate using invokespecial, or throws an exception +// (in the case of no default method candidates, or more than one valid +// candidate). These methods are then added to the class's method list. If +// the method set we're using contains methods (qualified or not) with a +// different runtime signature than the method we're creating, then we have to +// create bridges with those signatures too. +void DefaultMethods::generate_default_methods( + InstanceKlass* klass, GrowableArray* mirandas, TRAPS) { + + // This resource mark is the bound for all memory allocation that takes + // place during default method processing. After this goes out of scope, + // all (Resource) objects' memory will be reclaimed. Be careful if adding an + // embedded resource mark under here as that memory can't be used outside + // whatever scope it's in. + ResourceMark rm(THREAD); + + generic::DescriptorCache cache; + + // Keep entire hierarchy alive for the duration of the computation + KeepAliveRegistrar keepAlive(THREAD); + KeepAliveVisitor loadKeepAlive(&keepAlive); + loadKeepAlive.run(klass); + +#ifndef PRODUCT + if (TraceDefaultMethods) { + ResourceMark rm; // be careful with these! + tty->print_cr("Class %s requires default method processing", + klass->name()->as_klass_external_name()); + PrintHierarchy printer; + printer.run(klass); + } +#endif // ndef PRODUCT + + GrowableArray* empty_slots = + find_empty_vtable_slots(klass, mirandas, CHECK); + + for (int i = 0; i < empty_slots->length(); ++i) { + EmptyVtableSlot* slot = empty_slots->at(i); +#ifndef PRODUCT + if (TraceDefaultMethods) { + streamIndentor si(tty, 2); + tty->indent().print("Looking for default methods for slot "); + slot->print_on(tty); + tty->print_cr(""); + } +#endif // ndef PRODUCT + if (slot->is_bound()) { +#ifndef PRODUCT + if (TraceDefaultMethods) { + streamIndentor si(tty, 4); + tty->indent().print_cr("Already bound to logical method:"); + slot->get_binding()->print_on(tty, 1); + } +#endif // ndef PRODUCT + continue; // covered by previous processing + } + + generic::Context ctx(&cache); + FindMethodsByName visitor(&cache, slot->name(), &ctx, CHECK); + visitor.run(klass); + + GrowableArray discovered_families; + visitor.get_discovered_families(&discovered_families); + +#ifndef PRODUCT + if (TraceDefaultMethods) { + print_families(&discovered_families, slot->signature()); + } +#endif // ndef PRODUCT + + // Find and populate any other slots that match the discovered families + for (int j = i; j < empty_slots->length(); ++j) { + EmptyVtableSlot* open_slot = empty_slots->at(j); + + if (slot->name() == open_slot->name()) { + for (int k = 0; k < discovered_families.length(); ++k) { + MethodFamily* lm = discovered_families.at(k); + + if (lm->contains_signature(open_slot->signature())) { + lm->determine_target(klass, CHECK); + open_slot->bind_family(lm); + } + } + } + } + } + +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print_cr("Creating overpasses..."); + } +#endif // ndef PRODUCT + + create_overpasses(empty_slots, klass, CHECK); + +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print_cr("Default method processing complete"); + } +#endif // ndef PRODUCT +} + + +/** + * Generic analysis was used upon interface '_target' and found a unique + * default method candidate with generic signature '_method_desc'. This + * method is only viable if it would also be in the set of default method + * candidates if we ran a full analysis on the current class. + * + * The only reason that the method would not be in the set of candidates for + * the current class is if that there's another covariantly matching method + * which is "more specific" than the found method -- i.e., one could find a + * path in the interface hierarchy in which the matching method appears + * before we get to '_target'. + * + * In order to determine this, we examine all of the implemented + * interfaces. If we find path that leads to the '_target' interface, then + * we examine that path to see if there are any methods that would shadow + * the selected method along that path. + */ +class ShadowChecker : public HierarchyVisitor { + private: + generic::DescriptorCache* _cache; + Thread* THREAD; + + InstanceKlass* _target; + + Symbol* _method_name; + InstanceKlass* _method_holder; + generic::MethodDescriptor* _method_desc; + bool _found_shadow; + + bool path_has_shadow() { + generic::Context ctx(_cache); + + for (int i = current_depth() - 1; i > 0; --i) { + InstanceKlass* ik = class_at_depth(i); + InstanceKlass* sub = class_at_depth(i + 1); + ctx.apply_type_arguments(sub, ik, THREAD); + + if (ik->is_interface()) { + int end; + int start = ik->find_method_by_name(_method_name, &end); + if (start != -1) { + for (int j = start; j < end; ++j) { + Method* mo = ik->methods()->at(j); + generic::MethodDescriptor* md = _cache->descriptor_for(mo, THREAD); + if (_method_desc->covariant_match(md, &ctx)) { + return true; + } + } + } + } + } + return false; + } + + public: + + ShadowChecker(generic::DescriptorCache* cache, Thread* thread, + Symbol* name, InstanceKlass* holder, generic::MethodDescriptor* desc, + InstanceKlass* target) + : _cache(cache), THREAD(thread), _method_name(name), _method_holder(holder), + _method_desc(desc), _target(target), _found_shadow(false) {} + + void* new_node_data(InstanceKlass* cls) { return NULL; } + void free_node_data(void* data) { return; } + + bool visit() { + InstanceKlass* ik = current_class(); + if (ik == _target && current_depth() == 1) { + return false; // This was the specified super -- no need to search it + } + if (ik == _method_holder || ik == _target) { + // We found a path that should be examined to see if it shadows _method + if (path_has_shadow()) { + _found_shadow = true; + cancel_iteration(); + } + return false; // no need to continue up hierarchy + } + return true; + } + + bool found_shadow() { return _found_shadow; } +}; + +// This is called during linktime when we find an invokespecial call that +// refers to a direct superinterface. It indicates that we should find the +// default method in the hierarchy of that superinterface, and if that method +// would have been a candidate from the point of view of 'this' class, then we +// return that method. +Method* DefaultMethods::find_super_default( + Klass* cls, Klass* super, Symbol* method_name, Symbol* sig, TRAPS) { + + ResourceMark rm(THREAD); + + assert(cls != NULL && super != NULL, "Need real classes"); + + InstanceKlass* current_class = InstanceKlass::cast(cls); + InstanceKlass* direction = InstanceKlass::cast(super); + + // Keep entire hierarchy alive for the duration of the computation + KeepAliveRegistrar keepAlive(THREAD); + KeepAliveVisitor loadKeepAlive(&keepAlive); + loadKeepAlive.run(current_class); + +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print_cr("Finding super default method %s.%s%s from %s", + direction->name()->as_C_string(), + method_name->as_C_string(), sig->as_C_string(), + current_class->name()->as_C_string()); + } +#endif // ndef PRODUCT + + if (!direction->is_interface()) { + // We should not be here + return NULL; + } + + generic::DescriptorCache cache; + generic::Context ctx(&cache); + + // Prime the initial generic context for current -> direction + ctx.apply_type_arguments(current_class, direction, CHECK_NULL); + + FindMethodsByName visitor(&cache, method_name, &ctx, CHECK_NULL); + visitor.run(direction); + + GrowableArray families; + visitor.get_discovered_families(&families); + +#ifndef PRODUCT + if (TraceDefaultMethods) { + print_families(&families, sig); + } +#endif // ndef PRODUCT + + MethodFamily* selected_family = NULL; + + for (int i = 0; i < families.length(); ++i) { + MethodFamily* lm = families.at(i); + if (lm->contains_signature(sig)) { + lm->determine_target(current_class, CHECK_NULL); + selected_family = lm; + } + } + + if (selected_family->has_target()) { + Method* target = selected_family->get_selected_target(); + InstanceKlass* holder = InstanceKlass::cast(target->method_holder()); + + // Verify that the identified method is valid from the context of + // the current class + ShadowChecker checker(&cache, THREAD, target->name(), + holder, selected_family->descriptor(), direction); + checker.run(current_class); + + if (checker.found_shadow()) { +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print_cr(" Only candidate found was shadowed."); + } +#endif // ndef PRODUCT + THROW_MSG_(vmSymbols::java_lang_AbstractMethodError(), + "Accessible default method not found", NULL); + } else { +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print(" Returning "); + print_method(tty, target, true); + tty->print_cr(""); + } +#endif // ndef PRODUCT + return target; + } + } else { + assert(selected_family->throws_exception(), "must have target or throw"); + THROW_MSG_(vmSymbols::java_lang_AbstractMethodError(), + selected_family->get_exception_message()->as_C_string(), NULL); + } +} + + +static int assemble_redirect( + BytecodeConstantPool* cp, BytecodeBuffer* buffer, + Symbol* incoming, Method* target, TRAPS) { + + BytecodeAssembler assem(buffer, cp); + + SignatureStream in(incoming, true); + SignatureStream out(target->signature(), true); + u2 parameter_count = 0; + + assem.aload(parameter_count++); // load 'this' + + while (!in.at_return_type()) { + assert(!out.at_return_type(), "Parameter counts do not match"); + BasicType bt = in.type(); + assert(out.type() == bt, "Parameter types are not compatible"); + assem.load(bt, parameter_count); + if (in.is_object() && in.as_symbol(THREAD) != out.as_symbol(THREAD)) { + assem.checkcast(out.as_symbol(THREAD)); + } else if (bt == T_LONG || bt == T_DOUBLE) { + ++parameter_count; // longs and doubles use two slots + } + ++parameter_count; + in.next(); + out.next(); + } + assert(out.at_return_type(), "Parameter counts do not match"); + assert(in.type() == out.type(), "Return types are not compatible"); + + if (parameter_count == 1 && (in.type() == T_LONG || in.type() == T_DOUBLE)) { + ++parameter_count; // need room for return value + } + if (target->method_holder()->is_interface()) { + assem.invokespecial(target); + } else { + assem.invokevirtual(target); + } + + if (in.is_object() && in.as_symbol(THREAD) != out.as_symbol(THREAD)) { + assem.checkcast(in.as_symbol(THREAD)); + } + assem._return(in.type()); + return parameter_count; +} + +static int assemble_abstract_method_error( + BytecodeConstantPool* cp, BytecodeBuffer* buffer, Symbol* message, TRAPS) { + + Symbol* errorName = vmSymbols::java_lang_AbstractMethodError(); + Symbol* init = vmSymbols::object_initializer_name(); + Symbol* sig = vmSymbols::string_void_signature(); + + BytecodeAssembler assem(buffer, cp); + + assem._new(errorName); + assem.dup(); + assem.load_string(message); + assem.invokespecial(errorName, init, sig); + assem.athrow(); + + return 3; // max stack size: [ exception, exception, string ] +} + +static Method* new_method( + BytecodeConstantPool* cp, BytecodeBuffer* bytecodes, Symbol* name, + Symbol* sig, AccessFlags flags, int max_stack, int params, + ConstMethod::MethodType mt, TRAPS) { + + address code_start = static_cast
(bytecodes->adr_at(0)); + int code_length = bytecodes->length(); + + Method* m = Method::allocate(cp->pool_holder()->class_loader_data(), + code_length, flags, 0, 0, 0, 0, mt, CHECK_NULL); + + m->set_constants(NULL); // This will get filled in later + m->set_name_index(cp->utf8(name)); + m->set_signature_index(cp->utf8(sig)); + m->set_generic_signature_index(0); +#ifdef CC_INTERP + ResultTypeFinder rtf(sig); + m->set_result_index(rtf.type()); +#endif + m->set_size_of_parameters(params); + m->set_max_stack(max_stack); + m->set_max_locals(params); + m->constMethod()->set_stackmap_data(NULL); + m->set_code(code_start); + m->set_force_inline(true); + + return m; +} + +static void switchover_constant_pool(BytecodeConstantPool* bpool, + InstanceKlass* klass, GrowableArray* new_methods, TRAPS) { + + if (new_methods->length() > 0) { + ConstantPool* cp = bpool->create_constant_pool(CHECK); + if (cp != klass->constants()) { + klass->class_loader_data()->add_to_deallocate_list(klass->constants()); + klass->set_constants(cp); + cp->set_pool_holder(klass); + + for (int i = 0; i < new_methods->length(); ++i) { + new_methods->at(i)->set_constants(cp); + } + for (int i = 0; i < klass->methods()->length(); ++i) { + Method* mo = klass->methods()->at(i); + mo->set_constants(cp); + } + } + } +} + +// A "bridge" is a method created by javac to bridge the gap between +// an implementation and a generically-compatible, but different, signature. +// Bridges have actual bytecode implementation in classfiles. +// An "overpass", on the other hand, performs the same function as a bridge +// but does not occur in a classfile; the VM creates overpass itself, +// when it needs a path to get from a call site to an default method, and +// a bridge doesn't exist. +static void create_overpasses( + GrowableArray* slots, + InstanceKlass* klass, TRAPS) { + + GrowableArray overpasses; + BytecodeConstantPool bpool(klass->constants()); + + for (int i = 0; i < slots->length(); ++i) { + EmptyVtableSlot* slot = slots->at(i); + + if (slot->is_bound()) { + MethodFamily* method = slot->get_binding(); + int max_stack = 0; + BytecodeBuffer buffer; + +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print("for slot: "); + slot->print_on(tty); + tty->print_cr(""); + if (method->has_target()) { + method->print_selected(tty, 1); + } else { + method->print_exception(tty, 1); + } + } +#endif // ndef PRODUCT + if (method->has_target()) { + Method* selected = method->get_selected_target(); + max_stack = assemble_redirect( + &bpool, &buffer, slot->signature(), selected, CHECK); + } else if (method->throws_exception()) { + max_stack = assemble_abstract_method_error( + &bpool, &buffer, method->get_exception_message(), CHECK); + } + AccessFlags flags = accessFlags_from( + JVM_ACC_PUBLIC | JVM_ACC_SYNTHETIC | JVM_ACC_BRIDGE); + Method* m = new_method(&bpool, &buffer, slot->name(), slot->signature(), + flags, max_stack, slot->size_of_parameters(), + ConstMethod::OVERPASS, CHECK); + if (m != NULL) { + overpasses.push(m); + } + } + } + +#ifndef PRODUCT + if (TraceDefaultMethods) { + tty->print_cr("Created %d overpass methods", overpasses.length()); + } +#endif // ndef PRODUCT + + switchover_constant_pool(&bpool, klass, &overpasses, CHECK); + merge_in_new_methods(klass, &overpasses, CHECK); +} + +static void sort_methods(GrowableArray* methods) { + // Note that this must sort using the same key as is used for sorting + // methods in InstanceKlass. + bool sorted = true; + for (int i = methods->length() - 1; i > 0; --i) { + for (int j = 0; j < i; ++j) { + Method* m1 = methods->at(j); + Method* m2 = methods->at(j + 1); + if ((uintptr_t)m1->name() > (uintptr_t)m2->name()) { + methods->at_put(j, m2); + methods->at_put(j + 1, m1); + sorted = false; + } + } + if (sorted) break; + sorted = true; + } +#ifdef ASSERT + uintptr_t prev = 0; + for (int i = 0; i < methods->length(); ++i) { + Method* mh = methods->at(i); + uintptr_t nv = (uintptr_t)mh->name(); + assert(nv >= prev, "Incorrect overpass method ordering"); + prev = nv; + } +#endif +} + +static void merge_in_new_methods(InstanceKlass* klass, + GrowableArray* new_methods, TRAPS) { + + enum { ANNOTATIONS, PARAMETERS, DEFAULTS, NUM_ARRAYS }; + + Array* original_annots[NUM_ARRAYS]; + + Array* original_methods = klass->methods(); + Annotations* annots = klass->annotations(); + original_annots[ANNOTATIONS] = annots->methods_annotations(); + original_annots[PARAMETERS] = annots->methods_parameter_annotations(); + original_annots[DEFAULTS] = annots->methods_default_annotations(); + + Array* original_ordering = klass->method_ordering(); + Array* merged_ordering = Universe::the_empty_int_array(); + + int new_size = klass->methods()->length() + new_methods->length(); + + Array* merged_annots[NUM_ARRAYS]; + + Array* merged_methods = MetadataFactory::new_array( + klass->class_loader_data(), new_size, NULL, CHECK); + for (int i = 0; i < NUM_ARRAYS; ++i) { + if (original_annots[i] != NULL) { + merged_annots[i] = MetadataFactory::new_array( + klass->class_loader_data(), new_size, CHECK); + } else { + merged_annots[i] = NULL; + } + } + if (original_ordering != NULL && original_ordering->length() > 0) { + merged_ordering = MetadataFactory::new_array( + klass->class_loader_data(), new_size, CHECK); + } + int method_order_index = klass->methods()->length(); + + sort_methods(new_methods); + + // Perform grand merge of existing methods and new methods + int orig_idx = 0; + int new_idx = 0; + + for (int i = 0; i < new_size; ++i) { + Method* orig_method = NULL; + Method* new_method = NULL; + if (orig_idx < original_methods->length()) { + orig_method = original_methods->at(orig_idx); + } + if (new_idx < new_methods->length()) { + new_method = new_methods->at(new_idx); + } + + if (orig_method != NULL && + (new_method == NULL || orig_method->name() < new_method->name())) { + merged_methods->at_put(i, orig_method); + original_methods->at_put(orig_idx, NULL); + for (int j = 0; j < NUM_ARRAYS; ++j) { + if (merged_annots[j] != NULL) { + merged_annots[j]->at_put(i, original_annots[j]->at(orig_idx)); + original_annots[j]->at_put(orig_idx, NULL); + } + } + if (merged_ordering->length() > 0) { + merged_ordering->at_put(i, original_ordering->at(orig_idx)); + } + ++orig_idx; + } else { + merged_methods->at_put(i, new_method); + if (merged_ordering->length() > 0) { + merged_ordering->at_put(i, method_order_index++); + } + ++new_idx; + } + // update idnum for new location + merged_methods->at(i)->set_method_idnum(i); + } + + // Verify correct order +#ifdef ASSERT + uintptr_t prev = 0; + for (int i = 0; i < merged_methods->length(); ++i) { + Method* mo = merged_methods->at(i); + uintptr_t nv = (uintptr_t)mo->name(); + assert(nv >= prev, "Incorrect method ordering"); + prev = nv; + } +#endif + + // Replace klass methods with new merged lists + klass->set_methods(merged_methods); + annots->set_methods_annotations(merged_annots[ANNOTATIONS]); + annots->set_methods_parameter_annotations(merged_annots[PARAMETERS]); + annots->set_methods_default_annotations(merged_annots[DEFAULTS]); + + ClassLoaderData* cld = klass->class_loader_data(); + MetadataFactory::free_array(cld, original_methods); + for (int i = 0; i < NUM_ARRAYS; ++i) { + MetadataFactory::free_array(cld, original_annots[i]); + } + if (original_ordering->length() > 0) { + klass->set_method_ordering(merged_ordering); + MetadataFactory::free_array(cld, original_ordering); + } +} + diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/defaultMethods.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/classfile/defaultMethods.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_VM_CLASSFILE_DEFAULTMETHODS_HPP +#define SHARE_VM_CLASSFILE_DEFAULTMETHODS_HPP + +#include "runtime/handles.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/exceptions.hpp" + +class InstanceKlass; +class Symbol; +class Method; + +class DefaultMethods : AllStatic { + public: + + // Analyzes class and determines which default methods are inherited + // from interfaces (and has no other implementation). For each method + // (and each different signature the method could have), create an + // "overpass" method that is an instance method that redirects to the + // default method. Overpass methods are added to the methods lists for + // the class. + static void generate_default_methods( + InstanceKlass* klass, GrowableArray* mirandas, TRAPS); + + + // Called during linking when an invokespecial to an direct interface + // method is found. Selects and returns a method if there is a unique + // default method in the 'super_iface' part of the hierarchy which is + // also a candidate default for 'this_klass'. Otherwise throws an AME. + static Method* find_super_default( + Klass* this_klass, Klass* super_iface, + Symbol* method_name, Symbol* method_sig, TRAPS); +}; + +#endif // SHARE_VM_CLASSFILE_DEFAULTMETHODS_HPP diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/genericSignatures.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/classfile/genericSignatures.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,1272 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" + +#include "classfile/genericSignatures.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "memory/resourceArea.hpp" + +namespace generic { + +// Helper class for parsing the generic signature Symbol in klass and methods +class DescriptorStream : public ResourceObj { + private: + Symbol* _symbol; + int _offset; + int _mark; + const char* _parse_error; + + void set_parse_error(const char* error) { + assert(error != NULL, "Can't set NULL error string"); + _parse_error = error; + } + + public: + DescriptorStream(Symbol* sym) + : _symbol(sym), _offset(0), _mark(-1), _parse_error(NULL) {} + + const char* parse_error() const { + return _parse_error; + } + + bool at_end() { return _offset >= _symbol->utf8_length(); } + + char peek() { + if (at_end()) { + set_parse_error("Peeking past end of signature"); + return '\0'; + } else { + return _symbol->byte_at(_offset); + } + } + + char read() { + if (at_end()) { + set_parse_error("Reading past end of signature"); + return '\0'; + } else { + return _symbol->byte_at(_offset++); + } + } + + void read(char expected) { + char c = read(); + assert_char(c, expected, 0); + } + + void assert_char(char c, char expected, int pos = -1) { + if (c != expected) { + const char* fmt = "Parse error at %d: expected %c but got %c"; + size_t len = strlen(fmt) + 5; + char* buffer = NEW_RESOURCE_ARRAY(char, len); + jio_snprintf(buffer, len, fmt, _offset + pos, expected, c); + set_parse_error(buffer); + } + } + + void push(char c) { + assert(c == _symbol->byte_at(_offset - 1), "Pushing back wrong value"); + --_offset; + } + + void expect_end() { + if (!at_end()) { + set_parse_error("Unexpected data trailing signature"); + } + } + + bool has_mark() { return _mark != -1; } + + void set_mark() { + _mark = _offset; + } + + Identifier* identifier_from_mark() { + assert(has_mark(), "Mark should be set"); + if (!has_mark()) { + set_parse_error("Expected mark to be set"); + return NULL; + } else { + Identifier* id = new Identifier(_symbol, _mark, _offset - 1); + _mark = -1; + return id; + } + } +}; + + +#define CHECK_FOR_PARSE_ERROR() \ + if (STREAM->parse_error() != NULL) { \ + if (VerifyGenericSignatures) { \ + fatal(STREAM->parse_error()); \ + } \ + return NULL; \ + } 0 + +#define READ() STREAM->read(); CHECK_FOR_PARSE_ERROR() +#define PEEK() STREAM->peek(); CHECK_FOR_PARSE_ERROR() +#define PUSH(c) STREAM->push(c) +#define EXPECT(c) STREAM->read(c); CHECK_FOR_PARSE_ERROR() +#define EXPECTED(c, ch) STREAM->assert_char(c, ch); CHECK_FOR_PARSE_ERROR() +#define EXPECT_END() STREAM->expect_end(); CHECK_FOR_PARSE_ERROR() + +#define CHECK_STREAM STREAM); CHECK_FOR_PARSE_ERROR(); (0 + +#ifndef PRODUCT +void Identifier::print_on(outputStream* str) const { + for (int i = _begin; i < _end; ++i) { + str->print("%c", (char)_sym->byte_at(i)); + } +} +#endif // ndef PRODUCT + +bool Identifier::equals(Identifier* other) { + if (_sym == other->_sym && _begin == other->_begin && _end == other->_end) { + return true; + } else if (_end - _begin != other->_end - other->_begin) { + return false; + } else { + size_t len = _end - _begin; + char* addr = ((char*)_sym->bytes()) + _begin; + char* oaddr = ((char*)other->_sym->bytes()) + other->_begin; + return strncmp(addr, oaddr, len) == 0; + } +} + +bool Identifier::equals(Symbol* sym) { + Identifier id(sym, 0, sym->utf8_length()); + return equals(&id); +} + +/** + * A formal type parameter may be found in the the enclosing class, but it could + * also come from an enclosing method or outer class, in the case of inner-outer + * classes or anonymous classes. For example: + * + * class Outer { + * class Inner { + * void m(T t, V v, W w); + * } + * } + * + * In this case, the type variables in m()'s signature are not all found in the + * immediate enclosing class (Inner). class Inner has only type parameter W, + * but it's outer_class field will reference Outer's descriptor which contains + * T & V (no outer_method in this case). + * + * If you have an anonymous class, it has both an enclosing method *and* an + * enclosing class where type parameters can be declared: + * + * class MOuter { + * void bar(V v) { + * Runnable r = new Runnable() { + * public void run() {} + * public void foo(T t, V v) { ... } + * }; + * } + * } + * + * In this case, foo will be a member of some class, Runnable$1, which has no + * formal parameters itself, but has an outer_method (bar()) which provides + * type parameter V, and an outer class MOuter with type parameter T. + * + * It is also possible that the outer class is itself an inner class to some + * other class (or an anonymous class with an enclosing method), so we need to + * follow the outer_class/outer_method chain to it's end when looking for a + * type parameter. + */ +TypeParameter* Descriptor::find_type_parameter(Identifier* id, int* depth) { + + int current_depth = 0; + + MethodDescriptor* outer_method = as_method_signature(); + ClassDescriptor* outer_class = as_class_signature(); + + if (outer_class == NULL) { // 'this' is a method signature; use the holder + outer_class = outer_method->outer_class(); + } + + while (outer_method != NULL || outer_class != NULL) { + if (outer_method != NULL) { + for (int i = 0; i < outer_method->type_parameters().length(); ++i) { + TypeParameter* p = outer_method->type_parameters().at(i); + if (p->identifier()->equals(id)) { + *depth = -1; // indicates this this is a method parameter + return p; + } + } + } + if (outer_class != NULL) { + for (int i = 0; i < outer_class->type_parameters().length(); ++i) { + TypeParameter* p = outer_class->type_parameters().at(i); + if (p->identifier()->equals(id)) { + *depth = current_depth; + return p; + } + } + outer_method = outer_class->outer_method(); + outer_class = outer_class->outer_class(); + ++current_depth; + } + } + + if (VerifyGenericSignatures) { + fatal("Could not resolve identifier"); + } + + return NULL; +} + +ClassDescriptor* ClassDescriptor::parse_generic_signature(Klass* klass, TRAPS) { + return parse_generic_signature(klass, NULL, CHECK_NULL); +} + +ClassDescriptor* ClassDescriptor::parse_generic_signature( + Klass* klass, Symbol* original_name, TRAPS) { + + InstanceKlass* ik = InstanceKlass::cast(klass); + Symbol* sym = ik->generic_signature(); + + ClassDescriptor* spec; + + if (sym == NULL || (spec = ClassDescriptor::parse_generic_signature(sym)) == NULL) { + spec = ClassDescriptor::placeholder(ik); + } + + u2 outer_index = get_outer_class_index(ik, CHECK_NULL); + if (outer_index != 0) { + if (original_name == NULL) { + original_name = ik->name(); + } + Handle class_loader = Handle(THREAD, ik->class_loader()); + Handle protection_domain = Handle(THREAD, ik->protection_domain()); + + Symbol* outer_name = ik->constants()->klass_name_at(outer_index); + Klass* outer = SystemDictionary::find( + outer_name, class_loader, protection_domain, CHECK_NULL); + if (outer == NULL && !THREAD->is_Compiler_thread()) { + outer = SystemDictionary::resolve_super_or_fail(original_name, + outer_name, class_loader, protection_domain, false, CHECK_NULL); + } + + InstanceKlass* outer_ik; + ClassDescriptor* outer_spec = NULL; + if (outer == NULL) { + outer_spec = ClassDescriptor::placeholder(ik); + assert(false, "Outer class not loaded and not loadable from here"); + } else { + outer_ik = InstanceKlass::cast(outer); + outer_spec = parse_generic_signature(outer, original_name, CHECK_NULL); + } + spec->set_outer_class(outer_spec); + + u2 encl_method_idx = ik->enclosing_method_method_index(); + if (encl_method_idx != 0 && outer_ik != NULL) { + ConstantPool* cp = ik->constants(); + u2 name_index = cp->name_ref_index_at(encl_method_idx); + u2 sig_index = cp->signature_ref_index_at(encl_method_idx); + Symbol* name = cp->symbol_at(name_index); + Symbol* sig = cp->symbol_at(sig_index); + Method* m = outer_ik->find_method(name, sig); + if (m != NULL) { + Symbol* gsig = m->generic_signature(); + if (gsig != NULL) { + MethodDescriptor* gms = MethodDescriptor::parse_generic_signature(gsig, outer_spec); + spec->set_outer_method(gms); + } + } else if (VerifyGenericSignatures) { + ResourceMark rm; + stringStream ss; + ss.print("Could not find method %s %s in class %s", + name->as_C_string(), sig->as_C_string(), outer_name->as_C_string()); + fatal(ss.as_string()); + } + } + } + + spec->bind_variables_to_parameters(); + return spec; +} + +ClassDescriptor* ClassDescriptor::placeholder(InstanceKlass* klass) { + GrowableArray formals; + GrowableArray interfaces; + ClassType* super_type = NULL; + + Klass* super_klass = klass->super(); + if (super_klass != NULL) { + InstanceKlass* super = InstanceKlass::cast(super_klass); + super_type = ClassType::from_symbol(super->name()); + } + + for (int i = 0; i < klass->local_interfaces()->length(); ++i) { + InstanceKlass* iface = InstanceKlass::cast(klass->local_interfaces()->at(i)); + interfaces.append(ClassType::from_symbol(iface->name())); + } + return new ClassDescriptor(formals, super_type, interfaces); +} + +ClassDescriptor* ClassDescriptor::parse_generic_signature(Symbol* sym) { + + DescriptorStream ds(sym); + DescriptorStream* STREAM = &ds; + + GrowableArray parameters(8); + char c = READ(); + if (c == '<') { + c = READ(); + while (c != '>') { + PUSH(c); + TypeParameter* ftp = TypeParameter::parse_generic_signature(CHECK_STREAM); + parameters.append(ftp); + c = READ(); + } + } else { + PUSH(c); + } + + EXPECT('L'); + ClassType* super = ClassType::parse_generic_signature(CHECK_STREAM); + + GrowableArray signatures(2); + while (!STREAM->at_end()) { + EXPECT('L'); + ClassType* iface = ClassType::parse_generic_signature(CHECK_STREAM); + signatures.append(iface); + } + + EXPECT_END(); + + return new ClassDescriptor(parameters, super, signatures); +} + +#ifndef PRODUCT +void ClassDescriptor::print_on(outputStream* str) const { + str->indent().print_cr("ClassDescriptor {"); + { + streamIndentor si(str); + if (_type_parameters.length() > 0) { + str->indent().print_cr("Formals {"); + { + streamIndentor si(str); + for (int i = 0; i < _type_parameters.length(); ++i) { + _type_parameters.at(i)->print_on(str); + } + } + str->indent().print_cr("}"); + } + if (_super != NULL) { + str->indent().print_cr("Superclass: "); + { + streamIndentor si(str); + _super->print_on(str); + } + } + if (_interfaces.length() > 0) { + str->indent().print_cr("SuperInterfaces: {"); + { + streamIndentor si(str); + for (int i = 0; i < _interfaces.length(); ++i) { + _interfaces.at(i)->print_on(str); + } + } + str->indent().print_cr("}"); + } + if (_outer_method != NULL) { + str->indent().print_cr("Outer Method: {"); + { + streamIndentor si(str); + _outer_method->print_on(str); + } + str->indent().print_cr("}"); + } + if (_outer_class != NULL) { + str->indent().print_cr("Outer Class: {"); + { + streamIndentor si(str); + _outer_class->print_on(str); + } + str->indent().print_cr("}"); + } + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +ClassType* ClassDescriptor::interface_desc(Symbol* sym) { + for (int i = 0; i < _interfaces.length(); ++i) { + if (_interfaces.at(i)->identifier()->equals(sym)) { + return _interfaces.at(i); + } + } + if (VerifyGenericSignatures) { + fatal("Did not find expected interface"); + } + return NULL; +} + +void ClassDescriptor::bind_variables_to_parameters() { + if (_outer_class != NULL) { + _outer_class->bind_variables_to_parameters(); + } + if (_outer_method != NULL) { + _outer_method->bind_variables_to_parameters(); + } + for (int i = 0; i < _type_parameters.length(); ++i) { + _type_parameters.at(i)->bind_variables_to_parameters(this, i); + } + if (_super != NULL) { + _super->bind_variables_to_parameters(this); + } + for (int i = 0; i < _interfaces.length(); ++i) { + _interfaces.at(i)->bind_variables_to_parameters(this); + } +} + +ClassDescriptor* ClassDescriptor::canonicalize(Context* ctx) { + + GrowableArray type_params(_type_parameters.length()); + for (int i = 0; i < _type_parameters.length(); ++i) { + type_params.append(_type_parameters.at(i)->canonicalize(ctx, 0)); + } + + ClassDescriptor* outer = _outer_class == NULL ? NULL : + _outer_class->canonicalize(ctx); + + ClassType* super = _super == NULL ? NULL : _super->canonicalize(ctx, 0); + + GrowableArray interfaces(_interfaces.length()); + for (int i = 0; i < _interfaces.length(); ++i) { + interfaces.append(_interfaces.at(i)->canonicalize(ctx, 0)); + } + + MethodDescriptor* md = _outer_method == NULL ? NULL : + _outer_method->canonicalize(ctx); + + return new ClassDescriptor(type_params, super, interfaces, outer, md); +} + +u2 ClassDescriptor::get_outer_class_index(InstanceKlass* klass, TRAPS) { + int inner_index = InstanceKlass::inner_class_inner_class_info_offset; + int outer_index = InstanceKlass::inner_class_outer_class_info_offset; + int name_offset = InstanceKlass::inner_class_inner_name_offset; + int next_offset = InstanceKlass::inner_class_next_offset; + + if (klass->inner_classes() == NULL || klass->inner_classes()->length() == 0) { + // No inner class info => no declaring class + return 0; + } + + Array* i_icls = klass->inner_classes(); + ConstantPool* i_cp = klass->constants(); + int i_length = i_icls->length(); + + // Find inner_klass attribute + for (int i = 0; i + next_offset < i_length; i += next_offset) { + u2 ioff = i_icls->at(i + inner_index); + u2 ooff = i_icls->at(i + outer_index); + u2 noff = i_icls->at(i + name_offset); + if (ioff != 0) { + // Check to see if the name matches the class we're looking for + // before attempting to find the class. + if (i_cp->klass_name_at_matches(klass, ioff) && ooff != 0) { + return ooff; + } + } + } + + // It may be anonymous; try for that. + u2 encl_method_class_idx = klass->enclosing_method_class_index(); + if (encl_method_class_idx != 0) { + return encl_method_class_idx; + } + + return 0; +} + +MethodDescriptor* MethodDescriptor::parse_generic_signature(Method* m, ClassDescriptor* outer) { + Symbol* generic_sig = m->generic_signature(); + MethodDescriptor* md = NULL; + if (generic_sig == NULL || (md = parse_generic_signature(generic_sig, outer)) == NULL) { + md = parse_generic_signature(m->signature(), outer); + } + assert(md != NULL, "Could not parse method signature"); + md->bind_variables_to_parameters(); + return md; +} + +MethodDescriptor* MethodDescriptor::parse_generic_signature(Symbol* sym, ClassDescriptor* outer) { + + DescriptorStream ds(sym); + DescriptorStream* STREAM = &ds; + + GrowableArray params(8); + char c = READ(); + if (c == '<') { + c = READ(); + while (c != '>') { + PUSH(c); + TypeParameter* ftp = TypeParameter::parse_generic_signature(CHECK_STREAM); + params.append(ftp); + c = READ(); + } + } else { + PUSH(c); + } + + EXPECT('('); + + GrowableArray parameters(8); + c = READ(); + while (c != ')') { + PUSH(c); + Type* arg = Type::parse_generic_signature(CHECK_STREAM); + parameters.append(arg); + c = READ(); + } + + Type* rt = Type::parse_generic_signature(CHECK_STREAM); + + GrowableArray throws; + while (!STREAM->at_end()) { + EXPECT('^'); + Type* spec = Type::parse_generic_signature(CHECK_STREAM); + throws.append(spec); + } + + return new MethodDescriptor(params, outer, parameters, rt, throws); +} + +void MethodDescriptor::bind_variables_to_parameters() { + for (int i = 0; i < _type_parameters.length(); ++i) { + _type_parameters.at(i)->bind_variables_to_parameters(this, i); + } + for (int i = 0; i < _parameters.length(); ++i) { + _parameters.at(i)->bind_variables_to_parameters(this); + } + _return_type->bind_variables_to_parameters(this); + for (int i = 0; i < _throws.length(); ++i) { + _throws.at(i)->bind_variables_to_parameters(this); + } +} + +bool MethodDescriptor::covariant_match(MethodDescriptor* other, Context* ctx) { + + if (_parameters.length() == other->_parameters.length()) { + for (int i = 0; i < _parameters.length(); ++i) { + if (!_parameters.at(i)->covariant_match(other->_parameters.at(i), ctx)) { + return false; + } + } + + if (_return_type->as_primitive() != NULL) { + return _return_type->covariant_match(other->_return_type, ctx); + } else { + // return type is a reference + return other->_return_type->as_class() != NULL || + other->_return_type->as_variable() != NULL || + other->_return_type->as_array() != NULL; + } + } else { + return false; + } +} + +MethodDescriptor* MethodDescriptor::canonicalize(Context* ctx) { + + GrowableArray type_params(_type_parameters.length()); + for (int i = 0; i < _type_parameters.length(); ++i) { + type_params.append(_type_parameters.at(i)->canonicalize(ctx, 0)); + } + + ClassDescriptor* outer = _outer_class == NULL ? NULL : + _outer_class->canonicalize(ctx); + + GrowableArray params(_parameters.length()); + for (int i = 0; i < _parameters.length(); ++i) { + params.append(_parameters.at(i)->canonicalize(ctx, 0)); + } + + Type* rt = _return_type->canonicalize(ctx, 0); + + GrowableArray throws(_throws.length()); + for (int i = 0; i < _throws.length(); ++i) { + throws.append(_throws.at(i)->canonicalize(ctx, 0)); + } + + return new MethodDescriptor(type_params, outer, params, rt, throws); +} + +#ifndef PRODUCT +TempNewSymbol MethodDescriptor::reify_signature(Context* ctx, TRAPS) { + stringStream ss(256); + + ss.print("("); + for (int i = 0; i < _parameters.length(); ++i) { + _parameters.at(i)->reify_signature(&ss, ctx); + } + ss.print(")"); + _return_type->reify_signature(&ss, ctx); + return SymbolTable::new_symbol(ss.base(), (int)ss.size(), THREAD); +} + +void MethodDescriptor::print_on(outputStream* str) const { + str->indent().print_cr("MethodDescriptor {"); + { + streamIndentor si(str); + if (_type_parameters.length() > 0) { + str->indent().print_cr("Formals: {"); + { + streamIndentor si(str); + for (int i = 0; i < _type_parameters.length(); ++i) { + _type_parameters.at(i)->print_on(str); + } + } + str->indent().print_cr("}"); + } + str->indent().print_cr("Parameters: {"); + { + streamIndentor si(str); + for (int i = 0; i < _parameters.length(); ++i) { + _parameters.at(i)->print_on(str); + } + } + str->indent().print_cr("}"); + str->indent().print_cr("Return Type: "); + { + streamIndentor si(str); + _return_type->print_on(str); + } + + if (_throws.length() > 0) { + str->indent().print_cr("Throws: {"); + { + streamIndentor si(str); + for (int i = 0; i < _throws.length(); ++i) { + _throws.at(i)->print_on(str); + } + } + str->indent().print_cr("}"); + } + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +TypeParameter* TypeParameter::parse_generic_signature(DescriptorStream* STREAM) { + STREAM->set_mark(); + char c = READ(); + while (c != ':') { + c = READ(); + } + + Identifier* id = STREAM->identifier_from_mark(); + + ClassType* class_bound = NULL; + GrowableArray interface_bounds(8); + + c = READ(); + if (c != '>') { + if (c != ':') { + EXPECTED(c, 'L'); + class_bound = ClassType::parse_generic_signature(CHECK_STREAM); + c = READ(); + } + + while (c == ':') { + EXPECT('L'); + ClassType* fts = ClassType::parse_generic_signature(CHECK_STREAM); + interface_bounds.append(fts); + c = READ(); + } + } + PUSH(c); + + return new TypeParameter(id, class_bound, interface_bounds); +} + +void TypeParameter::bind_variables_to_parameters(Descriptor* sig, int position) { + if (_class_bound != NULL) { + _class_bound->bind_variables_to_parameters(sig); + } + for (int i = 0; i < _interface_bounds.length(); ++i) { + _interface_bounds.at(i)->bind_variables_to_parameters(sig); + } + _position = position; +} + +Type* TypeParameter::resolve( + Context* ctx, int inner_depth, int ctx_depth) { + + if (inner_depth == -1) { + // This indicates that the parameter is a method type parameter, which + // isn't resolveable using the class hierarchy context + return bound(); + } + + ClassType* provider = ctx->at_depth(ctx_depth); + if (provider != NULL) { + for (int i = 0; i < inner_depth && provider != NULL; ++i) { + provider = provider->outer_class(); + } + if (provider != NULL) { + TypeArgument* arg = provider->type_argument_at(_position); + if (arg != NULL) { + Type* value = arg->lower_bound(); + return value->canonicalize(ctx, ctx_depth + 1); + } + } + } + + return bound(); +} + +TypeParameter* TypeParameter::canonicalize(Context* ctx, int ctx_depth) { + ClassType* bound = _class_bound == NULL ? NULL : + _class_bound->canonicalize(ctx, ctx_depth); + + GrowableArray ifaces(_interface_bounds.length()); + for (int i = 0; i < _interface_bounds.length(); ++i) { + ifaces.append(_interface_bounds.at(i)->canonicalize(ctx, ctx_depth)); + } + + TypeParameter* ret = new TypeParameter(_identifier, bound, ifaces); + ret->_position = _position; + return ret; +} + +ClassType* TypeParameter::bound() { + if (_class_bound != NULL) { + return _class_bound; + } + + if (_interface_bounds.length() == 1) { + return _interface_bounds.at(0); + } + + return ClassType::java_lang_Object(); // TODO: investigate this case +} + +#ifndef PRODUCT +void TypeParameter::print_on(outputStream* str) const { + str->indent().print_cr("Formal: {"); + { + streamIndentor si(str); + + str->indent().print("Identifier: "); + _identifier->print_on(str); + str->print_cr(""); + if (_class_bound != NULL) { + str->indent().print_cr("Class Bound: "); + streamIndentor si(str); + _class_bound->print_on(str); + } + if (_interface_bounds.length() > 0) { + str->indent().print_cr("Interface Bounds: {"); + { + streamIndentor si(str); + for (int i = 0; i < _interface_bounds.length(); ++i) { + _interface_bounds.at(i)->print_on(str); + } + } + str->indent().print_cr("}"); + } + str->indent().print_cr("Ordinal Position: %d", _position); + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +Type* Type::parse_generic_signature(DescriptorStream* STREAM) { + char c = READ(); + switch (c) { + case 'L': + return ClassType::parse_generic_signature(CHECK_STREAM); + case 'T': + return TypeVariable::parse_generic_signature(CHECK_STREAM); + case '[': + return ArrayType::parse_generic_signature(CHECK_STREAM); + default: + return new PrimitiveType(c); + } +} + +Identifier* ClassType::parse_generic_signature_simple(GrowableArray* args, + bool* has_inner, DescriptorStream* STREAM) { + STREAM->set_mark(); + + char c = READ(); + while (c != ';' && c != '.' && c != '<') { c = READ(); } + Identifier* id = STREAM->identifier_from_mark(); + + if (c == '<') { + c = READ(); + while (c != '>') { + PUSH(c); + TypeArgument* arg = TypeArgument::parse_generic_signature(CHECK_STREAM); + args->append(arg); + c = READ(); + } + c = READ(); + } + + *has_inner = (c == '.'); + if (!(*has_inner)) { + EXPECTED(c, ';'); + } + + return id; +} + +ClassType* ClassType::parse_generic_signature(DescriptorStream* STREAM) { + return parse_generic_signature(NULL, CHECK_STREAM); +} + +ClassType* ClassType::parse_generic_signature(ClassType* outer, DescriptorStream* STREAM) { + GrowableArray args; + ClassType* gct = NULL; + bool has_inner = false; + + Identifier* id = parse_generic_signature_simple(&args, &has_inner, STREAM); + if (id != NULL) { + gct = new ClassType(id, args, outer); + + if (has_inner) { + gct = parse_generic_signature(gct, CHECK_STREAM); + } + } + return gct; +} + +ClassType* ClassType::from_symbol(Symbol* sym) { + assert(sym != NULL, "Must not be null"); + GrowableArray args; + Identifier* id = new Identifier(sym, 0, sym->utf8_length()); + return new ClassType(id, args, NULL); +} + +ClassType* ClassType::java_lang_Object() { + return from_symbol(vmSymbols::java_lang_Object()); +} + +void ClassType::bind_variables_to_parameters(Descriptor* sig) { + for (int i = 0; i < _type_arguments.length(); ++i) { + _type_arguments.at(i)->bind_variables_to_parameters(sig); + } + if (_outer_class != NULL) { + _outer_class->bind_variables_to_parameters(sig); + } +} + +TypeArgument* ClassType::type_argument_at(int i) { + if (i >= 0 && i < _type_arguments.length()) { + return _type_arguments.at(i); + } else { + return NULL; + } +} + +#ifndef PRODUCT +void ClassType::reify_signature(stringStream* ss, Context* ctx) { + ss->print("L"); + _identifier->print_on(ss); + ss->print(";"); +} + +void ClassType::print_on(outputStream* str) const { + str->indent().print_cr("Class {"); + { + streamIndentor si(str); + str->indent().print("Name: "); + _identifier->print_on(str); + str->print_cr(""); + if (_type_arguments.length() != 0) { + str->indent().print_cr("Type Arguments: {"); + { + streamIndentor si(str); + for (int j = 0; j < _type_arguments.length(); ++j) { + _type_arguments.at(j)->print_on(str); + } + } + str->indent().print_cr("}"); + } + if (_outer_class != NULL) { + str->indent().print_cr("Outer Class: "); + streamIndentor sir(str); + _outer_class->print_on(str); + } + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +bool ClassType::covariant_match(Type* other, Context* ctx) { + + if (other == this) { + return true; + } + + TypeVariable* variable = other->as_variable(); + if (variable != NULL) { + other = variable->resolve(ctx, 0); + } + + ClassType* outer = outer_class(); + ClassType* other_class = other->as_class(); + + if (other_class == NULL || + (outer == NULL) != (other_class->outer_class() == NULL)) { + return false; + } + + if (!_identifier->equals(other_class->_identifier)) { + return false; + } + + if (outer != NULL && !outer->covariant_match(other_class->outer_class(), ctx)) { + return false; + } + + return true; +} + +ClassType* ClassType::canonicalize(Context* ctx, int ctx_depth) { + + GrowableArray args(_type_arguments.length()); + for (int i = 0; i < _type_arguments.length(); ++i) { + args.append(_type_arguments.at(i)->canonicalize(ctx, ctx_depth)); + } + + ClassType* outer = _outer_class == NULL ? NULL : + _outer_class->canonicalize(ctx, ctx_depth); + + return new ClassType(_identifier, args, outer); +} + +TypeVariable* TypeVariable::parse_generic_signature(DescriptorStream* STREAM) { + STREAM->set_mark(); + char c = READ(); + while (c != ';') { + c = READ(); + } + Identifier* id = STREAM->identifier_from_mark(); + + return new TypeVariable(id); +} + +void TypeVariable::bind_variables_to_parameters(Descriptor* sig) { + _parameter = sig->find_type_parameter(_id, &_inner_depth); + if (VerifyGenericSignatures && _parameter == NULL) { + fatal("Could not find formal parameter"); + } +} + +Type* TypeVariable::resolve(Context* ctx, int ctx_depth) { + if (parameter() != NULL) { + return parameter()->resolve(ctx, inner_depth(), ctx_depth); + } else { + if (VerifyGenericSignatures) { + fatal("Type variable matches no parameter"); + } + return NULL; + } +} + +bool TypeVariable::covariant_match(Type* other, Context* ctx) { + + if (other == this) { + return true; + } + + Context my_context(NULL); // empty, results in erasure + Type* my_type = resolve(&my_context, 0); + if (my_type == NULL) { + return false; + } + + return my_type->covariant_match(other, ctx); +} + +Type* TypeVariable::canonicalize(Context* ctx, int ctx_depth) { + return resolve(ctx, ctx_depth); +} + +#ifndef PRODUCT +void TypeVariable::reify_signature(stringStream* ss, Context* ctx) { + Type* type = resolve(ctx, 0); + if (type != NULL) { + type->reify_signature(ss, ctx); + } +} + +void TypeVariable::print_on(outputStream* str) const { + str->indent().print_cr("Type Variable {"); + { + streamIndentor si(str); + str->indent().print("Name: "); + _id->print_on(str); + str->print_cr(""); + str->indent().print_cr("Inner depth: %d", _inner_depth); + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +ArrayType* ArrayType::parse_generic_signature(DescriptorStream* STREAM) { + Type* base = Type::parse_generic_signature(CHECK_STREAM); + return new ArrayType(base); +} + +void ArrayType::bind_variables_to_parameters(Descriptor* sig) { + assert(_base != NULL, "Invalid base"); + _base->bind_variables_to_parameters(sig); +} + +bool ArrayType::covariant_match(Type* other, Context* ctx) { + assert(_base != NULL, "Invalid base"); + + if (other == this) { + return true; + } + + ArrayType* other_array = other->as_array(); + return (other_array != NULL && _base->covariant_match(other_array->_base, ctx)); +} + +ArrayType* ArrayType::canonicalize(Context* ctx, int ctx_depth) { + assert(_base != NULL, "Invalid base"); + return new ArrayType(_base->canonicalize(ctx, ctx_depth)); +} + +#ifndef PRODUCT +void ArrayType::reify_signature(stringStream* ss, Context* ctx) { + assert(_base != NULL, "Invalid base"); + ss->print("["); + _base->reify_signature(ss, ctx); +} + +void ArrayType::print_on(outputStream* str) const { + str->indent().print_cr("Array {"); + { + streamIndentor si(str); + _base->print_on(str); + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +bool PrimitiveType::covariant_match(Type* other, Context* ctx) { + + PrimitiveType* other_prim = other->as_primitive(); + return (other_prim != NULL && _type == other_prim->_type); +} + +PrimitiveType* PrimitiveType::canonicalize(Context* ctx, int ctxd) { + return this; +} + +#ifndef PRODUCT +void PrimitiveType::reify_signature(stringStream* ss, Context* ctx) { + ss->print("%c", _type); +} + +void PrimitiveType::print_on(outputStream* str) const { + str->indent().print_cr("Primitive: '%c'", _type); +} +#endif // ndef PRODUCT + +void PrimitiveType::bind_variables_to_parameters(Descriptor* sig) { +} + +TypeArgument* TypeArgument::parse_generic_signature(DescriptorStream* STREAM) { + char c = READ(); + Type* type = NULL; + + switch (c) { + case '*': + return new TypeArgument(ClassType::java_lang_Object(), NULL); + break; + default: + PUSH(c); + // fall-through + case '+': + case '-': + type = Type::parse_generic_signature(CHECK_STREAM); + if (c == '+') { + return new TypeArgument(type, NULL); + } else if (c == '-') { + return new TypeArgument(ClassType::java_lang_Object(), type); + } else { + return new TypeArgument(type, type); + } + } +} + +void TypeArgument::bind_variables_to_parameters(Descriptor* sig) { + assert(_lower_bound != NULL, "Invalid lower bound"); + _lower_bound->bind_variables_to_parameters(sig); + if (_upper_bound != NULL && _upper_bound != _lower_bound) { + _upper_bound->bind_variables_to_parameters(sig); + } +} + +bool TypeArgument::covariant_match(TypeArgument* other, Context* ctx) { + assert(_lower_bound != NULL, "Invalid lower bound"); + + if (other == this) { + return true; + } + + if (!_lower_bound->covariant_match(other->lower_bound(), ctx)) { + return false; + } + return true; +} + +TypeArgument* TypeArgument::canonicalize(Context* ctx, int ctx_depth) { + assert(_lower_bound != NULL, "Invalid lower bound"); + Type* lower = _lower_bound->canonicalize(ctx, ctx_depth); + Type* upper = NULL; + + if (_upper_bound == _lower_bound) { + upper = lower; + } else if (_upper_bound != NULL) { + upper = _upper_bound->canonicalize(ctx, ctx_depth); + } + + return new TypeArgument(lower, upper); +} + +#ifndef PRODUCT +void TypeArgument::print_on(outputStream* str) const { + str->indent().print_cr("TypeArgument {"); + { + streamIndentor si(str); + if (_lower_bound != NULL) { + str->indent().print("Lower bound: "); + _lower_bound->print_on(str); + } + if (_upper_bound != NULL) { + str->indent().print("Upper bound: "); + _upper_bound->print_on(str); + } + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +void Context::Mark::destroy() { + if (is_active()) { + _context->reset_to_mark(_marked_size); + } + deactivate(); +} + +void Context::apply_type_arguments( + InstanceKlass* current, InstanceKlass* super, TRAPS) { + assert(_cache != NULL, "Cannot use an empty context"); + ClassType* spec = NULL; + if (current != NULL) { + ClassDescriptor* descriptor = _cache->descriptor_for(current, CHECK); + if (super == current->super()) { + spec = descriptor->super(); + } else { + spec = descriptor->interface_desc(super->name()); + } + if (spec != NULL) { + _type_arguments.push(spec); + } + } +} + +void Context::reset_to_mark(int size) { + _type_arguments.trunc_to(size); +} + +ClassType* Context::at_depth(int i) const { + if (i < _type_arguments.length()) { + return _type_arguments.at(_type_arguments.length() - 1 - i); + } + return NULL; +} + +#ifndef PRODUCT +void Context::print_on(outputStream* str) const { + str->indent().print_cr("Context {"); + for (int i = 0; i < _type_arguments.length(); ++i) { + streamIndentor si(str); + str->indent().print("leval %d: ", i); + ClassType* ct = at_depth(i); + if (ct == NULL) { + str->print_cr(""); + continue; + } else { + str->print_cr("{"); + } + + for (int j = 0; j < ct->type_arguments_length(); ++j) { + streamIndentor si(str); + TypeArgument* ta = ct->type_argument_at(j); + Type* bound = ta->lower_bound(); + bound->print_on(str); + } + str->indent().print_cr("}"); + } + str->indent().print_cr("}"); +} +#endif // ndef PRODUCT + +ClassDescriptor* DescriptorCache::descriptor_for(InstanceKlass* ik, TRAPS) { + + ClassDescriptor** existing = _class_descriptors.get(ik); + if (existing == NULL) { + ClassDescriptor* cd = ClassDescriptor::parse_generic_signature(ik, CHECK_NULL); + _class_descriptors.put(ik, cd); + return cd; + } else { + return *existing; + } +} + +MethodDescriptor* DescriptorCache::descriptor_for( + Method* mh, ClassDescriptor* cd, TRAPS) { + assert(mh != NULL && cd != NULL, "Should not be NULL"); + MethodDescriptor** existing = _method_descriptors.get(mh); + if (existing == NULL) { + MethodDescriptor* md = MethodDescriptor::parse_generic_signature(mh, cd); + _method_descriptors.put(mh, md); + return md; + } else { + return *existing; + } +} +MethodDescriptor* DescriptorCache::descriptor_for(Method* mh, TRAPS) { + ClassDescriptor* cd = descriptor_for( + InstanceKlass::cast(mh->method_holder()), CHECK_NULL); + return descriptor_for(mh, cd, THREAD); +} + +} // namespace generic diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/genericSignatures.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/classfile/genericSignatures.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,467 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_VM_CLASSFILE_GENERICSIGNATURES_HPP +#define SHARE_VM_CLASSFILE_GENERICSIGNATURES_HPP + +#include "classfile/symbolTable.hpp" +#include "memory/allocation.hpp" +#include "runtime/signature.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/resourceHash.hpp" + +class stringStream; + +namespace generic { + +class Identifier; +class ClassDescriptor; +class MethodDescriptor; + +class TypeParameter; // a formal type parameter declared in generic signatures +class TypeArgument; // The "type value" passed to fill parameters in supertypes +class TypeVariable; // A usage of a type parameter as a value +/** + * Example: + * + * class Foo extends Bar { int m(V v) {} } + * ^^^^^^ ^^^^^^ ^^ + * type parameters type argument type variable + * + * Note that a type variable could be passed as an argument too: + * class Foo extends Bar { int m(V v) {} } + * ^^^ + * type argument's value is a type variable + */ + + +class Type; +class ClassType; +class ArrayType; +class PrimitiveType; +class Context; +class DescriptorCache; + +class DescriptorStream; + +class Identifier : public ResourceObj { + private: + Symbol* _sym; + int _begin; + int _end; + + public: + Identifier(Symbol* sym, int begin, int end) : + _sym(sym), _begin(begin), _end(end) {} + + bool equals(Identifier* other); + bool equals(Symbol* sym); + +#ifndef PRODUCT + void print_on(outputStream* str) const; +#endif // ndef PRODUCT +}; + +class Descriptor : public ResourceObj { + protected: + GrowableArray _type_parameters; + ClassDescriptor* _outer_class; + + Descriptor(GrowableArray& params, + ClassDescriptor* outer) + : _type_parameters(params), _outer_class(outer) {} + + public: + + ClassDescriptor* outer_class() { return _outer_class; } + void set_outer_class(ClassDescriptor* sig) { _outer_class = sig; } + + virtual ClassDescriptor* as_class_signature() { return NULL; } + virtual MethodDescriptor* as_method_signature() { return NULL; } + + bool is_class_signature() { return as_class_signature() != NULL; } + bool is_method_signature() { return as_method_signature() != NULL; } + + GrowableArray& type_parameters() { + return _type_parameters; + } + + TypeParameter* find_type_parameter(Identifier* id, int* param_depth); + + virtual void bind_variables_to_parameters() = 0; + +#ifndef PRODUCT + virtual void print_on(outputStream* str) const = 0; +#endif +}; + +class ClassDescriptor : public Descriptor { + private: + ClassType* _super; + GrowableArray _interfaces; + MethodDescriptor* _outer_method; + + ClassDescriptor(GrowableArray& ftp, ClassType* scs, + GrowableArray& sis, ClassDescriptor* outer_class = NULL, + MethodDescriptor* outer_method = NULL) + : Descriptor(ftp, outer_class), _super(scs), _interfaces(sis), + _outer_method(outer_method) {} + + static u2 get_outer_class_index(InstanceKlass* k, TRAPS); + static ClassDescriptor* parse_generic_signature(Klass* k, Symbol* original_name, TRAPS); + + public: + + virtual ClassDescriptor* as_class_signature() { return this; } + + MethodDescriptor* outer_method() { return _outer_method; } + void set_outer_method(MethodDescriptor* m) { _outer_method = m; } + + ClassType* super() { return _super; } + ClassType* interface_desc(Symbol* sym); + + static ClassDescriptor* parse_generic_signature(Klass* k, TRAPS); + static ClassDescriptor* parse_generic_signature(Symbol* sym); + + // For use in superclass chains in positions where this is no generic info + static ClassDescriptor* placeholder(InstanceKlass* klass); + +#ifndef PRODUCT + void print_on(outputStream* str) const; +#endif + + ClassDescriptor* canonicalize(Context* ctx); + + // Linking sets the position index in any contained TypeVariable type + // to correspond to the location of that identifier in the formal type + // parameters. + void bind_variables_to_parameters(); +}; + +class MethodDescriptor : public Descriptor { + private: + GrowableArray _parameters; + Type* _return_type; + GrowableArray _throws; + + MethodDescriptor(GrowableArray& ftp, ClassDescriptor* outer, + GrowableArray& sigs, Type* rt, GrowableArray& throws) + : Descriptor(ftp, outer), _parameters(sigs), _return_type(rt), + _throws(throws) {} + + public: + + static MethodDescriptor* parse_generic_signature(Method* m, ClassDescriptor* outer); + static MethodDescriptor* parse_generic_signature(Symbol* sym, ClassDescriptor* outer); + + MethodDescriptor* as_method_signature() { return this; } + + // Performs generic analysis on the method parameters to determine + // if both methods refer to the same argument types. + bool covariant_match(MethodDescriptor* other, Context* ctx); + + // Returns a new method descriptor with all generic variables + // removed and replaced with whatever is indicated using the Context. + MethodDescriptor* canonicalize(Context* ctx); + + void bind_variables_to_parameters(); + +#ifndef PRODUCT + TempNewSymbol reify_signature(Context* ctx, TRAPS); + void print_on(outputStream* str) const; +#endif +}; + +class TypeParameter : public ResourceObj { + private: + Identifier* _identifier; + ClassType* _class_bound; + GrowableArray _interface_bounds; + + // The position is the ordinal location of the parameter within the + // formal parameter list (excluding outer classes). It is only set for + // formal type parameters that are associated with a class -- method + // type parameters are left as -1. When resolving a generic variable to + // find the actual type, this index is used to access the generic type + // argument in the provided context object. + int _position; // Assigned during variable linking + + TypeParameter(Identifier* id, ClassType* class_bound, + GrowableArray& interface_bounds) : + _identifier(id), _class_bound(class_bound), + _interface_bounds(interface_bounds), _position(-1) {} + + public: + static TypeParameter* parse_generic_signature(DescriptorStream* str); + + ClassType* bound(); + int position() { return _position; } + + void bind_variables_to_parameters(Descriptor* sig, int position); + Identifier* identifier() { return _identifier; } + + Type* resolve(Context* ctx, int inner_depth, int ctx_depth); + TypeParameter* canonicalize(Context* ctx, int ctx_depth); + +#ifndef PRODUCT + void print_on(outputStream* str) const; +#endif +}; + +class Type : public ResourceObj { + public: + static Type* parse_generic_signature(DescriptorStream* str); + + virtual ClassType* as_class() { return NULL; } + virtual TypeVariable* as_variable() { return NULL; } + virtual ArrayType* as_array() { return NULL; } + virtual PrimitiveType* as_primitive() { return NULL; } + + virtual bool covariant_match(Type* gt, Context* ctx) = 0; + virtual Type* canonicalize(Context* ctx, int ctx_depth) = 0; + + virtual void bind_variables_to_parameters(Descriptor* sig) = 0; + +#ifndef PRODUCT + virtual void reify_signature(stringStream* ss, Context* ctx) = 0; + virtual void print_on(outputStream* str) const = 0; +#endif +}; + +class ClassType : public Type { + friend class ClassDescriptor; + protected: + Identifier* _identifier; + GrowableArray _type_arguments; + ClassType* _outer_class; + + ClassType(Identifier* identifier, + GrowableArray& args, + ClassType* outer) + : _identifier(identifier), _type_arguments(args), _outer_class(outer) {} + + // Returns true if there are inner classes to read + static Identifier* parse_generic_signature_simple( + GrowableArray* args, + bool* has_inner, DescriptorStream* str); + + static ClassType* parse_generic_signature(ClassType* outer, + DescriptorStream* str); + static ClassType* from_symbol(Symbol* sym); + + public: + ClassType* as_class() { return this; } + + static ClassType* parse_generic_signature(DescriptorStream* str); + static ClassType* java_lang_Object(); + + Identifier* identifier() { return _identifier; } + int type_arguments_length() { return _type_arguments.length(); } + TypeArgument* type_argument_at(int i); + + virtual ClassType* outer_class() { return _outer_class; } + + bool covariant_match(Type* gt, Context* ctx); + ClassType* canonicalize(Context* ctx, int context_depth); + + void bind_variables_to_parameters(Descriptor* sig); + +#ifndef PRODUCT + void reify_signature(stringStream* ss, Context* ctx); + void print_on(outputStream* str) const; +#endif +}; + +class TypeVariable : public Type { + private: + Identifier* _id; + TypeParameter* _parameter; // assigned during linking + + // how many steps "out" from inner classes, -1 if method + int _inner_depth; + + TypeVariable(Identifier* id) + : _id(id), _parameter(NULL), _inner_depth(0) {} + + public: + TypeVariable* as_variable() { return this; } + + static TypeVariable* parse_generic_signature(DescriptorStream* str); + + Identifier* identifier() { return _id; } + TypeParameter* parameter() { return _parameter; } + int inner_depth() { return _inner_depth; } + + void bind_variables_to_parameters(Descriptor* sig); + + Type* resolve(Context* ctx, int ctx_depth); + bool covariant_match(Type* gt, Context* ctx); + Type* canonicalize(Context* ctx, int ctx_depth); + +#ifndef PRODUCT + void reify_signature(stringStream* ss, Context* ctx); + void print_on(outputStream* str) const; +#endif +}; + +class ArrayType : public Type { + private: + Type* _base; + + ArrayType(Type* base) : _base(base) {} + + public: + ArrayType* as_array() { return this; } + + static ArrayType* parse_generic_signature(DescriptorStream* str); + + bool covariant_match(Type* gt, Context* ctx); + ArrayType* canonicalize(Context* ctx, int ctx_depth); + + void bind_variables_to_parameters(Descriptor* sig); + +#ifndef PRODUCT + void reify_signature(stringStream* ss, Context* ctx); + void print_on(outputStream* str) const; +#endif +}; + +class PrimitiveType : public Type { + friend class Type; + private: + char _type; // includes V for void + + PrimitiveType(char& type) : _type(type) {} + + public: + PrimitiveType* as_primitive() { return this; } + + bool covariant_match(Type* gt, Context* ctx); + PrimitiveType* canonicalize(Context* ctx, int ctx_depth); + + void bind_variables_to_parameters(Descriptor* sig); + +#ifndef PRODUCT + void reify_signature(stringStream* ss, Context* ctx); + void print_on(outputStream* str) const; +#endif +}; + +class TypeArgument : public ResourceObj { + private: + Type* _lower_bound; + Type* _upper_bound; // may be null or == _lower_bound + + TypeArgument(Type* lower_bound, Type* upper_bound) + : _lower_bound(lower_bound), _upper_bound(upper_bound) {} + + public: + + static TypeArgument* parse_generic_signature(DescriptorStream* str); + + Type* lower_bound() { return _lower_bound; } + Type* upper_bound() { return _upper_bound; } + + void bind_variables_to_parameters(Descriptor* sig); + TypeArgument* canonicalize(Context* ctx, int ctx_depth); + + bool covariant_match(TypeArgument* a, Context* ctx); + +#ifndef PRODUCT + void print_on(outputStream* str) const; +#endif +}; + + +class Context : public ResourceObj { + private: + DescriptorCache* _cache; + GrowableArray _type_arguments; + + void reset_to_mark(int size); + + public: + // When this object goes out of scope or 'destroy' is + // called, then the application of the type to the + // context is wound-back (unless it's been deactivated). + class Mark : public StackObj { + private: + mutable Context* _context; + int _marked_size; + + bool is_active() const { return _context != NULL; } + void deactivate() const { _context = NULL; } + + public: + Mark() : _context(NULL), _marked_size(0) {} + Mark(Context* ctx, int sz) : _context(ctx), _marked_size(sz) {} + Mark(const Mark& m) : _context(m._context), _marked_size(m._marked_size) { + m.deactivate(); // Ownership is transferred + } + + Mark& operator=(const Mark& cm) { + destroy(); + _context = cm._context; + _marked_size = cm._marked_size; + cm.deactivate(); + return *this; + } + + void destroy(); + ~Mark() { destroy(); } + }; + + Context(DescriptorCache* cache) : _cache(cache) {} + + Mark mark() { return Mark(this, _type_arguments.length()); } + void apply_type_arguments(InstanceKlass* current, InstanceKlass* super,TRAPS); + + ClassType* at_depth(int i) const; + +#ifndef PRODUCT + void print_on(outputStream* str) const; +#endif +}; + +/** + * Contains a cache of descriptors for classes and methods so they can be + * looked-up instead of reparsing each time they are needed. + */ +class DescriptorCache : public ResourceObj { + private: + ResourceHashtable _class_descriptors; + ResourceHashtable _method_descriptors; + + public: + ClassDescriptor* descriptor_for(InstanceKlass* ikh, TRAPS); + + MethodDescriptor* descriptor_for(Method* mh, ClassDescriptor* cd, TRAPS); + // Class descriptor derived from method holder + MethodDescriptor* descriptor_for(Method* mh, TRAPS); +}; + +} // namespace generic + +#endif // SHARE_VM_CLASSFILE_GENERICSIGNATURES_HPP + diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/javaClasses.cpp --- a/hotspot/src/share/vm/classfile/javaClasses.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/classfile/javaClasses.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1156,7 +1156,7 @@ // Print stack trace element to resource allocated buffer char* java_lang_Throwable::print_stack_element_to_buffer(Method* method, int bci) { // Get strings and string lengths - InstanceKlass* klass = InstanceKlass::cast(method->method_holder()); + InstanceKlass* klass = method->method_holder(); const char* klass_name = klass->external_name(); int buf_len = (int)strlen(klass_name); char* source_file_name; @@ -1747,14 +1747,14 @@ Handle element = ik->allocate_instance_handle(CHECK_0); // Fill in class name ResourceMark rm(THREAD); - const char* str = InstanceKlass::cast(method->method_holder())->external_name(); + const char* str = method->method_holder()->external_name(); oop classname = StringTable::intern((char*) str, CHECK_0); java_lang_StackTraceElement::set_declaringClass(element(), classname); // Fill in method name oop methodname = StringTable::intern(method->name(), CHECK_0); java_lang_StackTraceElement::set_methodName(element(), methodname); // Fill in source file name - Symbol* source = InstanceKlass::cast(method->method_holder())->source_file_name(); + Symbol* source = method->method_holder()->source_file_name(); if (ShowHiddenFrames && source == NULL) source = vmSymbols::unknown_class_name(); oop filename = StringTable::intern(source, CHECK_0); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/systemDictionary.hpp --- a/hotspot/src/share/vm/classfile/systemDictionary.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -137,6 +137,7 @@ /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \ /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ + do_klass(lambda_MagicLambdaImpl_klass, java_lang_invoke_MagicLambdaImpl, Opt ) \ do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \ do_klass(reflect_MethodAccessorImpl_klass, sun_reflect_MethodAccessorImpl, Opt_Only_JDK14NewRef) \ do_klass(reflect_ConstructorAccessorImpl_klass, sun_reflect_ConstructorAccessorImpl, Opt_Only_JDK14NewRef) \ diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/verifier.cpp --- a/hotspot/src/share/vm/classfile/verifier.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/classfile/verifier.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -446,7 +446,7 @@ bytecode_name = ""; } } - InstanceKlass* ik = InstanceKlass::cast(method->method_holder()); + InstanceKlass* ik = method->method_holder(); ss->indent().print_cr("Location:"); streamIndentor si2(ss); ss->indent().print_cr("%s.%s%s @%d: %s", @@ -555,9 +555,10 @@ if (was_recursively_verified()) return; Method* m = methods->at(index); - if (m->is_native() || m->is_abstract()) { + if (m->is_native() || m->is_abstract() || m->is_overpass()) { // If m is native or abstract, skip it. It is checked in class file - // parser that methods do not override a final method. + // parser that methods do not override a final method. Overpass methods + // are trusted since the VM generates them. continue; } verify_method(methodHandle(THREAD, m), CHECK_VERIFY(this)); @@ -1849,7 +1850,7 @@ if ((index <= 0) || (index >= nconstants)) { verify_error(ErrorContext::bad_cp_index(bci, index), "Illegal constant pool index %d in class %s", - index, InstanceKlass::cast(cp->pool_holder())->external_name()); + index, cp->pool_holder()->external_name()); return; } } @@ -1868,7 +1869,7 @@ if ((types & (1 << tag)) == 0) { verify_error(ErrorContext::bad_cp_index(bci, index), "Illegal type at constant pool entry %d in class %s", - index, InstanceKlass::cast(cp->pool_holder())->external_name()); + index, cp->pool_holder()->external_name()); return; } } @@ -1880,7 +1881,7 @@ if (!tag.is_klass() && !tag.is_unresolved_klass()) { verify_error(ErrorContext::bad_cp_index(bci, index), "Illegal type at constant pool entry %d in class %s", - index, InstanceKlass::cast(cp->pool_holder())->external_name()); + index, cp->pool_holder()->external_name()); return; } } @@ -2304,11 +2305,21 @@ // Make sure the constant pool item is the right type u2 index = bcs->get_index_u2(); Bytecodes::Code opcode = bcs->raw_code(); - unsigned int types = (opcode == Bytecodes::_invokeinterface - ? 1 << JVM_CONSTANT_InterfaceMethodref - : opcode == Bytecodes::_invokedynamic - ? 1 << JVM_CONSTANT_InvokeDynamic - : 1 << JVM_CONSTANT_Methodref); + unsigned int types; + switch (opcode) { + case Bytecodes::_invokeinterface: + types = 1 << JVM_CONSTANT_InterfaceMethodref; + break; + case Bytecodes::_invokedynamic: + types = 1 << JVM_CONSTANT_InvokeDynamic; + break; + case Bytecodes::_invokespecial: + types = (1 << JVM_CONSTANT_InterfaceMethodref) | + (1 << JVM_CONSTANT_Methodref); + break; + default: + types = 1 << JVM_CONSTANT_Methodref; + } verify_cp_type(bcs->bci(), index, cp, types, CHECK_VERIFY(this)); // Get method name and signature diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/vmSymbols.cpp --- a/hotspot/src/share/vm/classfile/vmSymbols.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/classfile/vmSymbols.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -507,7 +507,7 @@ } void vmIntrinsics::verify_method(ID actual_id, Method* m) { - Symbol* mk = Klass::cast(m->method_holder())->name(); + Symbol* mk = m->method_holder()->name(); ID declared_id = match_method_with_klass(m, mk); if (declared_id == actual_id) return; // success diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/classfile/vmSymbols.hpp --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -259,6 +259,7 @@ template(java_lang_invoke_DontInline_signature, "Ljava/lang/invoke/DontInline;") \ template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \ template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \ + template(java_lang_invoke_MagicLambdaImpl, "java/lang/invoke/MagicLambdaImpl") \ /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \ template(findMethodHandleType_name, "findMethodHandleType") \ template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \ diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/code/compiledIC.cpp --- a/hotspot/src/share/vm/code/compiledIC.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/code/compiledIC.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -191,8 +191,8 @@ int index = klassItable::compute_itable_index(call_info->resolved_method()()); entry = VtableStubs::create_stub(false, index, method()); assert(entry != NULL, "entry not computed"); - Klass* k = call_info->resolved_method()->method_holder(); - assert(Klass::cast(k)->is_interface(), "sanity check"); + InstanceKlass* k = call_info->resolved_method()->method_holder(); + assert(k->is_interface(), "sanity check"); InlineCacheBuffer::create_transition_stub(this, k, entry); } else { // Can be different than method->vtable_index(), due to package-private etc. diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/code/dependencies.cpp --- a/hotspot/src/share/vm/code/dependencies.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/code/dependencies.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -829,7 +829,7 @@ } if ( !Dependencies::is_concrete_method(lm) && !Dependencies::is_concrete_method(m) - && Klass::cast(lm->method_holder())->is_subtype_of(m->method_holder())) + && lm->method_holder()->is_subtype_of(m->method_holder())) // Method m is overridden by lm, but both are non-concrete. return true; } @@ -1160,7 +1160,11 @@ // We could also return false if m does not yet appear to be // executed, if the VM version supports this distinction also. - return !m->is_abstract(); + return !m->is_abstract() && + !InstanceKlass::cast(m->method_holder())->is_interface(); + // TODO: investigate whether default methods should be + // considered as "concrete" in this situation. For now they + // are not. } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/code/nmethod.cpp --- a/hotspot/src/share/vm/code/nmethod.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/code/nmethod.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1263,7 +1263,7 @@ assert(_entry_bci != InvocationEntryBci, "wrong kind of nmethod"); // Remove from list of active nmethods if (method() != NULL) - InstanceKlass::cast(method()->method_holder())->remove_osr_nmethod(this); + method()->method_holder()->remove_osr_nmethod(this); // Set entry as invalid _entry_bci = InvalidOSREntryBci; } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/compiler/compileBroker.cpp --- a/hotspot/src/share/vm/compiler/compileBroker.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1051,7 +1051,7 @@ guarantee(!method->is_abstract(), "cannot compile abstract methods"); assert(method->method_holder()->oop_is_instance(), "sanity check"); - assert(!InstanceKlass::cast(method->method_holder())->is_not_initialized(), + assert(!method->method_holder()->is_not_initialized(), "method holder must be initialized"); assert(!method->is_method_handle_intrinsic(), "do not enqueue these guys"); @@ -1206,7 +1206,7 @@ assert(method->method_holder()->oop_is_instance(), "not an instance method"); assert(osr_bci == InvocationEntryBci || (0 <= osr_bci && osr_bci < method->code_size()), "bci out of range"); assert(!method->is_abstract() && (osr_bci == InvocationEntryBci || !method->is_native()), "cannot compile abstract/native methods"); - assert(!InstanceKlass::cast(method->method_holder())->is_not_initialized(), "method holder must be initialized"); + assert(!method->method_holder()->is_not_initialized(), "method holder must be initialized"); if (!TieredCompilation) { comp_level = CompLevel_highest_tier; diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/compiler/compilerOracle.cpp --- a/hotspot/src/share/vm/compiler/compilerOracle.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/compiler/compilerOracle.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -67,7 +67,7 @@ // utility method MethodMatcher* find(methodHandle method) { - Symbol* class_name = Klass::cast(method->method_holder())->name(); + Symbol* class_name = method->method_holder()->name(); Symbol* method_name = method->name(); for (MethodMatcher* current = this; current != NULL; current = current->_next) { if (match(class_name, current->class_name(), current->_class_mode) && @@ -624,7 +624,7 @@ assert(has_command_file(), "command file must be specified"); fileStream stream(fopen(cc_file(), "at")); stream.print("exclude "); - Klass::cast(method->method_holder())->name()->print_symbol_on(&stream); + method->method_holder()->name()->print_symbol_on(&stream); stream.print("."); method->name()->print_symbol_on(&stream); method->signature()->print_symbol_on(&stream); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/compiler/disassembler.cpp --- a/hotspot/src/share/vm/compiler/disassembler.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/compiler/disassembler.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -55,16 +55,18 @@ bool Disassembler::_tried_to_load_library = false; // This routine is in the shared library: +Disassembler::decode_func_virtual Disassembler::_decode_instructions_virtual = NULL; Disassembler::decode_func Disassembler::_decode_instructions = NULL; static const char hsdis_library_name[] = "hsdis-"HOTSPOT_LIB_ARCH; -static const char decode_instructions_name[] = "decode_instructions_virtual"; - +static const char decode_instructions_virtual_name[] = "decode_instructions_virtual"; +static const char decode_instructions_name[] = "decode_instructions"; +static bool use_new_version = true; #define COMMENT_COLUMN 40 LP64_ONLY(+8) /*could be an option*/ #define BYTES_COMMENT ";..." /* funky byte display comment */ bool Disassembler::load_library() { - if (_decode_instructions != NULL) { + if (_decode_instructions_virtual != NULL || _decode_instructions != NULL) { // Already succeeded. return true; } @@ -123,11 +125,19 @@ _library = os::dll_load(buf, ebuf, sizeof ebuf); } if (_library != NULL) { + _decode_instructions_virtual = CAST_TO_FN_PTR(Disassembler::decode_func_virtual, + os::dll_lookup(_library, decode_instructions_virtual_name)); + } + if (_decode_instructions_virtual == NULL) { + // could not spot in new version, try old version _decode_instructions = CAST_TO_FN_PTR(Disassembler::decode_func, os::dll_lookup(_library, decode_instructions_name)); + use_new_version = false; + } else { + use_new_version = true; } _tried_to_load_library = true; - if (_decode_instructions == NULL) { + if (_decode_instructions_virtual == NULL && _decode_instructions == NULL) { tty->print_cr("Could not load %s; %s; %s", buf, ((_library != NULL) ? "entry point is missing" @@ -450,17 +460,31 @@ // This is mainly for debugging the library itself. FILE* out = stdout; FILE* xmlout = (_print_raw > 1 ? out : NULL); - return (address) - (*Disassembler::_decode_instructions)((uintptr_t)start, (uintptr_t)end, - start, end - start, + return use_new_version ? + (address) + (*Disassembler::_decode_instructions_virtual)((uintptr_t)start, (uintptr_t)end, + start, end - start, + NULL, (void*) xmlout, + NULL, (void*) out, + options(), 0/*nice new line*/) + : + (address) + (*Disassembler::_decode_instructions)(start, end, NULL, (void*) xmlout, NULL, (void*) out, options()); } - return (address) - (*Disassembler::_decode_instructions)((uintptr_t)start, (uintptr_t)end, - start, end - start, + return use_new_version ? + (address) + (*Disassembler::_decode_instructions_virtual)((uintptr_t)start, (uintptr_t)end, + start, end - start, + &event_to_env, (void*) this, + &printf_to_env, (void*) this, + options(), 0/*nice new line*/) + : + (address) + (*Disassembler::_decode_instructions)(start, end, &event_to_env, (void*) this, &printf_to_env, (void*) this, options()); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/compiler/disassembler.hpp --- a/hotspot/src/share/vm/compiler/disassembler.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/compiler/disassembler.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -49,18 +49,27 @@ friend class decode_env; private: // this is the type of the dll entry point: - typedef void* (*decode_func)(uintptr_t start_va, uintptr_t end_va, + typedef void* (*decode_func_virtual)(uintptr_t start_va, uintptr_t end_va, unsigned char* buffer, uintptr_t length, void* (*event_callback)(void*, const char*, void*), void* event_stream, int (*printf_callback)(void*, const char*, ...), void* printf_stream, + const char* options, + int newline); + // this is the type of the dll entry point for old version: + typedef void* (*decode_func)(void* start_va, void* end_va, + void* (*event_callback)(void*, const char*, void*), + void* event_stream, + int (*printf_callback)(void*, const char*, ...), + void* printf_stream, const char* options); // points to the library. static void* _library; // bailout static bool _tried_to_load_library; // points to the decode function. + static decode_func_virtual _decode_instructions_virtual; static decode_func _decode_instructions; // tries to load library and return whether it succedded. static bool load_library(); @@ -85,7 +94,9 @@ public: static bool can_decode() { - return (_decode_instructions != NULL) || load_library(); + return (_decode_instructions_virtual != NULL) || + (_decode_instructions != NULL) || + load_library(); } static void decode(CodeBlob *cb, outputStream* st = NULL); static void decode(nmethod* nm, outputStream* st = NULL); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/interpreter/interpreterRuntime.cpp --- a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -733,12 +733,7 @@ get_index_u2_cpcache(thread, bytecode), bytecode, CHECK); } // end JvmtiHideSingleStepping - cache_entry(thread)->set_method_handle( - pool, - info.resolved_method(), - info.resolved_appendix(), - info.resolved_method_type(), - pool->resolved_references()); + cache_entry(thread)->set_method_handle(pool, info); } IRT_END @@ -762,12 +757,7 @@ } // end JvmtiHideSingleStepping ConstantPoolCacheEntry* cp_cache_entry = pool->invokedynamic_cp_cache_entry_at(index); - cp_cache_entry->set_dynamic_call( - pool, - info.resolved_method(), - info.resolved_appendix(), - info.resolved_method_type(), - pool->resolved_references()); + cp_cache_entry->set_dynamic_call(pool, info); } IRT_END diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/interpreter/linkResolver.cpp --- a/hotspot/src/share/vm/interpreter/linkResolver.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/interpreter/linkResolver.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -23,6 +23,7 @@ */ #include "precompiled.hpp" +#include "classfile/defaultMethods.hpp" #include "classfile/systemDictionary.hpp" #include "classfile/vmSymbols.hpp" #include "compiler/compileBroker.hpp" @@ -132,7 +133,7 @@ // don't force compilation, resolve was on behalf of compiler return; } - if (InstanceKlass::cast(selected_method->method_holder())->is_not_initialized()) { + if (selected_method->method_holder()->is_not_initialized()) { // 'is_not_initialized' means not only '!is_initialized', but also that // initialization has not been started yet ('!being_initialized') // Do not force compilation of methods in uninitialized classes. @@ -404,21 +405,13 @@ Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, TRAPS) { - // 1. check if klass is not interface - if (resolved_klass->is_interface()) { - ResourceMark rm(THREAD); - char buf[200]; - jio_snprintf(buf, sizeof(buf), "Found interface %s, but class was expected", Klass::cast(resolved_klass())->external_name()); - THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), buf); - } - Handle nested_exception; - // 2. lookup method in resolved klass and its super klasses + // 1. lookup method in resolved klass and its super klasses lookup_method_in_klasses(resolved_method, resolved_klass, method_name, method_signature, CHECK); if (resolved_method.is_null()) { // not found in the class hierarchy - // 3. lookup method in all the interfaces implemented by the resolved klass + // 2. lookup method in all the interfaces implemented by the resolved klass lookup_method_in_interfaces(resolved_method, resolved_klass, method_name, method_signature, CHECK); if (resolved_method.is_null()) { @@ -432,7 +425,7 @@ } if (resolved_method.is_null()) { - // 4. method lookup failed + // 3. method lookup failed ResourceMark rm(THREAD); THROW_MSG_CAUSE(vmSymbols::java_lang_NoSuchMethodError(), Method::name_and_sig_as_C_string(Klass::cast(resolved_klass()), @@ -442,6 +435,15 @@ } } + // 4. check if klass is not interface + if (resolved_klass->is_interface() && resolved_method->is_abstract()) { + ResourceMark rm(THREAD); + char buf[200]; + jio_snprintf(buf, sizeof(buf), "Found interface %s, but class was expected", + resolved_klass()->external_name()); + THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), buf); + } + // 5. check if method is concrete if (resolved_method->is_abstract() && !resolved_klass->is_abstract()) { ResourceMark rm(THREAD); @@ -464,7 +466,7 @@ // check loader constraints Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader()); - Handle class_loader (THREAD, InstanceKlass::cast(resolved_method->method_holder())->class_loader()); + Handle class_loader (THREAD, resolved_method->method_holder()->class_loader()); { ResourceMark rm(THREAD); char* failed_type_name = @@ -526,7 +528,7 @@ if (check_access) { HandleMark hm(THREAD); Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader()); - Handle class_loader (THREAD, InstanceKlass::cast(resolved_method->method_holder())->class_loader()); + Handle class_loader (THREAD, resolved_method->method_holder()->class_loader()); { ResourceMark rm(THREAD); char* failed_type_name = @@ -743,6 +745,27 @@ Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, TRAPS) { + if (resolved_klass->is_interface() && current_klass() != NULL) { + // If the target class is a direct interface, treat this as a "super" + // default call. + // + // If the current method is an overpass that happens to call a direct + // super-interface's method, then we'll end up rerunning the default method + // analysis even though we don't need to, but that's ok since it will end + // up with the same answer. + InstanceKlass* ik = InstanceKlass::cast(current_klass()); + Array* interfaces = ik->local_interfaces(); + int num_interfaces = interfaces->length(); + for (int index = 0; index < num_interfaces; index++) { + if (interfaces->at(index) == resolved_klass()) { + Method* method = DefaultMethods::find_super_default(current_klass(), + resolved_klass(), method_name, method_signature, CHECK); + resolved_method = methodHandle(THREAD, method); + return; + } + } + } + resolve_method(resolved_method, resolved_klass, method_name, method_signature, current_klass, check_access, CHECK); // check if method name is , that it is found in same klass as static type @@ -784,11 +807,17 @@ { KlassHandle method_klass = KlassHandle(THREAD, resolved_method->method_holder()); - if (check_access && + const bool direct_calling_default_method = + resolved_klass() != NULL && resolved_method() != NULL && + resolved_klass->is_interface() && !resolved_method->is_abstract(); + + if (!direct_calling_default_method && + check_access && // a) check if ACC_SUPER flag is set for the current class current_klass->is_super() && // b) check if the method class is a superclass of the current class (superclass relation is not reflexive!) - current_klass->is_subtype_of(method_klass()) && current_klass() != method_klass() && + current_klass->is_subtype_of(method_klass()) && + current_klass() != method_klass() && // c) check if the method is not resolved_method->name() != vmSymbols::object_initializer_name()) { // Lookup super method @@ -881,12 +910,12 @@ // Virtual methods cannot be resolved before its klass has been linked, for otherwise the Method*'s // has not been rewritten, and the vtable initialized. - assert(InstanceKlass::cast(resolved_method->method_holder())->is_linked(), "must be linked"); + assert(resolved_method->method_holder()->is_linked(), "must be linked"); // Virtual methods cannot be resolved before its klass has been linked, for otherwise the Method*'s // has not been rewritten, and the vtable initialized. Make sure to do this after the nullcheck, since // a missing receiver might result in a bogus lookup. - assert(InstanceKlass::cast(resolved_method->method_holder())->is_linked(), "must be linked"); + assert(resolved_method->method_holder()->is_linked(), "must be linked"); // do lookup based on receiver klass using the vtable index if (resolved_method->method_holder()->is_interface()) { // miranda method diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/constMethod.cpp --- a/hotspot/src/share/vm/oops/constMethod.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/constMethod.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -34,29 +34,30 @@ const u2 ConstMethod::UNSET_IDNUM = 0xFFFF; ConstMethod* ConstMethod::allocate(ClassLoaderData* loader_data, - int byte_code_size, - int compressed_line_number_size, - int localvariable_table_length, - int exception_table_length, - int checked_exceptions_length, - TRAPS) { + int byte_code_size, + int compressed_line_number_size, + int localvariable_table_length, + int exception_table_length, + int checked_exceptions_length, + MethodType method_type, + TRAPS) { int size = ConstMethod::size(byte_code_size, compressed_line_number_size, localvariable_table_length, exception_table_length, checked_exceptions_length); return new (loader_data, size, true, THREAD) ConstMethod( - byte_code_size, compressed_line_number_size, - localvariable_table_length, exception_table_length, - checked_exceptions_length, size); + byte_code_size, compressed_line_number_size, localvariable_table_length, + exception_table_length, checked_exceptions_length, method_type, size); } ConstMethod::ConstMethod(int byte_code_size, - int compressed_line_number_size, - int localvariable_table_length, - int exception_table_length, - int checked_exceptions_length, - int size) { + int compressed_line_number_size, + int localvariable_table_length, + int exception_table_length, + int checked_exceptions_length, + MethodType method_type, + int size) { No_Safepoint_Verifier no_safepoint; set_interpreter_kind(Interpreter::invalid); @@ -69,6 +70,7 @@ compressed_line_number_size, localvariable_table_length, exception_table_length); + set_method_type(method_type); assert(this->size() == size, "wrong size for object"); } @@ -111,8 +113,7 @@ } Method* ConstMethod::method() const { - return InstanceKlass::cast(_constants->pool_holder())->method_with_idnum( - _method_idnum); + return _constants->pool_holder()->method_with_idnum(_method_idnum); } // linenumber table - note that length is unknown until decompression, diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/constMethod.hpp --- a/hotspot/src/share/vm/oops/constMethod.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/constMethod.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -108,12 +108,17 @@ class ConstMethod : public MetaspaceObj { friend class VMStructs; + +public: + typedef enum { NORMAL, OVERPASS } MethodType; + private: enum { _has_linenumber_table = 1, _has_checked_exceptions = 2, _has_localvariable_table = 4, - _has_exception_table = 8 + _has_exception_table = 8, + _is_overpass = 16 }; // Bit vector of signature @@ -145,19 +150,22 @@ // Constructor ConstMethod(int byte_code_size, - int compressed_line_number_size, - int localvariable_table_length, - int exception_table_length, - int checked_exceptions_length, - int size); + int compressed_line_number_size, + int localvariable_table_length, + int exception_table_length, + int checked_exceptions_length, + MethodType is_overpass, + int size); public: + static ConstMethod* allocate(ClassLoaderData* loader_data, - int byte_code_size, - int compressed_line_number_size, - int localvariable_table_length, - int exception_table_length, - int checked_exceptions_length, - TRAPS); + int byte_code_size, + int compressed_line_number_size, + int localvariable_table_length, + int exception_table_length, + int checked_exceptions_length, + MethodType mt, + TRAPS); bool is_constMethod() const { return true; } @@ -179,6 +187,19 @@ bool has_exception_handler() const { return (_flags & _has_exception_table) != 0; } + MethodType method_type() const { + return ((_flags & _is_overpass) == 0) ? NORMAL : OVERPASS; + } + + void set_method_type(MethodType mt) { + if (mt == NORMAL) { + _flags &= ~(_is_overpass); + } else { + _flags |= _is_overpass; + } + } + + void set_interpreter_kind(int kind) { _interpreter_kind = kind; } int interpreter_kind(void) const { return _interpreter_kind; } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/constantPool.cpp --- a/hotspot/src/share/vm/oops/constantPool.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/constantPool.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -228,7 +228,7 @@ } else { do_resolve = true; name = this_oop->unresolved_klass_at(which); - loader = Handle(THREAD, InstanceKlass::cast(this_oop->pool_holder())->class_loader()); + loader = Handle(THREAD, this_oop->pool_holder()->class_loader()); } } } // unlocking constantPool @@ -247,7 +247,7 @@ if (do_resolve) { // this_oop must be unlocked during resolve_or_fail - oop protection_domain = Klass::cast(this_oop->pool_holder())->protection_domain(); + oop protection_domain = this_oop->pool_holder()->protection_domain(); Handle h_prot (THREAD, protection_domain); Klass* k_oop = SystemDictionary::resolve_or_fail(name, loader, h_prot, true, THREAD); KlassHandle k; @@ -315,7 +315,7 @@ vframeStream vfst(JavaThread::current()); if (!vfst.at_end()) { line_number = vfst.method()->line_number_from_bci(vfst.bci()); - Symbol* s = InstanceKlass::cast(vfst.method()->method_holder())->source_file_name(); + Symbol* s = vfst.method()->method_holder()->source_file_name(); if (s != NULL) { source_file = s->as_C_string(); } @@ -325,11 +325,11 @@ // only print something if the classes are different if (source_file != NULL) { tty->print("RESOLVE %s %s %s:%d\n", - InstanceKlass::cast(this_oop->pool_holder())->external_name(), + this_oop->pool_holder()->external_name(), InstanceKlass::cast(k())->external_name(), source_file, line_number); } else { tty->print("RESOLVE %s %s\n", - InstanceKlass::cast(this_oop->pool_holder())->external_name(), + this_oop->pool_holder()->external_name(), InstanceKlass::cast(k())->external_name()); } } @@ -339,7 +339,7 @@ // Only updated constant pool - if it is resolved. do_resolve = this_oop->tag_at(which).is_unresolved_klass(); if (do_resolve) { - ClassLoaderData* this_key = InstanceKlass::cast(this_oop->pool_holder())->class_loader_data(); + ClassLoaderData* this_key = this_oop->pool_holder()->class_loader_data(); if (!this_key->is_the_null_class_loader_data()) { this_key->record_dependency(k(), CHECK_NULL); // Can throw OOM } @@ -367,8 +367,8 @@ assert(entry.is_unresolved(), "must be either symbol or klass"); Thread *thread = Thread::current(); Symbol* name = entry.get_symbol(); - oop loader = InstanceKlass::cast(this_oop->pool_holder())->class_loader(); - oop protection_domain = Klass::cast(this_oop->pool_holder())->protection_domain(); + oop loader = this_oop->pool_holder()->class_loader(); + oop protection_domain = this_oop->pool_holder()->protection_domain(); Handle h_prot (thread, protection_domain); Handle h_loader (thread, loader); Klass* k = SystemDictionary::find(name, h_loader, h_prot, thread); @@ -409,8 +409,8 @@ } else { assert(entry.is_unresolved(), "must be either symbol or klass"); Symbol* name = entry.get_symbol(); - oop loader = InstanceKlass::cast(this_oop->pool_holder())->class_loader(); - oop protection_domain = Klass::cast(this_oop->pool_holder())->protection_domain(); + oop loader = this_oop->pool_holder()->class_loader(); + oop protection_domain = this_oop->pool_holder()->protection_domain(); Handle h_loader(THREAD, loader); Handle h_prot (THREAD, protection_domain); KlassHandle k(THREAD, SystemDictionary::find(name, h_loader, h_prot, THREAD)); @@ -1143,16 +1143,21 @@ int from_oplen = operand_array_length(from_cp->operands()); int old_oplen = operand_array_length(to_cp->operands()); if (from_oplen != 0) { + ClassLoaderData* loader_data = to_cp->pool_holder()->class_loader_data(); // append my operands to the target's operands array if (old_oplen == 0) { - to_cp->set_operands(from_cp->operands()); // reuse; do not merge + // Can't just reuse from_cp's operand list because of deallocation issues + int len = from_cp->operands()->length(); + Array* new_ops = MetadataFactory::new_array(loader_data, len, CHECK); + Copy::conjoint_memory_atomic( + from_cp->operands()->adr_at(0), new_ops->adr_at(0), len * sizeof(u2)); + to_cp->set_operands(new_ops); } else { int old_len = to_cp->operands()->length(); int from_len = from_cp->operands()->length(); int old_off = old_oplen * sizeof(u2); int from_off = from_oplen * sizeof(u2); // Use the metaspace for the destination constant pool - ClassLoaderData* loader_data = to_cp->pool_holder()->class_loader_data(); Array* new_operands = MetadataFactory::new_array(loader_data, old_len + from_len, CHECK); int fillp = 0, len = 0; // first part of dest @@ -1785,7 +1790,7 @@ assert(cp_patches->at(index).is_null(), err_msg("Unused constant pool patch at %d in class file %s", index, - InstanceKlass::cast(pool_holder())->external_name())); + pool_holder()->external_name())); } #endif // ASSERT } @@ -1943,7 +1948,7 @@ st->print(" for "); pool_holder()->print_value_on(st); if (pool_holder() != NULL) { - bool extra = (InstanceKlass::cast(pool_holder())->constants() != this); + bool extra = (pool_holder()->constants() != this); if (extra) st->print(" (extra)"); } if (cache() != NULL) { diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/constantPool.hpp --- a/hotspot/src/share/vm/oops/constantPool.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/constantPool.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -86,8 +86,8 @@ friend class Universe; // For null constructor private: Array* _tags; // the tag array describing the constant pool's contents - ConstantPoolCache* _cache; // the cache holding interpreter runtime information - Klass* _pool_holder; // the corresponding class + ConstantPoolCache* _cache; // the cache holding interpreter runtime information + InstanceKlass* _pool_holder; // the corresponding class Array* _operands; // for variable-sized (InvokeDynamic) nodes, usually empty // Array of resolved objects from the constant pool and map from resolved @@ -193,9 +193,9 @@ void set_on_stack(const bool value); // Klass holding pool - Klass* pool_holder() const { return _pool_holder; } - void set_pool_holder(Klass* k) { _pool_holder = k; } - Klass** pool_holder_addr() { return &_pool_holder; } + InstanceKlass* pool_holder() const { return _pool_holder; } + void set_pool_holder(InstanceKlass* k) { _pool_holder = k; } + InstanceKlass** pool_holder_addr() { return &_pool_holder; } // Interpreter runtime support ConstantPoolCache* cache() const { return _cache; } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/cpCache.cpp --- a/hotspot/src/share/vm/oops/cpCache.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/cpCache.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -231,8 +231,8 @@ void ConstantPoolCacheEntry::set_interface_call(methodHandle method, int index) { - Klass* interf = method->method_holder(); - assert(InstanceKlass::cast(interf)->is_interface(), "must be an interface"); + InstanceKlass* interf = method->method_holder(); + assert(interf->is_interface(), "must be an interface"); assert(!method->is_final_method(), "interfaces do not have final methods; cannot link to one here"); set_f1(interf); set_f2(index); @@ -243,25 +243,17 @@ } -void ConstantPoolCacheEntry::set_method_handle(constantPoolHandle cpool, - methodHandle adapter, - Handle appendix, Handle method_type, - objArrayHandle resolved_references) { - set_method_handle_common(cpool, Bytecodes::_invokehandle, adapter, appendix, method_type, resolved_references); +void ConstantPoolCacheEntry::set_method_handle(constantPoolHandle cpool, const CallInfo &call_info) { + set_method_handle_common(cpool, Bytecodes::_invokehandle, call_info); } -void ConstantPoolCacheEntry::set_dynamic_call(constantPoolHandle cpool, - methodHandle adapter, - Handle appendix, Handle method_type, - objArrayHandle resolved_references) { - set_method_handle_common(cpool, Bytecodes::_invokedynamic, adapter, appendix, method_type, resolved_references); +void ConstantPoolCacheEntry::set_dynamic_call(constantPoolHandle cpool, const CallInfo &call_info) { + set_method_handle_common(cpool, Bytecodes::_invokedynamic, call_info); } void ConstantPoolCacheEntry::set_method_handle_common(constantPoolHandle cpool, Bytecodes::Code invoke_code, - methodHandle adapter, - Handle appendix, Handle method_type, - objArrayHandle resolved_references) { + const CallInfo &call_info) { // NOTE: This CPCE can be the subject of data races. // There are three words to update: flags, refs[f2], f1 (in that order). // Writers must store all other values before f1. @@ -276,6 +268,9 @@ return; } + const methodHandle adapter = call_info.resolved_method(); + const Handle appendix = call_info.resolved_appendix(); + const Handle method_type = call_info.resolved_method_type(); const bool has_appendix = appendix.not_null(); const bool has_method_type = method_type.not_null(); @@ -315,6 +310,7 @@ // This allows us to create fewer method oops, while keeping type safety. // + objArrayHandle resolved_references = cpool->resolved_references(); // Store appendix, if any. if (has_appendix) { const int appendix_index = f2_as_index() + _indy_resolved_references_appendix_offset; @@ -421,7 +417,7 @@ if (!(*trace_name_printed)) { // RC_TRACE_MESG macro has an embedded ResourceMark RC_TRACE_MESG(("adjust: name=%s", - Klass::cast(old_method->method_holder())->external_name())); + old_method->method_holder()->external_name())); *trace_name_printed = true; } // RC_TRACE macro has an embedded ResourceMark @@ -449,7 +445,7 @@ if (!(*trace_name_printed)) { // RC_TRACE_MESG macro has an embedded ResourceMark RC_TRACE_MESG(("adjust: name=%s", - Klass::cast(old_method->method_holder())->external_name())); + old_method->method_holder()->external_name())); *trace_name_printed = true; } // RC_TRACE macro has an embedded ResourceMark diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/cpCache.hpp --- a/hotspot/src/share/vm/oops/cpCache.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/cpCache.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -117,6 +117,8 @@ // The fields are volatile so that they are stored in the order written in the // source code. The _indices field with the bytecode must be written last. +class CallInfo; + class ConstantPoolCacheEntry VALUE_OBJ_CLASS_SPEC { friend class VMStructs; friend class constantPoolCacheKlass; @@ -223,18 +225,12 @@ void set_method_handle( constantPoolHandle cpool, // holding constant pool (required for locking) - methodHandle method, // adapter for invokeExact, etc. - Handle appendix, // stored in refs[f2+0]; could be a java.lang.invoke.MethodType - Handle method_type, // stored in refs[f2+1]; is a java.lang.invoke.MethodType - objArrayHandle resolved_references + const CallInfo &call_info // Call link information ); void set_dynamic_call( constantPoolHandle cpool, // holding constant pool (required for locking) - methodHandle method, // adapter for this call site - Handle appendix, // stored in refs[f2+0]; could be a java.lang.invoke.CallSite - Handle method_type, // stored in refs[f2+1]; is a java.lang.invoke.MethodType - objArrayHandle resolved_references + const CallInfo &call_info // Call link information ); // Common code for invokedynamic and MH invocations. @@ -255,10 +251,7 @@ void set_method_handle_common( constantPoolHandle cpool, // holding constant pool (required for locking) Bytecodes::Code invoke_code, // _invokehandle or _invokedynamic - methodHandle adapter, // invoker method (f1) - Handle appendix, // appendix such as CallSite, MethodType, etc. (refs[f2+0]) - Handle method_type, // MethodType (refs[f2+1]) - objArrayHandle resolved_references + const CallInfo &call_info // Call link information ); // invokedynamic and invokehandle call sites have two entries in the diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/instanceKlass.cpp --- a/hotspot/src/share/vm/oops/instanceKlass.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/instanceKlass.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -743,6 +743,35 @@ } } + if (this_oop->has_default_methods()) { + // Step 7.5: initialize any interfaces which have default methods + for (int i = 0; i < this_oop->local_interfaces()->length(); ++i) { + Klass* iface = this_oop->local_interfaces()->at(i); + InstanceKlass* ik = InstanceKlass::cast(iface); + if (ik->has_default_methods() && ik->should_be_initialized()) { + ik->initialize(THREAD); + + if (HAS_PENDING_EXCEPTION) { + Handle e(THREAD, PENDING_EXCEPTION); + CLEAR_PENDING_EXCEPTION; + { + EXCEPTION_MARK; + // Locks object, set state, and notify all waiting threads + this_oop->set_initialization_state_and_notify( + initialization_error, THREAD); + + // ignore any exception thrown, superclass initialization error is + // thrown below + CLEAR_PENDING_EXCEPTION; + } + DTRACE_CLASSINIT_PROBE_WAIT( + super__failed, InstanceKlass::cast(this_oop()), -1, wait); + THROW_OOP(e()); + } + } + } + } + // Step 8 { assert(THREAD->is_Java_thread(), "non-JavaThread in initialize_impl"); @@ -1252,11 +1281,7 @@ } #endif -Method* InstanceKlass::find_method(Symbol* name, Symbol* signature) const { - return InstanceKlass::find_method(methods(), name, signature); -} - -Method* InstanceKlass::find_method(Array* methods, Symbol* name, Symbol* signature) { +static int binary_search(Array* methods, Symbol* name) { int len = methods->length(); // methods are sorted, so do binary search int l = 0; @@ -1267,43 +1292,70 @@ assert(m->is_method(), "must be method"); int res = m->name()->fast_compare(name); if (res == 0) { - // found matching name; do linear search to find matching signature - // first, quick check for common case - if (m->signature() == signature) return m; - // search downwards through overloaded methods - int i; - for (i = mid - 1; i >= l; i--) { - Method* m = methods->at(i); - assert(m->is_method(), "must be method"); - if (m->name() != name) break; - if (m->signature() == signature) return m; - } - // search upwards - for (i = mid + 1; i <= h; i++) { - Method* m = methods->at(i); - assert(m->is_method(), "must be method"); - if (m->name() != name) break; - if (m->signature() == signature) return m; - } - // not found -#ifdef ASSERT - int index = linear_search(methods, name, signature); - assert(index == -1, err_msg("binary search should have found entry %d", index)); -#endif - return NULL; + return mid; } else if (res < 0) { l = mid + 1; } else { h = mid - 1; } } + return -1; +} + +Method* InstanceKlass::find_method(Symbol* name, Symbol* signature) const { + return InstanceKlass::find_method(methods(), name, signature); +} + +Method* InstanceKlass::find_method( + Array* methods, Symbol* name, Symbol* signature) { + int hit = binary_search(methods, name); + if (hit != -1) { + Method* m = methods->at(hit); + // Do linear search to find matching signature. First, quick check + // for common case + if (m->signature() == signature) return m; + // search downwards through overloaded methods + int i; + for (i = hit - 1; i >= 0; --i) { + Method* m = methods->at(i); + assert(m->is_method(), "must be method"); + if (m->name() != name) break; + if (m->signature() == signature) return m; + } + // search upwards + for (i = hit + 1; i < methods->length(); ++i) { + Method* m = methods->at(i); + assert(m->is_method(), "must be method"); + if (m->name() != name) break; + if (m->signature() == signature) return m; + } + // not found #ifdef ASSERT - int index = linear_search(methods, name, signature); - assert(index == -1, err_msg("binary search should have found entry %d", index)); + int index = linear_search(methods, name, signature); + assert(index == -1, err_msg("binary search should have found entry %d", index)); #endif + } return NULL; } +int InstanceKlass::find_method_by_name(Symbol* name, int* end) { + return find_method_by_name(methods(), name, end); +} + +int InstanceKlass::find_method_by_name( + Array* methods, Symbol* name, int* end_ptr) { + assert(end_ptr != NULL, "just checking"); + int start = binary_search(methods, name); + int end = start + 1; + if (start != -1) { + while (start - 1 >= 0 && (methods->at(start - 1))->name() == name) --start; + while (end < methods->length() && (methods->at(end))->name() == name) ++end; + *end_ptr = end; + return start; + } + return -1; +} + Method* InstanceKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const { Klass* klass = const_cast(this); while (klass != NULL) { diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/instanceKlass.hpp --- a/hotspot/src/share/vm/oops/instanceKlass.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/instanceKlass.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -245,6 +245,10 @@ unsigned char * _cached_class_file_bytes; // JVMTI: cached class file, before retransformable agent modified it in CFLH jint _cached_class_file_len; // JVMTI: length of above JvmtiCachedClassFieldMap* _jvmti_cached_class_field_map; // JVMTI: used during heap iteration + + // true if class, superclass, or implemented interfaces have default methods + bool _has_default_methods; + volatile u2 _idnum_allocated_count; // JNI/JVMTI: increments with the addition of methods, old ids don't change // Method array. Array* _methods; @@ -492,6 +496,13 @@ // (returns NULL if not found) Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature) const; + // Find method indices by name. If a method with the specified name is + // found the index to the first method is returned, and 'end' is filled in + // with the index of first non-name-matching method. If no method is found + // -1 is returned. + int find_method_by_name(Symbol* name, int* end); + static int find_method_by_name(Array* methods, Symbol* name, int* end); + // constant pool ConstantPool* constants() const { return _constants; } void set_constants(ConstantPool* c) { _constants = c; } @@ -592,6 +603,9 @@ return _jvmti_cached_class_field_map; } + bool has_default_methods() const { return _has_default_methods; } + void set_has_default_methods(bool b) { _has_default_methods = b; } + // for adding methods, ConstMethod::UNSET_IDNUM means no more ids available inline u2 next_method_idnum(); void set_initial_method_idnum(u2 value) { _idnum_allocated_count = value; } @@ -728,7 +742,6 @@ GrowableArray* compute_secondary_supers(int num_extra_slots); bool compute_is_subtype_of(Klass* k); bool can_be_primary_super_slow() const; - Klass* java_super() const { return super(); } int oop_size(oop obj) const { return size_helper(); } bool oop_is_instance_slow() const { return true; } @@ -750,6 +763,10 @@ return (InstanceKlass*) k; } + InstanceKlass* java_super() const { + return (super() == NULL) ? NULL : cast(super()); + } + // Sizing (in words) static int header_size() { return align_object_offset(sizeof(InstanceKlass)/HeapWordSize); } static int size(int vtable_length, int itable_length, diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/klassVtable.cpp --- a/hotspot/src/share/vm/oops/klassVtable.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/klassVtable.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -54,22 +54,16 @@ // the same name and signature as m), then m is a Miranda method which is // entered as a public abstract method in C's vtable. From then on it should // treated as any other public method in C for method over-ride purposes. -void klassVtable::compute_vtable_size_and_num_mirandas(int &vtable_length, - int &num_miranda_methods, - Klass* super, - Array* methods, - AccessFlags class_flags, - Handle classloader, - Symbol* classname, - Array* local_interfaces, - TRAPS - ) { - +void klassVtable::compute_vtable_size_and_num_mirandas( + int* vtable_length_ret, int* num_new_mirandas, + GrowableArray* all_mirandas, Klass* super, + Array* methods, AccessFlags class_flags, + Handle classloader, Symbol* classname, Array* local_interfaces, + TRAPS) { No_Safepoint_Verifier nsv; // set up default result values - vtable_length = 0; - num_miranda_methods = 0; + int vtable_length = 0; // start off with super's vtable length InstanceKlass* sk = (InstanceKlass*)super; @@ -86,9 +80,12 @@ } } + GrowableArray new_mirandas(20); // compute the number of mirandas methods that must be added to the end - num_miranda_methods = get_num_mirandas(super, methods, local_interfaces); - vtable_length += (num_miranda_methods * vtableEntry::size()); + get_mirandas(&new_mirandas, all_mirandas, super, methods, local_interfaces); + *num_new_mirandas = new_mirandas.length(); + + vtable_length += *num_new_mirandas * vtableEntry::size(); if (Universe::is_bootstrapping() && vtable_length == 0) { // array classes don't have their superclass set correctly during @@ -109,6 +106,8 @@ "bad vtable size for class Object"); assert(vtable_length % vtableEntry::size() == 0, "bad vtable length"); assert(vtable_length >= Universe::base_vtable_size(), "vtable too small"); + + *vtable_length_ret = vtable_length; } int klassVtable::index_of(Method* m, int len) const { @@ -191,7 +190,7 @@ } // add miranda methods; it will also update the value of initialized - fill_in_mirandas(initialized); + fill_in_mirandas(&initialized); // In class hierarchies where the accessibility is not increasing (i.e., going from private -> // package_private -> publicprotected), the vtable might actually be smaller than our initial @@ -249,6 +248,11 @@ return superk; } +// Methods that are "effectively" final don't need vtable entries. +bool method_is_effectively_final( + AccessFlags klass_flags, methodHandle target) { + return target->is_final() || klass_flags.is_final() && !target->is_overpass(); +} // Update child's copy of super vtable for overrides // OR return true if a new vtable entry is required @@ -269,7 +273,7 @@ return false; } - if (klass->is_final() || target_method()->is_final()) { + if (method_is_effectively_final(klass->access_flags(), target_method)) { // a final method never needs a new entry; final methods can be statically // resolved and they have to be present in the vtable only if they override // a super's method, in which case they re-use its entry @@ -303,7 +307,7 @@ if (super_method->name() == name && super_method->signature() == signature) { // get super_klass for method_holder for the found method - InstanceKlass* super_klass = InstanceKlass::cast(super_method->method_holder()); + InstanceKlass* super_klass = super_method->method_holder(); if ((super_klass->is_override(super_method, target_loader, target_classname, THREAD)) || ((klass->major_version() >= VTABLE_TRANSITIVE_OVERRIDE_VERSION) @@ -406,7 +410,8 @@ Symbol* classname, AccessFlags class_flags, TRAPS) { - if ((class_flags.is_final() || target_method()->is_final()) || + + if (method_is_effectively_final(class_flags, target_method) || // a final method never needs a new entry; final methods can be statically // resolved and they have to be present in the vtable only if they override // a super's method, in which case they re-use its entry @@ -447,7 +452,7 @@ } // get the class holding the matching method // make sure you use that class for is_override - InstanceKlass* superk = InstanceKlass::cast(super_method->method_holder()); + InstanceKlass* superk = super_method->method_holder(); // we want only instance method matches // pretend private methods are not in the super vtable // since we do override around them: e.g. a.m pub/b.m private/c.m pub, @@ -502,7 +507,7 @@ // miranda methods are interface methods in a class's vtable if (mhk->is_interface()) { - assert(m->is_public() && m->is_abstract(), "should be public and abstract"); + assert(m->is_public(), "should be public"); assert(ik()->implements_interface(method_holder) , "this class should implement the interface"); assert(is_miranda(m, ik()->methods(), ik()->super()), "should be a miranda_method"); return true; @@ -532,19 +537,19 @@ return false; } -void klassVtable::add_new_mirandas_to_list(GrowableArray* list_of_current_mirandas, - Array* current_interface_methods, - Array* class_methods, - Klass* super) { +void klassVtable::add_new_mirandas_to_lists( + GrowableArray* new_mirandas, GrowableArray* all_mirandas, + Array* current_interface_methods, Array* class_methods, + Klass* super) { // iterate thru the current interface's method to see if it a miranda int num_methods = current_interface_methods->length(); for (int i = 0; i < num_methods; i++) { Method* im = current_interface_methods->at(i); bool is_duplicate = false; - int num_of_current_mirandas = list_of_current_mirandas->length(); + int num_of_current_mirandas = new_mirandas->length(); // check for duplicate mirandas in different interfaces we implement for (int j = 0; j < num_of_current_mirandas; j++) { - Method* miranda = list_of_current_mirandas->at(j); + Method* miranda = new_mirandas->at(j); if ((im->name() == miranda->name()) && (im->signature() == miranda->signature())) { is_duplicate = true; @@ -557,51 +562,47 @@ InstanceKlass *sk = InstanceKlass::cast(super); // check if it is a duplicate of a super's miranda if (sk->lookup_method_in_all_interfaces(im->name(), im->signature()) == NULL) { - list_of_current_mirandas->append(im); + new_mirandas->append(im); + } + if (all_mirandas != NULL) { + all_mirandas->append(im); } } } } } -void klassVtable::get_mirandas(GrowableArray* mirandas, +void klassVtable::get_mirandas(GrowableArray* new_mirandas, + GrowableArray* all_mirandas, Klass* super, Array* class_methods, Array* local_interfaces) { - assert((mirandas->length() == 0) , "current mirandas must be 0"); + assert((new_mirandas->length() == 0) , "current mirandas must be 0"); // iterate thru the local interfaces looking for a miranda int num_local_ifs = local_interfaces->length(); for (int i = 0; i < num_local_ifs; i++) { InstanceKlass *ik = InstanceKlass::cast(local_interfaces->at(i)); - add_new_mirandas_to_list(mirandas, ik->methods(), class_methods, super); + add_new_mirandas_to_lists(new_mirandas, all_mirandas, + ik->methods(), class_methods, super); // iterate thru each local's super interfaces Array* super_ifs = ik->transitive_interfaces(); int num_super_ifs = super_ifs->length(); for (int j = 0; j < num_super_ifs; j++) { InstanceKlass *sik = InstanceKlass::cast(super_ifs->at(j)); - add_new_mirandas_to_list(mirandas, sik->methods(), class_methods, super); + add_new_mirandas_to_lists(new_mirandas, all_mirandas, + sik->methods(), class_methods, super); } } } -// get number of mirandas -int klassVtable::get_num_mirandas(Klass* super, Array* class_methods, Array* local_interfaces) { - ResourceMark rm; - GrowableArray* mirandas = new GrowableArray(20); - get_mirandas(mirandas, super, class_methods, local_interfaces); - return mirandas->length(); -} - // fill in mirandas -void klassVtable::fill_in_mirandas(int& initialized) { - ResourceMark rm; - GrowableArray* mirandas = new GrowableArray(20); - InstanceKlass *this_ik = ik(); - get_mirandas(mirandas, this_ik->super(), this_ik->methods(), this_ik->local_interfaces()); - int num_mirandas = mirandas->length(); - for (int i = 0; i < num_mirandas; i++) { - put_method_at(mirandas->at(i), initialized); - initialized++; +void klassVtable::fill_in_mirandas(int* initialized) { + GrowableArray mirandas(20); + get_mirandas(&mirandas, NULL, ik()->super(), ik()->methods(), + ik()->local_interfaces()); + for (int i = 0; i < mirandas.length(); i++) { + put_method_at(mirandas.at(i), *initialized); + ++(*initialized); } } @@ -629,7 +630,7 @@ if (!(*trace_name_printed)) { // RC_TRACE_MESG macro has an embedded ResourceMark RC_TRACE_MESG(("adjust: name=%s", - Klass::cast(old_method->method_holder())->external_name())); + old_method->method_holder()->external_name())); *trace_name_printed = true; } // RC_TRACE macro has an embedded ResourceMark @@ -744,7 +745,7 @@ Method* target = klass->uncached_lookup_method(method_name, method_signature); while (target != NULL && target->is_static()) { // continue with recursive lookup through the superclass - Klass* super = Klass::cast(target->method_holder())->super(); + Klass* super = target->method_holder()->super(); target = (super == NULL) ? (Method*)NULL : Klass::cast(super)->uncached_lookup_method(method_name, method_signature); } if (target == NULL || !target->is_public() || target->is_abstract()) { @@ -754,7 +755,7 @@ // if checkconstraints requested methodHandle target_h (THREAD, target); // preserve across gc if (checkconstraints) { - Handle method_holder_loader (THREAD, InstanceKlass::cast(target->method_holder())->class_loader()); + Handle method_holder_loader (THREAD, target->method_holder()->class_loader()); if (method_holder_loader() != interface_loader()) { ResourceMark rm(THREAD); char* failed_type_name = @@ -824,7 +825,7 @@ if (!(*trace_name_printed)) { // RC_TRACE_MESG macro has an embedded ResourceMark RC_TRACE_MESG(("adjust: name=%s", - Klass::cast(old_method->method_holder())->external_name())); + old_method->method_holder()->external_name())); *trace_name_printed = true; } // RC_TRACE macro has an embedded ResourceMark @@ -959,9 +960,9 @@ // m must be a method in an interface int klassItable::compute_itable_index(Method* m) { - Klass* intf = m->method_holder(); - assert(InstanceKlass::cast(intf)->is_interface(), "sanity check"); - Array* methods = InstanceKlass::cast(intf)->methods(); + InstanceKlass* intf = m->method_holder(); + assert(intf->is_interface(), "sanity check"); + Array* methods = intf->methods(); int index = 0; while(methods->at(index) != m) { index++; diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/klassVtable.hpp --- a/hotspot/src/share/vm/oops/klassVtable.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/klassVtable.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -84,11 +84,11 @@ bool is_initialized(); // computes vtable length (in words) and the number of miranda methods - static void compute_vtable_size_and_num_mirandas(int &vtable_length, int &num_miranda_methods, - Klass* super, Array* methods, - AccessFlags class_flags, Handle classloader, - Symbol* classname, Array* local_interfaces, - TRAPS); + static void compute_vtable_size_and_num_mirandas( + int* vtable_length, int* num_new_mirandas, + GrowableArray* all_mirandas, Klass* super, + Array* methods, AccessFlags class_flags, Handle classloader, + Symbol* classname, Array* local_interfaces, TRAPS); // RedefineClasses() API support: // If any entry of this vtable points to any of old_methods, @@ -125,12 +125,17 @@ // support for miranda methods bool is_miranda_entry_at(int i); - void fill_in_mirandas(int& initialized); + void fill_in_mirandas(int* initialized); static bool is_miranda(Method* m, Array* class_methods, Klass* super); - static void add_new_mirandas_to_list(GrowableArray* list_of_current_mirandas, Array* current_interface_methods, Array* class_methods, Klass* super); - static void get_mirandas(GrowableArray* mirandas, Klass* super, Array* class_methods, Array* local_interfaces); - static int get_num_mirandas(Klass* super, Array* class_methods, Array* local_interfaces); - + static void add_new_mirandas_to_lists( + GrowableArray* new_mirandas, + GrowableArray* all_mirandas, + Array* current_interface_methods, Array* class_methods, + Klass* super); + static void get_mirandas( + GrowableArray* new_mirandas, + GrowableArray* all_mirandas, Klass* super, + Array* class_methods, Array* local_interfaces); void verify_against(outputStream* st, klassVtable* vt, int index); inline InstanceKlass* ik() const; diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/method.cpp --- a/hotspot/src/share/vm/oops/method.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/method.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -35,6 +35,7 @@ #include "memory/generation.hpp" #include "memory/metadataFactory.hpp" #include "memory/oopFactory.hpp" +#include "oops/constMethod.hpp" #include "oops/methodData.hpp" #include "oops/method.hpp" #include "oops/oop.inline.hpp" @@ -57,22 +58,24 @@ // Implementation of Method Method* Method::allocate(ClassLoaderData* loader_data, - int byte_code_size, - AccessFlags access_flags, - int compressed_line_number_size, - int localvariable_table_length, - int exception_table_length, - int checked_exceptions_length, - TRAPS) { + int byte_code_size, + AccessFlags access_flags, + int compressed_line_number_size, + int localvariable_table_length, + int exception_table_length, + int checked_exceptions_length, + ConstMethod::MethodType method_type, + TRAPS) { assert(!access_flags.is_native() || byte_code_size == 0, "native methods should not contain byte codes"); ConstMethod* cm = ConstMethod::allocate(loader_data, - byte_code_size, - compressed_line_number_size, - localvariable_table_length, - exception_table_length, - checked_exceptions_length, - CHECK_NULL); + byte_code_size, + compressed_line_number_size, + localvariable_table_length, + exception_table_length, + checked_exceptions_length, + method_type, + CHECK_NULL); int size = Method::size(access_flags.is_native()); @@ -240,12 +243,12 @@ warning("oopmap should only be accessed by the " "VM, GC task or CMS threads (or during debugging)"); InterpreterOopMap local_mask; - InstanceKlass::cast(method_holder())->mask_for(h_this, bci, &local_mask); + method_holder()->mask_for(h_this, bci, &local_mask); local_mask.print(); } } #endif - InstanceKlass::cast(method_holder())->mask_for(h_this, bci, mask); + method_holder()->mask_for(h_this, bci, mask); return; } @@ -520,7 +523,7 @@ bool Method::is_final_method() const { // %%% Should return true for private methods also, // since there is no way to override them. - return is_final() || Klass::cast(method_holder())->is_final(); + return is_final() || method_holder()->is_final(); } @@ -552,7 +555,7 @@ bool Method::has_valid_initializer_flags() const { return (is_static() || - InstanceKlass::cast(method_holder())->major_version() < 51); + method_holder()->major_version() < 51); } bool Method::is_static_initializer() const { @@ -614,7 +617,7 @@ if( constants()->tag_at(klass_index).is_unresolved_klass() ) { Thread *thread = Thread::current(); Symbol* klass_name = constants()->klass_name_at(klass_index); - Handle loader(thread, InstanceKlass::cast(method_holder())->class_loader()); + Handle loader(thread, method_holder()->class_loader()); Handle prot (thread, Klass::cast(method_holder())->protection_domain()); return SystemDictionary::find(klass_name, loader, prot, thread) != NULL; } else { @@ -932,7 +935,7 @@ // If method is an interface, we skip it - except if it // is a miranda method - if (InstanceKlass::cast(method_holder())->is_interface()) { + if (method_holder()->is_interface()) { // Check that method is not a miranda method if (ik->lookup_method(name(), signature()) == NULL) { // No implementation exist - so miranda method @@ -1017,7 +1020,7 @@ ConstantPool* cp_oop = ConstantPool::allocate(loader_data, cp_length, CHECK_(empty)); cp = constantPoolHandle(THREAD, cp_oop); } - cp->set_pool_holder(holder()); + cp->set_pool_holder(InstanceKlass::cast(holder())); cp->symbol_at_put(_imcp_invoke_name, name); cp->symbol_at_put(_imcp_invoke_signature, signature); cp->set_preresolution(); @@ -1031,7 +1034,7 @@ methodHandle m; { Method* m_oop = Method::allocate(loader_data, 0, accessFlags_from(flags_bits), - 0, 0, 0, 0, CHECK_(empty)); + 0, 0, 0, 0, ConstMethod::NORMAL, CHECK_(empty)); m = methodHandle(THREAD, m_oop); } m->set_constants(cp()); @@ -1083,15 +1086,16 @@ int localvariable_len = m->localvariable_table_length(); int exception_table_len = m->exception_table_length(); - ClassLoaderData* loader_data = m()->method_holder()->class_loader_data(); + ClassLoaderData* loader_data = m->method_holder()->class_loader_data(); Method* newm_oop = Method::allocate(loader_data, - new_code_length, - flags, - new_compressed_linenumber_size, - localvariable_len, - exception_table_len, - checked_exceptions_len, - CHECK_(methodHandle())); + new_code_length, + flags, + new_compressed_linenumber_size, + localvariable_len, + exception_table_len, + checked_exceptions_len, + m->method_type(), + CHECK_(methodHandle())); methodHandle newm (THREAD, newm_oop); int new_method_size = newm->method_size(); @@ -1233,8 +1237,8 @@ return false; } bool sig_is_loaded = true; - Handle class_loader(THREAD, InstanceKlass::cast(m->method_holder())->class_loader()); - Handle protection_domain(THREAD, Klass::cast(m->method_holder())->protection_domain()); + Handle class_loader(THREAD, m->method_holder()->class_loader()); + Handle protection_domain(THREAD, m->method_holder()->protection_domain()); ResourceMark rm(THREAD); Symbol* signature = m->signature(); for(SignatureStream ss(signature); !ss.is_done(); ss.next()) { @@ -1260,8 +1264,8 @@ } bool Method::has_unloaded_classes_in_signature(methodHandle m, TRAPS) { - Handle class_loader(THREAD, InstanceKlass::cast(m->method_holder())->class_loader()); - Handle protection_domain(THREAD, Klass::cast(m->method_holder())->protection_domain()); + Handle class_loader(THREAD, m->method_holder()->class_loader()); + Handle protection_domain(THREAD, m->method_holder()->protection_domain()); ResourceMark rm(THREAD); Symbol* signature = m->signature(); for(SignatureStream ss(signature); !ss.is_done(); ss.next()) { @@ -1468,7 +1472,7 @@ Bytecodes::Code Method::orig_bytecode_at(int bci) const { - BreakpointInfo* bp = InstanceKlass::cast(method_holder())->breakpoints(); + BreakpointInfo* bp = method_holder()->breakpoints(); for (; bp != NULL; bp = bp->next()) { if (bp->match(this, bci)) { return bp->orig_bytecode(); @@ -1480,7 +1484,7 @@ void Method::set_orig_bytecode_at(int bci, Bytecodes::Code code) { assert(code != Bytecodes::_breakpoint, "cannot patch breakpoints this way"); - BreakpointInfo* bp = InstanceKlass::cast(method_holder())->breakpoints(); + BreakpointInfo* bp = method_holder()->breakpoints(); for (; bp != NULL; bp = bp->next()) { if (bp->match(this, bci)) { bp->set_orig_bytecode(code); @@ -1490,7 +1494,7 @@ } void Method::set_breakpoint(int bci) { - InstanceKlass* ik = InstanceKlass::cast(method_holder()); + InstanceKlass* ik = method_holder(); BreakpointInfo *bp = new BreakpointInfo(this, bci); bp->set_next(ik->breakpoints()); ik->set_breakpoints(bp); @@ -1499,7 +1503,7 @@ } static void clear_matches(Method* m, int bci) { - InstanceKlass* ik = InstanceKlass::cast(m->method_holder()); + InstanceKlass* ik = m->method_holder(); BreakpointInfo* prev_bp = NULL; BreakpointInfo* next_bp; for (BreakpointInfo* bp = ik->breakpoints(); bp != NULL; bp = next_bp) { @@ -1782,7 +1786,7 @@ bool Method::is_method_id(jmethodID mid) { Method* m = resolve_jmethod_id(mid); assert(m != NULL, "should be called with non-null method"); - InstanceKlass* ik = InstanceKlass::cast(m->method_holder()); + InstanceKlass* ik = m->method_holder(); ClassLoaderData* cld = ik->class_loader_data(); if (cld->jmethod_ids() == NULL) return false; return (cld->jmethod_ids()->contains((Method**)mid)); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/oops/method.hpp --- a/hotspot/src/share/vm/oops/method.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/oops/method.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -30,7 +30,6 @@ #include "compiler/oopMap.hpp" #include "interpreter/invocationCounter.hpp" #include "oops/annotations.hpp" -#include "oops/constMethod.hpp" #include "oops/constantPool.hpp" #include "oops/instanceKlass.hpp" #include "oops/oop.hpp" @@ -104,6 +103,7 @@ class LocalVariableTableElement; class AdapterHandlerEntry; class MethodData; +class ConstMethod; class Method : public Metadata { friend class VMStructs; @@ -158,14 +158,16 @@ // Constructor Method(ConstMethod* xconst, AccessFlags access_flags, int size); public: + static Method* allocate(ClassLoaderData* loader_data, - int byte_code_size, - AccessFlags access_flags, - int compressed_line_number_size, - int localvariable_table_length, - int exception_table_length, - int checked_exceptions_length, - TRAPS); + int byte_code_size, + AccessFlags access_flags, + int compressed_line_number_size, + int localvariable_table_length, + int exception_table_length, + int checked_exceptions_length, + ConstMethod::MethodType method_type, + TRAPS); Method() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } @@ -207,21 +209,21 @@ // annotations support AnnotationArray* annotations() const { - InstanceKlass* ik = InstanceKlass::cast(method_holder()); + InstanceKlass* ik = method_holder(); if (ik->annotations() == NULL) { return NULL; } return ik->annotations()->get_method_annotations_of(method_idnum()); } AnnotationArray* parameter_annotations() const { - InstanceKlass* ik = InstanceKlass::cast(method_holder()); + InstanceKlass* ik = method_holder(); if (ik->annotations() == NULL) { return NULL; } return ik->annotations()->get_method_parameter_annotations_of(method_idnum()); } AnnotationArray* annotation_default() const { - InstanceKlass* ik = InstanceKlass::cast(method_holder()); + InstanceKlass* ik = method_holder(); if (ik->annotations() == NULL) { return NULL; } @@ -494,7 +496,7 @@ { return constMethod()->compressed_linenumber_table(); } // method holder (the Klass* holding this method) - Klass* method_holder() const { return constants()->pool_holder(); } + InstanceKlass* method_holder() const { return constants()->pool_holder(); } void compute_size_of_parameters(Thread *thread); // word size of parameters (receiver if any + arguments) Symbol* klass_name() const; // returns the name of the method holder @@ -695,18 +697,18 @@ // Get this method's jmethodID -- allocate if it doesn't exist jmethodID jmethod_id() { methodHandle this_h(this); - return InstanceKlass::get_jmethod_id(InstanceKlass::cast(method_holder()), this_h); } + return InstanceKlass::get_jmethod_id(method_holder(), this_h); } // Lookup the jmethodID for this method. Return NULL if not found. // NOTE that this function can be called from a signal handler // (see AsyncGetCallTrace support for Forte Analyzer) and this // needs to be async-safe. No allocation should be done and // so handles are not used to avoid deadlock. - jmethodID find_jmethod_id_or_null() { return InstanceKlass::cast(method_holder())->jmethod_id_or_null(this); } + jmethodID find_jmethod_id_or_null() { return method_holder()->jmethod_id_or_null(this); } // JNI static invoke cached itable index accessors - int cached_itable_index() { return InstanceKlass::cast(method_holder())->cached_itable_index(method_idnum()); } - void set_cached_itable_index(int index) { InstanceKlass::cast(method_holder())->set_cached_itable_index(method_idnum(), index); } + int cached_itable_index() { return method_holder()->cached_itable_index(method_idnum()); } + void set_cached_itable_index(int index) { method_holder()->set_cached_itable_index(method_idnum(), index); } // Support for inlining of intrinsic methods vmIntrinsics::ID intrinsic_id() const { return (vmIntrinsics::ID) _intrinsic_id; } @@ -725,14 +727,18 @@ void set_dont_inline(bool x) { _dont_inline = x; } bool is_hidden() { return _hidden; } void set_hidden(bool x) { _hidden = x; } + ConstMethod::MethodType method_type() const { + return _constMethod->method_type(); + } + bool is_overpass() const { return method_type() == ConstMethod::OVERPASS; } // On-stack replacement support bool has_osr_nmethod(int level, bool match_level) { - return InstanceKlass::cast(method_holder())->lookup_osr_nmethod(this, InvocationEntryBci, level, match_level) != NULL; + return method_holder()->lookup_osr_nmethod(this, InvocationEntryBci, level, match_level) != NULL; } nmethod* lookup_osr_nmethod_for(int bci, int level, bool match_level) { - return InstanceKlass::cast(method_holder())->lookup_osr_nmethod(this, bci, level, match_level); + return method_holder()->lookup_osr_nmethod(this, bci, level, match_level); } // Inline cache support diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/opto/escape.cpp --- a/hotspot/src/share/vm/opto/escape.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/opto/escape.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1386,12 +1386,12 @@ // Non-escaped allocation returned from Java or runtime call have // unknown values in fields. for (EdgeIterator i(pta); i.has_next(); i.next()) { - PointsToNode* ptn = i.get(); - if (ptn->is_Field() && ptn->as_Field()->is_oop()) { - if (add_edge(ptn, phantom_obj)) { + PointsToNode* field = i.get(); + if (field->is_Field() && field->as_Field()->is_oop()) { + if (add_edge(field, phantom_obj)) { // New edge was added new_edges++; - add_field_uses_to_worklist(ptn->as_Field()); + add_field_uses_to_worklist(field->as_Field()); } } } @@ -1413,30 +1413,30 @@ // captured by Initialize node. // for (EdgeIterator i(pta); i.has_next(); i.next()) { - PointsToNode* ptn = i.get(); // Field (AddP) - if (!ptn->is_Field() || !ptn->as_Field()->is_oop()) + PointsToNode* field = i.get(); // Field (AddP) + if (!field->is_Field() || !field->as_Field()->is_oop()) continue; // Not oop field - int offset = ptn->as_Field()->offset(); + int offset = field->as_Field()->offset(); if (offset == Type::OffsetBot) { if (!visited_bottom_offset) { // OffsetBot is used to reference array's element, // always add reference to NULL to all Field nodes since we don't // known which element is referenced. - if (add_edge(ptn, null_obj)) { + if (add_edge(field, null_obj)) { // New edge was added new_edges++; - add_field_uses_to_worklist(ptn->as_Field()); + add_field_uses_to_worklist(field->as_Field()); visited_bottom_offset = true; } } } else { // Check only oop fields. - const Type* adr_type = ptn->ideal_node()->as_AddP()->bottom_type(); + const Type* adr_type = field->ideal_node()->as_AddP()->bottom_type(); if (adr_type->isa_rawptr()) { #ifdef ASSERT // Raw pointers are used for initializing stores so skip it // since it should be recorded already - Node* base = get_addp_base(ptn->ideal_node()); + Node* base = get_addp_base(field->ideal_node()); assert(adr_type->isa_rawptr() && base->is_Proj() && (base->in(0) == alloc),"unexpected pointer type"); #endif @@ -1446,10 +1446,54 @@ offsets_worklist.append(offset); Node* value = NULL; if (ini != NULL) { - BasicType ft = UseCompressedOops ? T_NARROWOOP : T_OBJECT; - Node* store = ini->find_captured_store(offset, type2aelembytes(ft), phase); - if (store != NULL && store->is_Store()) { + // StoreP::memory_type() == T_ADDRESS + BasicType ft = UseCompressedOops ? T_NARROWOOP : T_ADDRESS; + Node* store = ini->find_captured_store(offset, type2aelembytes(ft, true), phase); + // Make sure initializing store has the same type as this AddP. + // This AddP may reference non existing field because it is on a + // dead branch of bimorphic call which is not eliminated yet. + if (store != NULL && store->is_Store() && + store->as_Store()->memory_type() == ft) { value = store->in(MemNode::ValueIn); +#ifdef ASSERT + if (VerifyConnectionGraph) { + // Verify that AddP already points to all objects the value points to. + PointsToNode* val = ptnode_adr(value->_idx); + assert((val != NULL), "should be processed already"); + PointsToNode* missed_obj = NULL; + if (val->is_JavaObject()) { + if (!field->points_to(val->as_JavaObject())) { + missed_obj = val; + } + } else { + if (!val->is_LocalVar() || (val->edge_count() == 0)) { + tty->print_cr("----------init store has invalid value -----"); + store->dump(); + val->dump(); + assert(val->is_LocalVar() && (val->edge_count() > 0), "should be processed already"); + } + for (EdgeIterator j(val); j.has_next(); j.next()) { + PointsToNode* obj = j.get(); + if (obj->is_JavaObject()) { + if (!field->points_to(obj->as_JavaObject())) { + missed_obj = obj; + break; + } + } + } + } + if (missed_obj != NULL) { + tty->print_cr("----------field---------------------------------"); + field->dump(); + tty->print_cr("----------missed referernce to object-----------"); + missed_obj->dump(); + tty->print_cr("----------object referernced by init store -----"); + store->dump(); + val->dump(); + assert(!field->points_to(missed_obj->as_JavaObject()), "missed JavaObject reference"); + } + } +#endif } else { // There could be initializing stores which follow allocation. // For example, a volatile field store is not collected @@ -1462,10 +1506,10 @@ } if (value == NULL) { // A field's initializing value was not recorded. Add NULL. - if (add_edge(ptn, null_obj)) { + if (add_edge(field, null_obj)) { // New edge was added new_edges++; - add_field_uses_to_worklist(ptn->as_Field()); + add_field_uses_to_worklist(field->as_Field()); } } } @@ -1607,7 +1651,26 @@ } // Verify that all fields have initializing values. if (field->edge_count() == 0) { + tty->print_cr("----------field does not have references----------"); field->dump(); + for (BaseIterator i(field); i.has_next(); i.next()) { + PointsToNode* base = i.get(); + tty->print_cr("----------field has next base---------------------"); + base->dump(); + if (base->is_JavaObject() && (base != phantom_obj) && (base != null_obj)) { + tty->print_cr("----------base has fields-------------------------"); + for (EdgeIterator j(base); j.has_next(); j.next()) { + j.get()->dump(); + } + tty->print_cr("----------base has references---------------------"); + for (UseIterator j(base); j.has_next(); j.next()) { + j.get()->dump(); + } + } + } + for (UseIterator i(field); i.has_next(); i.next()) { + i.get()->dump(); + } assert(field->edge_count() > 0, "sanity"); } } @@ -1967,7 +2030,7 @@ if (is_JavaObject()) { return (this == ptn); } - assert(is_LocalVar(), "sanity"); + assert(is_LocalVar() || is_Field(), "sanity"); for (EdgeIterator i(this); i.has_next(); i.next()) { if (i.get() == ptn) return true; @@ -3127,10 +3190,14 @@ EscapeState fields_es = fields_escape_state(); tty->print("%s(%s) ", esc_names[(int)es], esc_names[(int)fields_es]); if (nt == PointsToNode::JavaObject && !this->scalar_replaceable()) - tty->print("NSR"); + tty->print("NSR "); } if (is_Field()) { FieldNode* f = (FieldNode*)this; + if (f->is_oop()) + tty->print("oop "); + if (f->offset() > 0) + tty->print("+%d ", f->offset()); tty->print("("); for (BaseIterator i(f); i.has_next(); i.next()) { PointsToNode* b = i.get(); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/prims/jni.cpp --- a/hotspot/src/share/vm/prims/jni.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/prims/jni.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -2985,7 +2985,7 @@ } // A jfieldID for a static field is a JNIid specifying the field holder and the offset within the Klass* - JNIid* id = InstanceKlass::cast(fd.field_holder())->jni_id_for(fd.offset()); + JNIid* id = fd.field_holder()->jni_id_for(fd.offset()); debug_only(id->set_is_static_field_id();) debug_only(id->verify(fd.field_holder())); @@ -4016,7 +4016,7 @@ if (PrintJNIResolving) { ResourceMark rm(THREAD); tty->print_cr("[Registering JNI native method %s.%s]", - Klass::cast(method->method_holder())->external_name(), + method->method_holder()->external_name(), method->name()->as_C_string()); } return true; diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/prims/jvm.cpp --- a/hotspot/src/share/vm/prims/jvm.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/prims/jvm.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -125,7 +125,7 @@ int line_number = -1; const char * source_file = NULL; const char * trace = "explicit"; - Klass* caller = NULL; + InstanceKlass* caller = NULL; JavaThread* jthread = JavaThread::current(); if (jthread->has_last_Java_frame()) { vframeStream vfst(jthread); @@ -153,17 +153,17 @@ // that caller, otherwise keep quiet since this should be picked up elsewhere. bool found_it = false; if (!vfst.at_end() && - InstanceKlass::cast(vfst.method()->method_holder())->name() == vmSymbols::java_lang_Class() && + vfst.method()->method_holder()->name() == vmSymbols::java_lang_Class() && vfst.method()->name() == vmSymbols::forName0_name()) { vfst.next(); if (!vfst.at_end() && - InstanceKlass::cast(vfst.method()->method_holder())->name() == vmSymbols::java_lang_Class() && + vfst.method()->method_holder()->name() == vmSymbols::java_lang_Class() && vfst.method()->name() == vmSymbols::forName_name()) { vfst.next(); found_it = true; } } else if (last_caller != NULL && - InstanceKlass::cast(last_caller->method_holder())->name() == + last_caller->method_holder()->name() == vmSymbols::java_lang_ClassLoader() && (last_caller->name() == vmSymbols::loadClassInternal_name() || last_caller->name() == vmSymbols::loadClass_name())) { @@ -182,7 +182,7 @@ // show method name if it's a native method trace = vfst.method()->name_and_sig_as_C_string(); } - Symbol* s = InstanceKlass::cast(caller)->source_file_name(); + Symbol* s = caller->source_file_name(); if (s != NULL) { source_file = s->as_C_string(); } @@ -190,8 +190,8 @@ } if (caller != NULL) { if (to_class != caller) { - const char * from = Klass::cast(caller)->external_name(); - const char * to = Klass::cast(to_class)->external_name(); + const char * from = caller->external_name(); + const char * to = to_class->external_name(); // print in a single call to reduce interleaving between threads if (source_file != NULL) { tty->print("RESOLVE %s %s %s:%d (%s)\n", from, to, source_file, line_number, trace); @@ -1228,7 +1228,7 @@ privileged_context = Handle(thread, thread->privileged_stack_top()->privileged_context()); protection_domain = thread->privileged_stack_top()->protection_domain(); } else { - protection_domain = InstanceKlass::cast(method->method_holder())->protection_domain(); + protection_domain = method->method_holder()->protection_domain(); } if ((previous_protection_domain != protection_domain) && (protection_domain != NULL)) { @@ -3048,10 +3048,10 @@ Method* m = vfst.method(); if (!m->is_native()) { - Klass* holder = m->method_holder(); - oop loader = InstanceKlass::cast(holder)->class_loader(); + InstanceKlass* holder = m->method_holder(); + oop loader = holder->class_loader(); if (loader != NULL && !java_lang_ClassLoader::is_trusted_loader(loader)) { - return (jclass) JNIHandles::make_local(env, Klass::cast(holder)->java_mirror()); + return (jclass) JNIHandles::make_local(env, holder->java_mirror()); } } } @@ -3071,9 +3071,9 @@ Method* m = vfst.method(); if (!m->is_native()) { - Klass* holder = m->method_holder(); + InstanceKlass* holder = m->method_holder(); assert(holder->is_klass(), "just checking"); - oop loader = InstanceKlass::cast(holder)->class_loader(); + oop loader = holder->class_loader(); if (loader != NULL && !java_lang_ClassLoader::is_trusted_loader(loader)) { return JNIHandles::make_local(env, loader); } @@ -3148,9 +3148,9 @@ for(vframeStream vfst(thread); !vfst.at_end(); vfst.next()) { if (!vfst.method()->is_native()) { - Klass* holder = vfst.method()->method_holder(); + InstanceKlass* holder = vfst.method()->method_holder(); assert(holder->is_klass(), "just checking"); - if (InstanceKlass::cast(holder)->name() == class_name_sym) { + if (holder->name() == class_name_sym) { return depth; } depth++; @@ -3171,9 +3171,9 @@ Method* m = vfst.method(); if (!m->is_native()) { - Klass* holder = m->method_holder(); + InstanceKlass* holder = m->method_holder(); assert(holder->is_klass(), "just checking"); - oop loader = InstanceKlass::cast(holder)->class_loader(); + oop loader = holder->class_loader(); if (loader != NULL && !java_lang_ClassLoader::is_trusted_loader(loader)) { return depth; } @@ -3322,8 +3322,7 @@ for (vframeStream vfst(thread); !vfst.at_end(); vfst.next()) { // UseNewReflection vfst.skip_reflection_related_frames(); // Only needed for 1.4 reflection - Klass* holder = vfst.method()->method_holder(); - oop loader = InstanceKlass::cast(holder)->class_loader(); + oop loader = vfst.method()->method_holder()->class_loader(); if (loader != NULL) { return JNIHandles::make_local(env, loader); } @@ -3365,9 +3364,9 @@ !vfst.at_end() && loader == NULL; vfst.next()) { if (!vfst.method()->is_native()) { - Klass* holder = vfst.method()->method_holder(); - loader = InstanceKlass::cast(holder)->class_loader(); - protection_domain = InstanceKlass::cast(holder)->protection_domain(); + InstanceKlass* holder = vfst.method()->method_holder(); + loader = holder->class_loader(); + protection_domain = holder->protection_domain(); } } } else { diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp --- a/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -753,7 +753,7 @@ unsigned char* p = bytecodes; Bytecodes::Code code; - bool is_rewritten = InstanceKlass::cast(mh->method_holder())->is_rewritten(); + bool is_rewritten = mh->method_holder()->is_rewritten(); while ((code = bs.next()) >= 0) { assert(Bytecodes::is_java_code(code), "sanity check"); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/prims/jvmtiEnv.cpp --- a/hotspot/src/share/vm/prims/jvmtiEnv.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/prims/jvmtiEnv.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -2822,7 +2822,7 @@ JavaThread* current_thread = JavaThread::current(); // does the klass have any local variable information? - InstanceKlass* ik = InstanceKlass::cast(method_oop->method_holder()); + InstanceKlass* ik = method_oop->method_holder(); if (!ik->access_flags().has_localvariable_table()) { return (JVMTI_ERROR_ABSENT_INFORMATION); } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/prims/methodHandles.cpp --- a/hotspot/src/share/vm/prims/methodHandles.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/prims/methodHandles.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -233,7 +233,7 @@ methodHandle m = info.resolved_method(); KlassHandle defc = info.resolved_klass(); int vmindex = -1; - if (defc->is_interface() && Klass::cast(m->method_holder())->is_interface()) { + if (defc->is_interface() && m->method_holder()->is_interface()) { // LinkResolver does not report itable indexes! (fix this?) vmindex = klassItable::compute_itable_index(m()); } else if (m->can_be_statically_bound()) { @@ -749,8 +749,8 @@ DEBUG_ONLY(vmtarget = NULL); // safety if (m.is_null()) break; if (!have_defc) { - Klass* defc = m->method_holder(); - java_lang_invoke_MemberName::set_clazz(mname(), Klass::cast(defc)->java_mirror()); + InstanceKlass* defc = m->method_holder(); + java_lang_invoke_MemberName::set_clazz(mname(), defc->java_mirror()); } if (!have_name) { //not java_lang_String::create_from_symbol; let's intern member names diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/prims/nativeLookup.cpp --- a/hotspot/src/share/vm/prims/nativeLookup.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/prims/nativeLookup.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -165,8 +165,7 @@ // Note: It is critical for bootstrapping that Java_java_lang_ClassLoader_00024NativeLibrary_find // gets found the first time around - otherwise an infinite loop can occure. This is // another VM/library dependency - Handle loader(THREAD, - InstanceKlass::cast(method->method_holder())->class_loader()); + Handle loader(THREAD, method->method_holder()->class_loader()); if (loader.is_null()) { entry = lookup_special_native(jni_name); if (entry == NULL) { @@ -393,7 +392,7 @@ if (PrintJNIResolving) { ResourceMark rm(THREAD); tty->print_cr("[Dynamic-linking native method %s.%s ... JNI]", - Klass::cast(method->method_holder())->external_name(), + method->method_holder()->external_name(), method->name()->as_C_string()); } } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/compilationPolicy.cpp --- a/hotspot/src/share/vm/runtime/compilationPolicy.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/compilationPolicy.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -627,7 +627,7 @@ // negative filter: should send NOT be inlined? returns NULL (--> inline) or rejection msg if (m->is_abstract()) return (_msg = "abstract method"); // note: we allow ik->is_abstract() - if (!InstanceKlass::cast(m->method_holder())->is_initialized()) return (_msg = "method holder not initialized"); + if (!m->method_holder()->is_initialized()) return (_msg = "method holder not initialized"); if (m->is_native()) return (_msg = "native method"); nmethod* m_code = m->code(); if (m_code != NULL && m_code->code_size() > InlineSmallCode) diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/deoptimization.cpp --- a/hotspot/src/share/vm/runtime/deoptimization.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/deoptimization.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1191,12 +1191,12 @@ if (!constant_pool->tag_at(index).is_symbol()) return; - Handle class_loader (THREAD, InstanceKlass::cast(constant_pool->pool_holder())->class_loader()); + Handle class_loader (THREAD, constant_pool->pool_holder()->class_loader()); Symbol* symbol = constant_pool->symbol_at(index); // class name? if (symbol->byte_at(0) != '(') { - Handle protection_domain (THREAD, Klass::cast(constant_pool->pool_holder())->protection_domain()); + Handle protection_domain (THREAD, constant_pool->pool_holder()->protection_domain()); SystemDictionary::resolve_or_null(symbol, class_loader, protection_domain, CHECK); return; } @@ -1206,7 +1206,7 @@ for (SignatureStream ss(symbol); !ss.is_done(); ss.next()) { if (ss.is_object()) { Symbol* class_name = ss.as_symbol(CHECK); - Handle protection_domain (THREAD, Klass::cast(constant_pool->pool_holder())->protection_domain()); + Handle protection_domain (THREAD, constant_pool->pool_holder()->protection_domain()); SystemDictionary::resolve_or_null(class_name, class_loader, protection_domain, CHECK); } } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/fieldDescriptor.cpp --- a/hotspot/src/share/vm/runtime/fieldDescriptor.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/fieldDescriptor.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -36,7 +36,7 @@ oop fieldDescriptor::loader() const { - return InstanceKlass::cast(_cp->pool_holder())->class_loader(); + return _cp->pool_holder()->class_loader(); } Symbol* fieldDescriptor::generic_signature() const { @@ -45,7 +45,7 @@ } int idx = 0; - InstanceKlass* ik = InstanceKlass::cast(field_holder()); + InstanceKlass* ik = field_holder(); for (AllFieldStream fs(ik); !fs.done(); fs.next()) { if (idx == _index) { return fs.generic_signature(); @@ -58,7 +58,7 @@ } AnnotationArray* fieldDescriptor::annotations() const { - InstanceKlass* ik = InstanceKlass::cast(field_holder()); + InstanceKlass* ik = field_holder(); Array* md = ik->fields_annotations(); if (md == NULL) return NULL; diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/fieldDescriptor.hpp --- a/hotspot/src/share/vm/runtime/fieldDescriptor.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/fieldDescriptor.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -43,12 +43,12 @@ // update the access_flags for the field in the klass void update_klass_field_access_flag() { - InstanceKlass* ik = InstanceKlass::cast(field_holder()); + InstanceKlass* ik = field_holder(); ik->field(index())->set_access_flags(_access_flags.as_short()); } FieldInfo* field() const { - InstanceKlass* ik = InstanceKlass::cast(field_holder()); + InstanceKlass* ik = field_holder(); return ik->field(_index); } @@ -59,46 +59,46 @@ Symbol* signature() const { return field()->signature(_cp); } - Klass* field_holder() const { return _cp->pool_holder(); } - ConstantPool* constants() const { return _cp(); } - AccessFlags access_flags() const { return _access_flags; } - oop loader() const; + InstanceKlass* field_holder() const { return _cp->pool_holder(); } + ConstantPool* constants() const { return _cp(); } + AccessFlags access_flags() const { return _access_flags; } + oop loader() const; // Offset (in words) of field from start of instanceOop / Klass* - int offset() const { return field()->offset(); } - Symbol* generic_signature() const; - int index() const { return _index; } - AnnotationArray* annotations() const; + int offset() const { return field()->offset(); } + Symbol* generic_signature() const; + int index() const { return _index; } + AnnotationArray* annotations() const; // Initial field value - bool has_initial_value() const { return field()->initval_index() != 0; } - int initial_value_index() const { return field()->initval_index(); } + bool has_initial_value() const { return field()->initval_index() != 0; } + int initial_value_index() const { return field()->initval_index(); } constantTag initial_value_tag() const; // The tag will return true on one of is_int(), is_long(), is_single(), is_double() - jint int_initial_value() const; - jlong long_initial_value() const; - jfloat float_initial_value() const; - jdouble double_initial_value() const; - oop string_initial_value(TRAPS) const; + jint int_initial_value() const; + jlong long_initial_value() const; + jfloat float_initial_value() const; + jdouble double_initial_value() const; + oop string_initial_value(TRAPS) const; // Field signature type - BasicType field_type() const { return FieldType::basic_type(signature()); } + BasicType field_type() const { return FieldType::basic_type(signature()); } // Access flags - bool is_public() const { return access_flags().is_public(); } - bool is_private() const { return access_flags().is_private(); } - bool is_protected() const { return access_flags().is_protected(); } - bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); } + bool is_public() const { return access_flags().is_public(); } + bool is_private() const { return access_flags().is_private(); } + bool is_protected() const { return access_flags().is_protected(); } + bool is_package_private() const { return !is_public() && !is_private() && !is_protected(); } - bool is_static() const { return access_flags().is_static(); } - bool is_final() const { return access_flags().is_final(); } - bool is_volatile() const { return access_flags().is_volatile(); } - bool is_transient() const { return access_flags().is_transient(); } + bool is_static() const { return access_flags().is_static(); } + bool is_final() const { return access_flags().is_final(); } + bool is_volatile() const { return access_flags().is_volatile(); } + bool is_transient() const { return access_flags().is_transient(); } - bool is_synthetic() const { return access_flags().is_synthetic(); } + bool is_synthetic() const { return access_flags().is_synthetic(); } - bool is_field_access_watched() const { return access_flags().is_field_access_watched(); } + bool is_field_access_watched() const { return access_flags().is_field_access_watched(); } bool is_field_modification_watched() const - { return access_flags().is_field_modification_watched(); } - bool has_generic_signature() const { return access_flags().field_has_generic_signature(); } + { return access_flags().is_field_modification_watched(); } + bool has_generic_signature() const { return access_flags().field_has_generic_signature(); } void set_is_field_access_watched(const bool value) { _access_flags.set_is_field_access_watched(value); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/globals.hpp --- a/hotspot/src/share/vm/runtime/globals.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/globals.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -3596,6 +3596,15 @@ product(uintx, StringTableSize, 1009, \ "Number of buckets in the interned String table") \ \ + develop(bool, TraceDefaultMethods, false, \ + "Trace the default method processing steps") \ + \ + develop(bool, ParseAllGenericSignatures, false, \ + "Parse all generic signatures while classloading") \ + \ + develop(bool, VerifyGenericSignatures, false, \ + "Abort VM on erroneous or inconsistent generic signatures") \ + \ product(bool, UseVMInterruptibleIO, false, \ "(Unstable, Solaris-specific) Thread interrupt before or with " \ "EINTR for I/O operations results in OS_INTRPT. The default value"\ diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/javaCalls.cpp --- a/hotspot/src/share/vm/runtime/javaCalls.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/javaCalls.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -189,7 +189,7 @@ assert(method->name() == vmSymbols::object_initializer_name(), "Should only be called for default constructor"); assert(method->signature() == vmSymbols::void_method_signature(), "Should only be called for default constructor"); - InstanceKlass* ik = InstanceKlass::cast(method->method_holder()); + InstanceKlass* ik = method->method_holder(); if (ik->is_initialized() && ik->has_vanilla_constructor()) { // safe to skip constructor call } else { @@ -344,11 +344,11 @@ #ifdef ASSERT - { Klass* holder = method->method_holder(); + { InstanceKlass* holder = method->method_holder(); // A klass might not be initialized since JavaCall's might be used during the executing of // the . For example, a Thread.start might start executing on an object that is // not fully initialized! (bad Java programming style) - assert(InstanceKlass::cast(holder)->is_linked(), "rewritting must have taken place"); + assert(holder->is_linked(), "rewritting must have taken place"); } #endif diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/mutexLocker.cpp --- a/hotspot/src/share/vm/runtime/mutexLocker.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/mutexLocker.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -140,6 +140,7 @@ Monitor* JfrMsg_lock = NULL; Mutex* JfrBuffer_lock = NULL; Mutex* JfrStream_lock = NULL; +Monitor* PeriodicTask_lock = NULL; #define MAX_NUM_MUTEX 128 static Monitor * _mutex_array[MAX_NUM_MUTEX]; @@ -285,6 +286,7 @@ def(JfrMsg_lock , Monitor, nonleaf+2, true); def(JfrBuffer_lock , Mutex, nonleaf+3, true); def(JfrStream_lock , Mutex, nonleaf+4, true); + def(PeriodicTask_lock , Monitor, nonleaf+5, true); } GCMutexLocker::GCMutexLocker(Monitor * mutex) { diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/mutexLocker.hpp --- a/hotspot/src/share/vm/runtime/mutexLocker.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/mutexLocker.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -142,6 +142,7 @@ extern Monitor* JfrMsg_lock; // protects JFR messaging extern Mutex* JfrBuffer_lock; // protects JFR buffer operations extern Mutex* JfrStream_lock; // protects JFR stream access +extern Monitor* PeriodicTask_lock; // protects the periodic task structure // A MutexLocker provides mutual exclusion with respect to a given mutex // for the scope which contains the locker. The lock is an OS lock, not diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/reflection.cpp --- a/hotspot/src/share/vm/runtime/reflection.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/reflection.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -56,14 +56,14 @@ vframeStream vfst(jthread); // skip over any frames belonging to java.lang.Class while (!vfst.at_end() && - InstanceKlass::cast(vfst.method()->method_holder())->name() == vmSymbols::java_lang_Class()) { + vfst.method()->method_holder()->name() == vmSymbols::java_lang_Class()) { vfst.next(); } if (!vfst.at_end()) { // this frame is a likely suspect caller = vfst.method()->method_holder(); line_number = vfst.method()->line_number_from_bci(vfst.bci()); - Symbol* s = InstanceKlass::cast(vfst.method()->method_holder())->source_file_name(); + Symbol* s = vfst.method()->method_holder()->source_file_name(); if (s != NULL) { source_file = s->as_C_string(); } @@ -472,6 +472,12 @@ return true; } + // Also allow all accesses from + // java/lang/invoke/MagicLambdaImpl subclasses to succeed trivially. + if (current_class->is_subclass_of(SystemDictionary::lambda_MagicLambdaImpl_klass())) { + return true; + } + return can_relax_access_check_for(current_class, new_class, classloader_only); } @@ -564,6 +570,12 @@ return true; } + // Also allow all accesses from + // java/lang/invoke/MagicLambdaImpl subclasses to succeed trivially. + if (current_class->is_subclass_of(SystemDictionary::lambda_MagicLambdaImpl_klass())) { + return true; + } + return can_relax_access_check_for( current_class, field_class, classloader_only); } @@ -630,8 +642,8 @@ case T_OBJECT: case T_ARRAY: Symbol* name = ss->as_symbol(CHECK_NULL); - oop loader = InstanceKlass::cast(method->method_holder())->class_loader(); - oop protection_domain = InstanceKlass::cast(method->method_holder())->protection_domain(); + oop loader = method->method_holder()->class_loader(); + oop protection_domain = method->method_holder()->protection_domain(); Klass* k = SystemDictionary::resolve_or_fail( name, Handle(THREAD, loader), @@ -702,7 +714,7 @@ assert(!method()->is_initializer() || (for_constant_pool_access && method()->is_static()) || (method()->name() == vmSymbols::class_initializer_name() - && Klass::cast(method()->method_holder())->is_interface() && JDK_Version::is_jdk12x_version()), "should call new_constructor instead"); + && method()->method_holder()->is_interface() && JDK_Version::is_jdk12x_version()), "should call new_constructor instead"); instanceKlassHandle holder (THREAD, method->method_holder()); int slot = method->method_idnum(); @@ -820,7 +832,7 @@ Handle type = new_type(signature, holder, CHECK_NULL); Handle rh = java_lang_reflect_Field::create(CHECK_NULL); - java_lang_reflect_Field::set_clazz(rh(), Klass::cast(fd->field_holder())->java_mirror()); + java_lang_reflect_Field::set_clazz(rh(), fd->field_holder()->java_mirror()); java_lang_reflect_Field::set_slot(rh(), fd->index()); java_lang_reflect_Field::set_name(rh(), name()); java_lang_reflect_Field::set_type(rh(), type()); @@ -888,7 +900,7 @@ method = reflected_method; } else { // resolve based on the receiver - if (InstanceKlass::cast(reflected_method->method_holder())->is_interface()) { + if (reflected_method->method_holder()->is_interface()) { // resolve interface call if (ReflectionWrapResolutionErrors) { // new default: 6531596 diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/task.cpp --- a/hotspot/src/share/vm/runtime/task.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/task.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -61,7 +61,7 @@ } #endif -void PeriodicTask::real_time_tick(size_t delay_time) { +void PeriodicTask::real_time_tick(int delay_time) { #ifndef PRODUCT if (ProfilerCheckIntervals) { _ticks++; @@ -73,19 +73,39 @@ _intervalHistogram[ms]++; } #endif - int orig_num_tasks = _num_tasks; - for(int index = 0; index < _num_tasks; index++) { - _tasks[index]->execute_if_pending(delay_time); - if (_num_tasks < orig_num_tasks) { // task dis-enrolled itself - index--; // re-do current slot as it has changed - orig_num_tasks = _num_tasks; + + { + MutexLockerEx ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); + int orig_num_tasks = _num_tasks; + + for(int index = 0; index < _num_tasks; index++) { + _tasks[index]->execute_if_pending(delay_time); + if (_num_tasks < orig_num_tasks) { // task dis-enrolled itself + index--; // re-do current slot as it has changed + orig_num_tasks = _num_tasks; + } } } } +int PeriodicTask::time_to_wait() { + MutexLockerEx ml(PeriodicTask_lock->owned_by_self() ? + NULL : PeriodicTask_lock, Mutex::_no_safepoint_check_flag); + + if (_num_tasks == 0) { + return 0; // sleep until shutdown or a task is enrolled + } + + int delay = _tasks[0]->time_to_next_interval(); + for (int index = 1; index < _num_tasks; index++) { + delay = MIN2(delay, _tasks[index]->time_to_next_interval()); + } + return delay; +} + PeriodicTask::PeriodicTask(size_t interval_time) : - _counter(0), _interval(interval_time) { + _counter(0), _interval((int) interval_time) { // Sanity check the interval time assert(_interval >= PeriodicTask::min_interval && _interval <= PeriodicTask::max_interval && @@ -94,33 +114,40 @@ } PeriodicTask::~PeriodicTask() { - if (is_enrolled()) - disenroll(); -} - -bool PeriodicTask::is_enrolled() const { - for(int index = 0; index < _num_tasks; index++) - if (_tasks[index] == this) return true; - return false; + disenroll(); } void PeriodicTask::enroll() { - assert(WatcherThread::watcher_thread() == NULL, "dynamic enrollment of tasks not yet supported"); + MutexLockerEx ml(PeriodicTask_lock->owned_by_self() ? + NULL : PeriodicTask_lock, Mutex::_no_safepoint_check_flag); - if (_num_tasks == PeriodicTask::max_tasks) + if (_num_tasks == PeriodicTask::max_tasks) { fatal("Overflow in PeriodicTask table"); + } _tasks[_num_tasks++] = this; + + WatcherThread* thread = WatcherThread::watcher_thread(); + if (thread) { + thread->unpark(); + } else { + WatcherThread::start(); + } } void PeriodicTask::disenroll() { - assert(WatcherThread::watcher_thread() == NULL || - Thread::current() == WatcherThread::watcher_thread(), - "dynamic disenrollment currently only handled from WatcherThread from within task() method"); + MutexLockerEx ml(PeriodicTask_lock->owned_by_self() ? + NULL : PeriodicTask_lock, Mutex::_no_safepoint_check_flag); int index; - for(index = 0; index < _num_tasks && _tasks[index] != this; index++); - if (index == _num_tasks) return; + for(index = 0; index < _num_tasks && _tasks[index] != this; index++) + ; + + if (index == _num_tasks) { + return; + } + _num_tasks--; + for (; index < _num_tasks; index++) { _tasks[index] = _tasks[index+1]; } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/task.hpp --- a/hotspot/src/share/vm/runtime/task.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/task.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -49,12 +49,12 @@ static int num_tasks() { return _num_tasks; } private: - size_t _counter; - const size_t _interval; + int _counter; + const int _interval; static int _num_tasks; static PeriodicTask* _tasks[PeriodicTask::max_tasks]; - static void real_time_tick(size_t delay_time); + static void real_time_tick(int delay_time); #ifndef PRODUCT static elapsedTimer _timer; // measures time between ticks @@ -69,51 +69,36 @@ PeriodicTask(size_t interval_time); // interval is in milliseconds of elapsed time ~PeriodicTask(); - // Tells whether is enrolled - bool is_enrolled() const; - // Make the task active - // NOTE: this may only be called before the WatcherThread has been started + // For dynamic enrollment at the time T, the task will execute somewhere + // between T and T + interval_time. void enroll(); // Make the task deactive - // NOTE: this may only be called either while the WatcherThread is - // inactive or by a task from within its task() method. One-shot or - // several-shot tasks may be implemented this way. void disenroll(); - void execute_if_pending(size_t delay_time) { - _counter += delay_time; - if (_counter >= _interval) { + void execute_if_pending(int delay_time) { + // make sure we don't overflow + jlong tmp = (jlong) _counter + (jlong) delay_time; + + if (tmp >= (jlong) _interval) { _counter = 0; task(); + } else { + _counter += delay_time; } } // Returns how long (time in milliseconds) before the next time we should // execute this task. - size_t time_to_next_interval() const { + int time_to_next_interval() const { assert(_interval > _counter, "task counter greater than interval?"); return _interval - _counter; } // Calculate when the next periodic task will fire. // Called by the WatcherThread's run method. - // This assumes that periodic tasks aren't entering the system - // dynamically, except for during startup. - static size_t time_to_wait() { - if (_num_tasks == 0) { - // Don't wait any more; shut down the thread since we don't - // currently support dynamic enrollment. - return 0; - } - - size_t delay = _tasks[0]->time_to_next_interval(); - for (int index = 1; index < _num_tasks; index++) { - delay = MIN2(delay, _tasks[index]->time_to_next_interval()); - } - return delay; - } + static int time_to_wait(); // The task to perform at each period virtual void task() = 0; diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/thread.cpp --- a/hotspot/src/share/vm/runtime/thread.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/thread.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1217,6 +1217,7 @@ // timer interrupts exists on the platform. WatcherThread* WatcherThread::_watcher_thread = NULL; +bool WatcherThread::_startable = false; volatile bool WatcherThread::_should_terminate = false; WatcherThread::WatcherThread() : Thread() { @@ -1237,6 +1238,55 @@ } } +int WatcherThread::sleep() const { + MutexLockerEx ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); + + // remaining will be zero if there are no tasks, + // causing the WatcherThread to sleep until a task is + // enrolled + int remaining = PeriodicTask::time_to_wait(); + int time_slept = 0; + + // we expect this to timeout - we only ever get unparked when + // we should terminate or when a new task has been enrolled + OSThreadWaitState osts(this->osthread(), false /* not Object.wait() */); + + jlong time_before_loop = os::javaTimeNanos(); + + for (;;) { + bool timedout = PeriodicTask_lock->wait(Mutex::_no_safepoint_check_flag, remaining); + jlong now = os::javaTimeNanos(); + + if (remaining == 0) { + // if we didn't have any tasks we could have waited for a long time + // consider the time_slept zero and reset time_before_loop + time_slept = 0; + time_before_loop = now; + } else { + // need to recalulate since we might have new tasks in _tasks + time_slept = (int) ((now - time_before_loop) / 1000000); + } + + // Change to task list or spurious wakeup of some kind + if (timedout || _should_terminate) { + break; + } + + remaining = PeriodicTask::time_to_wait(); + if (remaining == 0) { + // Last task was just disenrolled so loop around and wait until + // another task gets enrolled + continue; + } + + remaining -= time_slept; + if (remaining <= 0) + break; + } + + return time_slept; +} + void WatcherThread::run() { assert(this == watcher_thread(), "just checking"); @@ -1249,26 +1299,7 @@ // Calculate how long it'll be until the next PeriodicTask work // should be done, and sleep that amount of time. - size_t time_to_wait = PeriodicTask::time_to_wait(); - - // we expect this to timeout - we only ever get unparked when - // we should terminate - { - OSThreadWaitState osts(this->osthread(), false /* not Object.wait() */); - - jlong prev_time = os::javaTimeNanos(); - for (;;) { - int res= _SleepEvent->park(time_to_wait); - if (res == OS_TIMEOUT || _should_terminate) - break; - // spurious wakeup of some kind - jlong now = os::javaTimeNanos(); - time_to_wait -= (now - prev_time) / 1000000; - if (time_to_wait <= 0) - break; - prev_time = now; - } - } + int time_waited = sleep(); if (is_error_reported()) { // A fatal error has happened, the error handler(VMError::report_and_die) @@ -1298,13 +1329,7 @@ } } - PeriodicTask::real_time_tick(time_to_wait); - - // If we have no more tasks left due to dynamic disenrollment, - // shut down the thread since we don't currently support dynamic enrollment - if (PeriodicTask::num_tasks() == 0) { - _should_terminate = true; - } + PeriodicTask::real_time_tick(time_waited); } // Signal that it is terminated @@ -1319,22 +1344,33 @@ } void WatcherThread::start() { - if (watcher_thread() == NULL) { + assert(PeriodicTask_lock->owned_by_self(), "PeriodicTask_lock required"); + + if (watcher_thread() == NULL && _startable) { _should_terminate = false; // Create the single instance of WatcherThread new WatcherThread(); } } +void WatcherThread::make_startable() { + assert(PeriodicTask_lock->owned_by_self(), "PeriodicTask_lock required"); + _startable = true; +} + void WatcherThread::stop() { + { + MutexLockerEx ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); + _should_terminate = true; + OrderAccess::fence(); // ensure WatcherThread sees update in main loop + + WatcherThread* watcher = watcher_thread(); + if (watcher != NULL) + watcher->unpark(); + } + // it is ok to take late safepoints here, if needed MutexLocker mu(Terminator_lock); - _should_terminate = true; - OrderAccess::fence(); // ensure WatcherThread sees update in main loop - - Thread* watcher = watcher_thread(); - if (watcher != NULL) - watcher->_SleepEvent->unpark(); while(watcher_thread() != NULL) { // This wait should make safepoint checks, wait without a timeout, @@ -1352,6 +1388,11 @@ } } +void WatcherThread::unpark() { + MutexLockerEx ml(PeriodicTask_lock->owned_by_self() ? NULL : PeriodicTask_lock, Mutex::_no_safepoint_check_flag); + PeriodicTask_lock->notify(); +} + void WatcherThread::print_on(outputStream* st) const { st->print("\"%s\" ", name()); Thread::print_on(st); @@ -3658,12 +3699,18 @@ } } - // Start up the WatcherThread if there are any periodic tasks - // NOTE: All PeriodicTasks should be registered by now. If they - // aren't, late joiners might appear to start slowly (we might - // take a while to process their first tick). - if (PeriodicTask::num_tasks() > 0) { - WatcherThread::start(); + { + MutexLockerEx ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); + // Make sure the watcher thread can be started by WatcherThread::start() + // or by dynamic enrollment. + WatcherThread::make_startable(); + // Start up the WatcherThread if there are any periodic tasks + // NOTE: All PeriodicTasks should be registered by now. If they + // aren't, late joiners might appear to start slowly (we might + // take a while to process their first tick). + if (PeriodicTask::num_tasks() > 0) { + WatcherThread::start(); + } } // Give os specific code one last chance to start diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/thread.hpp --- a/hotspot/src/share/vm/runtime/thread.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/thread.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -722,6 +722,7 @@ private: static WatcherThread* _watcher_thread; + static bool _startable; volatile static bool _should_terminate; // updated without holding lock public: enum SomeConstants { @@ -738,6 +739,7 @@ char* name() const { return (char*)"VM Periodic Task Thread"; } void print_on(outputStream* st) const; void print() const { print_on(tty); } + void unpark(); // Returns the single instance of WatcherThread static WatcherThread* watcher_thread() { return _watcher_thread; } @@ -745,6 +747,12 @@ // Create and start the single instance of WatcherThread, or stop it on shutdown static void start(); static void stop(); + // Only allow start once the VM is sufficiently initialized + // Otherwise the first task to enroll will trigger the start + static void make_startable(); + + private: + int sleep() const; }; diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/vframe.cpp --- a/hotspot/src/share/vm/runtime/vframe.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/vframe.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -161,7 +161,7 @@ // If this is the first frame, and java.lang.Object.wait(...) then print out the receiver. if (frame_count == 0) { if (method()->name() == vmSymbols::wait_name() && - InstanceKlass::cast(method()->method_holder())->name() == vmSymbols::java_lang_Object()) { + method()->method_holder()->name() == vmSymbols::java_lang_Object()) { StackValueCollection* locs = locals(); if (!locs->is_empty()) { StackValue* sv = locs->at(0); @@ -407,7 +407,7 @@ if (Universe::reflect_invoke_cache()->is_same_method(method())) { // This is Method.invoke() -- skip it } else if (use_new_reflection && - Klass::cast(method()->method_holder()) + method()->method_holder() ->is_subclass_of(SystemDictionary::reflect_MethodAccessorImpl_klass())) { // This is an auxilary frame -- skip it } else if (method()->is_method_handle_intrinsic() || @@ -471,8 +471,8 @@ void vframeStreamCommon::skip_reflection_related_frames() { while (!at_end() && (JDK_Version::is_gte_jdk14x_version() && UseNewReflection && - (Klass::cast(method()->method_holder())->is_subclass_of(SystemDictionary::reflect_MethodAccessorImpl_klass()) || - Klass::cast(method()->method_holder())->is_subclass_of(SystemDictionary::reflect_ConstructorAccessorImpl_klass())))) { + (method()->method_holder()->is_subclass_of(SystemDictionary::reflect_MethodAccessorImpl_klass()) || + method()->method_holder()->is_subclass_of(SystemDictionary::reflect_ConstructorAccessorImpl_klass())))) { next(); } } @@ -547,13 +547,13 @@ void javaVFrame::print_value() const { Method* m = method(); - Klass* k = m->method_holder(); + InstanceKlass* k = m->method_holder(); tty->print_cr("frame( sp=" INTPTR_FORMAT ", unextended_sp=" INTPTR_FORMAT ", fp=" INTPTR_FORMAT ", pc=" INTPTR_FORMAT ")", _fr.sp(), _fr.unextended_sp(), _fr.fp(), _fr.pc()); tty->print("%s.%s", Klass::cast(k)->internal_name(), m->name()->as_C_string()); if (!m->is_native()) { - Symbol* source_name = InstanceKlass::cast(k)->source_file_name(); + Symbol* source_name = k->source_file_name(); int line_number = m->line_number_from_bci(bci()); if (source_name != NULL && (line_number != -1)) { tty->print("(%s:%d)", source_name->as_C_string(), line_number); diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/runtime/vmStructs.cpp --- a/hotspot/src/share/vm/runtime/vmStructs.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/runtime/vmStructs.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -289,7 +289,7 @@ nonstatic_field(CompiledICHolder, _holder_klass, Klass*) \ nonstatic_field(ConstantPool, _tags, Array*) \ nonstatic_field(ConstantPool, _cache, ConstantPoolCache*) \ - nonstatic_field(ConstantPool, _pool_holder, Klass*) \ + nonstatic_field(ConstantPool, _pool_holder, InstanceKlass*) \ nonstatic_field(ConstantPool, _operands, Array*) \ nonstatic_field(ConstantPool, _length, int) \ nonstatic_field(ConstantPool, _resolved_references, jobject) \ diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/services/heapDumper.cpp --- a/hotspot/src/share/vm/services/heapDumper.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/services/heapDumper.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -1117,8 +1117,8 @@ writer->write_symbolID(m->name()); // method's name writer->write_symbolID(m->signature()); // method's signature - assert(Klass::cast(m->method_holder())->oop_is_instance(), "not InstanceKlass"); - writer->write_symbolID(InstanceKlass::cast(m->method_holder())->source_file_name()); // source file name + assert(m->method_holder()->oop_is_instance(), "not InstanceKlass"); + writer->write_symbolID(m->method_holder()->source_file_name()); // source file name writer->write_u4(class_serial_num); // class serial number writer->write_u4((u4) line_number); // line number } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/services/memPtr.hpp --- a/hotspot/src/share/vm/services/memPtr.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/services/memPtr.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -311,6 +311,17 @@ inline bool contains_address(address add) const { return (addr() <= add && addr() + size() > add); } + + // if this memory region overlaps another region + inline bool overlaps_region(const MemPointerRecord* other) const { + assert(other != NULL, "Just check"); + assert(size() > 0 && other->size() > 0, "empty range"); + return contains_address(other->addr()) || + contains_address(other->addr() + other->size() - 1) || // exclude end address + other->contains_address(addr()) || + other->contains_address(addr() + size() - 1); // exclude end address + } + }; // MemPointerRecordEx also records callsite pc, from where diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/services/memSnapshot.cpp --- a/hotspot/src/share/vm/services/memSnapshot.cpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/services/memSnapshot.cpp Wed Jul 05 18:29:53 2017 +0200 @@ -31,6 +31,69 @@ #include "services/memSnapshot.hpp" #include "services/memTracker.hpp" +#ifdef ASSERT + +void decode_pointer_record(MemPointerRecord* rec) { + tty->print("Pointer: [" PTR_FORMAT " - " PTR_FORMAT "] size = %d bytes", rec->addr(), + rec->addr() + rec->size(), (int)rec->size()); + tty->print(" type = %s", MemBaseline::type2name(FLAGS_TO_MEMORY_TYPE(rec->flags()))); + if (rec->is_vm_pointer()) { + if (rec->is_allocation_record()) { + tty->print_cr(" (reserve)"); + } else if (rec->is_commit_record()) { + tty->print_cr(" (commit)"); + } else if (rec->is_uncommit_record()) { + tty->print_cr(" (uncommit)"); + } else if (rec->is_deallocation_record()) { + tty->print_cr(" (release)"); + } else { + tty->print_cr(" (tag)"); + } + } else { + if (rec->is_arena_size_record()) { + tty->print_cr(" (arena size)"); + } else if (rec->is_allocation_record()) { + tty->print_cr(" (malloc)"); + } else { + tty->print_cr(" (free)"); + } + } + if (MemTracker::track_callsite()) { + char buf[1024]; + address pc = ((MemPointerRecordEx*)rec)->pc(); + if (pc != NULL && os::dll_address_to_function_name(pc, buf, sizeof(buf), NULL)) { + tty->print_cr("\tfrom %s", buf); + } else { + tty->print_cr("\tcould not decode pc = " PTR_FORMAT "", pc); + } + } +} + +void decode_vm_region_record(VMMemRegion* rec) { + tty->print("VM Region [" PTR_FORMAT " - " PTR_FORMAT "]", rec->addr(), + rec->addr() + rec->size()); + tty->print(" type = %s", MemBaseline::type2name(FLAGS_TO_MEMORY_TYPE(rec->flags()))); + if (rec->is_allocation_record()) { + tty->print_cr(" (reserved)"); + } else if (rec->is_commit_record()) { + tty->print_cr(" (committed)"); + } else { + ShouldNotReachHere(); + } + if (MemTracker::track_callsite()) { + char buf[1024]; + address pc = ((VMMemRegionEx*)rec)->pc(); + if (pc != NULL && os::dll_address_to_function_name(pc, buf, sizeof(buf), NULL)) { + tty->print_cr("\tfrom %s", buf); + } else { + tty->print_cr("\tcould not decode pc = " PTR_FORMAT "", pc); + } + + } +} + +#endif + bool VMMemPointerIterator::insert_record(MemPointerRecord* rec) { VMMemRegionEx new_rec; @@ -73,52 +136,61 @@ return true; } assert(cur->base() > rec->addr(), "Just check: locate()"); - assert(rec->addr() + rec->size() <= cur->base(), "Can not overlap"); + assert(!cur->overlaps_region(rec), "overlapping reserved regions"); return insert_record(rec); } // we do consolidate committed regions bool VMMemPointerIterator::add_committed_region(MemPointerRecord* rec) { assert(rec->is_commit_record(), "Sanity check"); - VMMemRegion* cur; - cur = (VMMemRegion*)current(); - assert(cur->is_reserved_region() && cur->contains_region(rec), + VMMemRegion* reserved_rgn = (VMMemRegion*)current(); + assert(reserved_rgn->is_reserved_region() && reserved_rgn->contains_region(rec), "Sanity check"); // thread's native stack is always marked as "committed", ignore // the "commit" operation for creating stack guard pages - if (FLAGS_TO_MEMORY_TYPE(cur->flags()) == mtThreadStack && + if (FLAGS_TO_MEMORY_TYPE(reserved_rgn->flags()) == mtThreadStack && FLAGS_TO_MEMORY_TYPE(rec->flags()) != mtThreadStack) { return true; } - cur = (VMMemRegion*)next(); - while (cur != NULL && cur->is_committed_region()) { + // if the reserved region has any committed regions + VMMemRegion* committed_rgn = (VMMemRegion*)next(); + while (committed_rgn != NULL && committed_rgn->is_committed_region()) { // duplicated commit records - if(cur->contains_region(rec)) { + if(committed_rgn->contains_region(rec)) { return true; - } - if (cur->base() > rec->addr()) { - // committed regions can not overlap - assert(rec->addr() + rec->size() <= cur->base(), "Can not overlap"); - if (rec->addr() + rec->size() == cur->base()) { - cur->expand_region(rec->addr(), rec->size()); - return true; + } else if (committed_rgn->overlaps_region(rec)) { + // overlaps front part + if (rec->addr() < committed_rgn->addr()) { + committed_rgn->expand_region(rec->addr(), + committed_rgn->addr() - rec->addr()); } else { - return insert_record(rec); + // overlaps tail part + address committed_rgn_end = committed_rgn->addr() + + committed_rgn->size(); + assert(committed_rgn_end < rec->addr() + rec->size(), + "overlap tail part"); + committed_rgn->expand_region(committed_rgn_end, + (rec->addr() + rec->size()) - committed_rgn_end); } - } else if (cur->base() + cur->size() == rec->addr()) { - cur->expand_region(rec->addr(), rec->size()); + } else if (committed_rgn->base() + committed_rgn->size() == rec->addr()) { + // adjunct each other + committed_rgn->expand_region(rec->addr(), rec->size()); VMMemRegion* next_reg = (VMMemRegion*)next(); // see if we can consolidate next committed region if (next_reg != NULL && next_reg->is_committed_region() && - next_reg->base() == cur->base() + cur->size()) { - cur->expand_region(next_reg->base(), next_reg->size()); + next_reg->base() == committed_rgn->base() + committed_rgn->size()) { + committed_rgn->expand_region(next_reg->base(), next_reg->size()); + // delete merged region remove(); } return true; + } else if (committed_rgn->base() > rec->addr()) { + // found the location, insert this committed region + return insert_record(rec); } - cur = (VMMemRegion*)next(); + committed_rgn = (VMMemRegion*)next(); } return insert_record(rec); } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/utilities/growableArray.hpp --- a/hotspot/src/share/vm/utilities/growableArray.hpp Fri Nov 09 14:47:22 2012 -0800 +++ b/hotspot/src/share/vm/utilities/growableArray.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -217,7 +217,12 @@ return missed; } - E at(int i) const { + E& at(int i) { + assert(0 <= i && i < _len, "illegal index"); + return _data[i]; + } + + E const& at(int i) const { assert(0 <= i && i < _len, "illegal index"); return _data[i]; } diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/utilities/pair.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/utilities/pair.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_VM_UTILITIES_PAIR_HPP +#define SHARE_VM_UTILITIES_PAIR_HPP + +#include "memory/allocation.hpp" +#include "utilities/top.hpp" + +template +class Pair : public ALLOC_BASE { + public: + T first; + V second; + + Pair() {} + Pair(T t, V v) : first(t), second(v) {} +}; + + +#endif // SHARE_VM_UTILITIES_PAIR_HPP diff -r 0e685b019743 -r a7496bb56968 hotspot/src/share/vm/utilities/resourceHash.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/vm/utilities/resourceHash.hpp Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#ifndef SHARE_VM_UTILITIES_RESOURCEHASH_HPP +#define SHARE_VM_UTILITIES_RESOURCEHASH_HPP + +#include "memory/allocation.hpp" +#include "utilities/top.hpp" + +template struct ResourceHashtableFns { + typedef unsigned (*hash_fn)(K const&); + typedef bool (*equals_fn)(K const&, K const&); +}; + +template unsigned primitive_hash(const K& k) { + unsigned hash = (unsigned)((uintptr_t)k); + return hash ^ (hash > 3); // just in case we're dealing with aligned ptrs +} + +template bool primitive_equals(const K& k0, const K& k1) { + return k0 == k1; +} + +template< + typename K, typename V, + typename ResourceHashtableFns::hash_fn HASH = primitive_hash, + typename ResourceHashtableFns::equals_fn EQUALS = primitive_equals, + unsigned SIZE = 256 + > +class ResourceHashtable : public ResourceObj { + private: + + class Node : public ResourceObj { + public: + unsigned _hash; + K _key; + V _value; + Node* _next; + + Node(unsigned hash, K const& key, V const& value) : + _hash(hash), _key(key), _value(value), _next(NULL) {} + }; + + Node* _table[SIZE]; + + // Returns a pointer to where the node where the value would reside if + // it's in the table. + Node** lookup_node(unsigned hash, K const& key) { + unsigned index = hash % SIZE; + Node** ptr = &_table[index]; + while (*ptr != NULL) { + Node* node = *ptr; + if (node->_hash == hash && EQUALS(key, node->_key)) { + break; + } + ptr = &(node->_next); + } + return ptr; + } + + Node const** lookup_node(unsigned hash, K const& key) const { + return const_cast( + const_cast(this)->lookup_node(hash, key)); + } + + public: + ResourceHashtable() { memset(_table, 0, SIZE * sizeof(Node*)); } + + bool contains(K const& key) const { + return get(key) != NULL; + } + + V* get(K const& key) const { + unsigned hv = HASH(key); + Node const** ptr = lookup_node(hv, key); + if (*ptr != NULL) { + return const_cast(&(*ptr)->_value); + } else { + return NULL; + } + } + + // Inserts or replaces a value in the table + void put(K const& key, V const& value) { + unsigned hv = HASH(key); + Node** ptr = lookup_node(hv, key); + if (*ptr != NULL) { + (*ptr)->_value = value; + } else { + *ptr = new Node(hv, key, value); + } + } + + // ITER contains bool do_entry(K const&, V const&), which will be + // called for each entry in the table. If do_entry() returns false, + // the iteration is cancelled. + template + void iterate(ITER* iter) const { + Node* const* bucket = _table; + while (bucket < &_table[SIZE]) { + Node* node = *bucket; + while (node != NULL) { + bool cont = iter->do_entry(node->_key, node->_value); + if (!cont) { return; } + node = node->_next; + } + ++bucket; + } + } +}; + + +#endif // SHARE_VM_UTILITIES_RESOURCEHASH_HPP diff -r 0e685b019743 -r a7496bb56968 hotspot/test/compiler/8002069/Test8002069.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/compiler/8002069/Test8002069.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +/** + * @test + * @bug 8002069 + * @summary Assert failed in C2: assert(field->edge_count() > 0) failed: sanity + * + * @run main/othervm -Xmx32m -XX:+IgnoreUnrecognizedVMOptions -Xbatch -XX:CompileCommand=exclude,Test8002069.dummy Test8002069 + */ + +abstract class O { + int f; + public O() { f = 5; } + abstract void put(int i); + public int foo(int i) { + put(i); + return i; + } +}; + +class A extends O { + int[] a; + public A(int s) { + a = new int[s]; + } + public void put(int i) { + a[i%a.length] = i; + } +} + +class B extends O { + int sz; + int[] a; + public B(int s) { + sz = s; + a = new int[s]; + } + public void put(int i) { + a[i%sz] = i; + } +} + +public class Test8002069 { + public static void main(String args[]) { + int sum = 0; + for (int i=0; i<8000; i++) { + sum += test1(i); + } + for (int i=0; i<100000; i++) { + sum += test2(i); + } + System.out.println("PASSED. sum = " + sum); + } + + private O o; + + private int foo(int i) { + return o.foo(i); + } + static int test1(int i) { + Test8002069 t = new Test8002069(); + t.o = new A(5); + return t.foo(i); + } + static int test2(int i) { + Test8002069 t = new Test8002069(); + t.o = new B(5); + dummy(i); + return t.foo(i); + } + + static int dummy(int i) { + return i*2; + } +} + diff -r 0e685b019743 -r a7496bb56968 jaxp/.hgtags --- a/jaxp/.hgtags Fri Nov 09 14:47:22 2012 -0800 +++ b/jaxp/.hgtags Wed Jul 05 18:29:53 2017 +0200 @@ -185,3 +185,4 @@ 6b1db0b41d2f6e2a7b3bdbc8a8db823b47752906 jdk8-b61 5d0fa0108d028c05753a47bcf2a598357dabf0c0 jdk8-b62 192d8a244bc36427757866e9fb3a08938c0e674c jdk8-b63 +27ab79568c34abf80958d5fa8c04fd1740d243da jdk8-b64 diff -r 0e685b019743 -r a7496bb56968 jaxws/.hgtags --- a/jaxws/.hgtags Fri Nov 09 14:47:22 2012 -0800 +++ b/jaxws/.hgtags Wed Jul 05 18:29:53 2017 +0200 @@ -185,3 +185,4 @@ 97e5e74e2a341d9142ce28043912a3c255e28e03 jdk8-b61 d265b9b4c0f55c23a1c9fda02a8052fd9df2eec5 jdk8-b62 86989f702267debe16d13720d5ae7ae9839796f4 jdk8-b63 +5ded18a14bcc80b2a253f2b84da0073a0ecac665 jdk8-b64 diff -r 0e685b019743 -r a7496bb56968 jdk/.hgtags --- a/jdk/.hgtags Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/.hgtags Wed Jul 05 18:29:53 2017 +0200 @@ -185,3 +185,4 @@ 61ddb3fd000a09ab05bff1940b0ac211661e94cf jdk8-b61 50b8b17449d200c66bfd68fb4f3a9197432c9e2b jdk8-b62 f117a3e06f78a258074674ad17601f99bcb1ce0d jdk8-b63 +26dbd73fb7662a29b3e47179fdc88a0bfa4e231e jdk8-b64 diff -r 0e685b019743 -r a7496bb56968 jdk/make/common/Defs-linux.gmk --- a/jdk/make/common/Defs-linux.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/common/Defs-linux.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -111,21 +111,18 @@ # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - # Default OBJCOPY comes from GNU Binutils on Linux: - DEF_OBJCOPY=/usr/bin/objcopy - ifdef CROSS_COMPILE_ARCH - # don't try to generate .debuginfo files when cross compiling - _JUNK_ := $(shell \ - echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \ - "skipping .debuginfo generation.") - OBJCOPY= + ifndef CROSS_COMPILE_ARCH + # Default OBJCOPY comes from GNU Binutils on Linux: + DEF_OBJCOPY=/usr/bin/objcopy else - OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) - ifneq ($(ALT_OBJCOPY),) - _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") - # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path - OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) - endif + # Assume objcopy is part of the cross-compilation toolkit + DEF_OBJCOPY=$(COMPILER_PATH)/objcopy + endif + OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) + ifneq ($(ALT_OBJCOPY),) + _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") + # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path + OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) endif # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the @@ -137,7 +134,7 @@ ifeq ($(OBJCOPY),) _JUNK_ := $(shell \ - echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") + echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files. You may need to set ALT_OBJCOPY.") ENABLE_FULL_DEBUG_SYMBOLS=0 else _JUNK_ := $(shell \ diff -r 0e685b019743 -r a7496bb56968 jdk/make/common/shared/Defs-control.gmk --- a/jdk/make/common/shared/Defs-control.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/common/shared/Defs-control.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -88,9 +88,9 @@ dummy := $(shell $(MKDIR) -p $(TEMP_DIR)) # The language version we want for this jdk build -SOURCE_LANGUAGE_VERSION=7 +SOURCE_LANGUAGE_VERSION=8 # The class version we want for this jdk build -TARGET_CLASS_VERSION=7 +TARGET_CLASS_VERSION=8 # The MESSAGE, WARNING and ERROR files are used to store sanity check and # source check messages, warnings and errors. diff -r 0e685b019743 -r a7496bb56968 jdk/make/common/shared/Defs-java.gmk --- a/jdk/make/common/shared/Defs-java.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/common/shared/Defs-java.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -143,12 +143,12 @@ endif # Add the source level -SOURCE_LANGUAGE_VERSION = 7 +SOURCE_LANGUAGE_VERSION = 8 LANGUAGE_VERSION = -source $(SOURCE_LANGUAGE_VERSION) JAVACFLAGS += $(LANGUAGE_VERSION) # Add the class version we want -TARGET_CLASS_VERSION = 7 +TARGET_CLASS_VERSION = 8 CLASS_VERSION = -target $(TARGET_CLASS_VERSION) JAVACFLAGS += $(CLASS_VERSION) JAVACFLAGS += -encoding ascii diff -r 0e685b019743 -r a7496bb56968 jdk/make/java/invoke/Makefile --- a/jdk/make/java/invoke/Makefile Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/java/invoke/Makefile Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -36,7 +36,7 @@ # The sources built here use new language syntax to generate # method handle calls. Let's be sure we are using that format. -LANGUAGE_VERSION = -source 7 -CLASS_VERSION = -target 7 +LANGUAGE_VERSION = -source 8 +CLASS_VERSION = -target 8 include $(BUILDDIR)/common/Classes.gmk diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/VERSION --- a/jdk/make/sun/javazic/tzdata/VERSION Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/VERSION Wed Jul 05 18:29:53 2017 +0200 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2012c +tzdata2012i diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/africa --- a/jdk/make/sun/javazic/tzdata/africa Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/africa Wed Jul 05 18:29:53 2017 +0200 @@ -260,7 +260,7 @@ # I received a mail from an airline which says that the daylight # saving time in Egypt will end in the night of 2007-09-06 to 2007-09-07. # From Jesper Norgaard Welen (2007-08-15): [The following agree:] -# http://www.nentjes.info/Bill/bill5.htm +# http://www.nentjes.info/Bill/bill5.htm # http://www.timeanddate.com/worldclock/city.html?n=53 # From Steffen Thorsen (2007-09-04): The official information...: # http://www.sis.gov.eg/En/EgyptOnline/Miscellaneous/000002/0207000000000000001580.htm @@ -314,18 +314,18 @@ # in September. # From Steffen Thorsen (2009-08-11): -# We have been able to confirm the August change with the Egyptian Cabinet +# We have been able to confirm the August change with the Egyptian Cabinet # Information and Decision Support Center: # # http://www.timeanddate.com/news/time/egypt-dst-ends-2009.html # -# +# # The Middle East News Agency # # http://www.mena.org.eg/index.aspx # # also reports "Egypt starts winter time on August 21" -# today in article numbered "71, 11/08/2009 12:25 GMT." +# today in article numbered "71, 11/08/2009 12:25 GMT." # Only the title above is available without a subscription to their service, # and can be found by searching for "winter" in their search engine # (at least today). @@ -504,7 +504,7 @@ # From Steffen Thorsen (2008-06-25): # Mauritius plans to observe DST from 2008-11-01 to 2009-03-31 on a trial # basis.... -# It seems that Mauritius observed daylight saving time from 1982-10-10 to +# It seems that Mauritius observed daylight saving time from 1982-10-10 to # 1983-03-20 as well, but that was not successful.... # http://www.timeanddate.com/news/time/mauritius-daylight-saving-time.html @@ -528,12 +528,12 @@ # than previously announced (2008-11-01 to 2009-03-31). The new start # date is 2008-10-26 at 02:00 and the new end date is 2009-03-27 (no time # given, but it is probably at either 2 or 3 wall clock time). -# -# A little strange though, since the article says that they moved the date -# to align itself with Europe and USA which also change time on that date, -# but that means they have not paid attention to what happened in -# USA/Canada last year (DST ends first Sunday in November). I also wonder -# why that they end on a Friday, instead of aligning with Europe which +# +# A little strange though, since the article says that they moved the date +# to align itself with Europe and USA which also change time on that date, +# but that means they have not paid attention to what happened in +# USA/Canada last year (DST ends first Sunday in November). I also wonder +# why that they end on a Friday, instead of aligning with Europe which # changes two days later. # From Alex Krivenyshev (2008-07-11): @@ -592,7 +592,7 @@ # # From Arthur David Olson (2009-07-11): -# The "mauritius-dst-will-not-repeat" wrapup includes this: +# The "mauritius-dst-will-not-repeat" wrapup includes this: # "The trial ended on March 29, 2009, when the clocks moved back by one hour # at 2am (or 02:00) local time..." @@ -686,8 +686,8 @@ # XXX--guess that it is only Morocco for now; guess only 2008 for now. # From Steffen Thorsen (2008-08-27): -# Morocco will change the clocks back on the midnight between August 31 -# and September 1. They originally planned to observe DST to near the end +# Morocco will change the clocks back on the midnight between August 31 +# and September 1. They originally planned to observe DST to near the end # of September: # # One article about it (in French): @@ -821,6 +821,23 @@ # "...à partir du dernier dimance d'avril et non fins mars, # comme annoncé précédemment." +# From Milamber Space Network (2012-07-17): +# The official return to GMT is announced by the Moroccan government: +# +# http://www.mmsp.gov.ma/fr/actualites.aspx?id=288 [in French] +# +# +# Google translation, lightly edited: +# Back to the standard time of the Kingdom (GMT) +# Pursuant to Decree No. 2-12-126 issued on 26 Jumada (I) 1433 (April 18, +# 2012) and in accordance with the order of Mr. President of the +# Government No. 3-47-12 issued on 24 Sha'ban (11 July 2012), the Ministry +# of Public Service and Administration Modernization announces the return +# of the legal time of the Kingdom (GMT) from Friday, July 20, 2012 until +# Monday, August 20, 2012. So the time will be delayed by 60 minutes from +# 3:00 am Friday, July 20, 2012 and will again be advanced by 60 minutes +# August 20, 2012 from 2:00 am. + # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Morocco 1939 only - Sep 12 0:00 1:00 S @@ -848,6 +865,8 @@ Rule Morocco 2011 only - Jul 31 0 0 - Rule Morocco 2012 max - Apr lastSun 2:00 1:00 S Rule Morocco 2012 max - Sep lastSun 3:00 0 - +Rule Morocco 2012 only - Jul 20 3:00 0 - +Rule Morocco 2012 only - Aug 20 2:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 @@ -876,7 +895,7 @@ # Forecasting Riaan van Zyl explained that the far eastern parts of # the country are close to 40 minutes earlier in sunrise than the rest # of the country. -# +# # From Paul Eggert (2007-03-31): # Apparently the Caprivi Strip informally observes Botswana time, but # we have no details. In the meantime people there can use Africa/Gaborone. diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/asia --- a/jdk/make/sun/javazic/tzdata/asia Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/asia Wed Jul 05 18:29:53 2017 +0200 @@ -124,7 +124,7 @@ # From Alexander Krivenyshev (2012-02-10): # According to News Armenia, on Feb 9, 2012, # http://newsarmenia.ru/society/20120209/42609695.html -# +# # The Armenia National Assembly adopted final reading of Amendments to the # Law "On procedure of calculation time on the territory of the Republic of # Armenia" according to which Armenia [is] abolishing Daylight Saving Time. @@ -204,15 +204,15 @@ # # From A. N. M. Kamrus Saadat (2009-06-15): -# Finally we've got the official mail regarding DST start time where DST start -# time is mentioned as Jun 19 2009, 23:00 from BTRC (Bangladesh -# Telecommunication Regulatory Commission). +# Finally we've got the official mail regarding DST start time where DST start +# time is mentioned as Jun 19 2009, 23:00 from BTRC (Bangladesh +# Telecommunication Regulatory Commission). # # No DST end date has been announced yet. # From Alexander Krivenyshev (2009-09-25): -# Bangladesh won't go back to Standard Time from October 1, 2009, -# instead it will continue DST measure till the cabinet makes a fresh decision. +# Bangladesh won't go back to Standard Time from October 1, 2009, +# instead it will continue DST measure till the cabinet makes a fresh decision. # # Following report by same newspaper-"The Daily Star Friday": # "DST change awaits cabinet decision-Clock won't go back by 1-hr from Oct 1" @@ -226,8 +226,8 @@ # From Steffen Thorsen (2009-10-13): # IANS (Indo-Asian News Service) now reports: -# Bangladesh has decided that the clock advanced by an hour to make -# maximum use of daylight hours as an energy saving measure would +# Bangladesh has decided that the clock advanced by an hour to make +# maximum use of daylight hours as an energy saving measure would # "continue for an indefinite period." # # One of many places where it is published: @@ -255,7 +255,7 @@ # From Alexander Krivenyshev (2010-03-22): # According to Bangladesh newspaper "The Daily Star," -# Cabinet cancels Daylight Saving Time +# Cabinet cancels Daylight Saving Time # # http://www.thedailystar.net/newDesign/latest_news.php?nid=22817 # @@ -383,11 +383,11 @@ # observing daylight saving time in 1986. # # From Thomas S. Mullaney (2008-02-11): -# I think you're combining two subjects that need to treated -# separately: daylight savings (which, you're correct, wasn't -# implemented until the 1980s) and the unified time zone centered near -# Beijing (which was implemented in 1949). Briefly, there was also a -# "Lhasa Time" in Tibet and "Urumqi Time" in Xinjiang. The first was +# I think you're combining two subjects that need to treated +# separately: daylight savings (which, you're correct, wasn't +# implemented until the 1980s) and the unified time zone centered near +# Beijing (which was implemented in 1949). Briefly, there was also a +# "Lhasa Time" in Tibet and "Urumqi Time" in Xinjiang. The first was # ceased, and the second eventually recognized (again, in the 1980s). # # From Paul Eggert (2008-06-30): @@ -524,7 +524,7 @@ # as of 2009-10-28: # Year Period # 1941 1 Apr to 30 Sep -# 1942 Whole year +# 1942 Whole year # 1943 Whole year # 1944 Whole year # 1945 Whole year @@ -615,16 +615,16 @@ # From Arthur David Olson (2010-04-07): # Here's Google's translation of the table at the bottom of the "summert.htm" page: # Decade Name Start and end date -# Republic of China 34 years to 40 years (AD 1945-1951 years) Summer Time May 1 to September 30 -# 41 years of the Republic of China (AD 1952) Daylight Saving Time March 1 to October 31 -# Republic of China 42 years to 43 years (AD 1953-1954 years) Daylight Saving Time April 1 to October 31 -# In the 44 years to 45 years (AD 1955-1956 years) Daylight Saving Time April 1 to September 30 -# Republic of China 46 years to 48 years (AD 1957-1959) Summer Time April 1 to September 30 -# Republic of China 49 years to 50 years (AD 1960-1961) Summer Time June 1 to September 30 -# Republic of China 51 years to 62 years (AD 1962-1973 years) Stop Summer Time -# Republic of China 63 years to 64 years (1974-1975 AD) Daylight Saving Time April 1 to September 30 -# Republic of China 65 years to 67 years (1976-1978 AD) Stop Daylight Saving Time -# Republic of China 68 years (AD 1979) Daylight Saving Time July 1 to September 30 +# Republic of China 34 years to 40 years (AD 1945-1951 years) Summer Time May 1 to September 30 +# 41 years of the Republic of China (AD 1952) Daylight Saving Time March 1 to October 31 +# Republic of China 42 years to 43 years (AD 1953-1954 years) Daylight Saving Time April 1 to October 31 +# In the 44 years to 45 years (AD 1955-1956 years) Daylight Saving Time April 1 to September 30 +# Republic of China 46 years to 48 years (AD 1957-1959) Summer Time April 1 to September 30 +# Republic of China 49 years to 50 years (AD 1960-1961) Summer Time June 1 to September 30 +# Republic of China 51 years to 62 years (AD 1962-1973 years) Stop Summer Time +# Republic of China 63 years to 64 years (1974-1975 AD) Daylight Saving Time April 1 to September 30 +# Republic of China 65 years to 67 years (1976-1978 AD) Stop Daylight Saving Time +# Republic of China 68 years (AD 1979) Daylight Saving Time July 1 to September 30 # Republic of China since 69 years (AD 1980) Stop Daylight Saving Time # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -1193,15 +1193,15 @@ # # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps -# From Paul Eggert (2005-02-22): +# From Paul Eggert (2012-10-26): # I used Ephraim Silverberg's dst-israel.el program # (2005-02-20) # along with Ed Reingold's cal-hebrew in GNU Emacs 21.4, -# to generate the transitions in this list. +# to generate the transitions from 2005 through 2012. # (I replaced "lastFri" with "Fri>=26" by hand.) -# The spring transitions below all correspond to the following Rule: +# The spring transitions all correspond to the following Rule: # -# Rule Zion 2005 max - Mar Fri>=26 2:00 1:00 D +# Rule Zion 2005 2012 - Mar Fri>=26 2:00 1:00 D # # but older zic implementations (e.g., Solaris 8) do not support # "Fri>=26" to mean April 1 in years like 2005, so for now we list the @@ -1218,39 +1218,36 @@ Rule Zion 2010 only - Sep 12 2:00 0 S Rule Zion 2011 only - Apr 1 2:00 1:00 D Rule Zion 2011 only - Oct 2 2:00 0 S -Rule Zion 2012 2015 - Mar Fri>=26 2:00 1:00 D +Rule Zion 2012 only - Mar Fri>=26 2:00 1:00 D Rule Zion 2012 only - Sep 23 2:00 0 S -Rule Zion 2013 only - Sep 8 2:00 0 S -Rule Zion 2014 only - Sep 28 2:00 0 S -Rule Zion 2015 only - Sep 20 2:00 0 S -Rule Zion 2016 only - Apr 1 2:00 1:00 D -Rule Zion 2016 only - Oct 9 2:00 0 S -Rule Zion 2017 2021 - Mar Fri>=26 2:00 1:00 D -Rule Zion 2017 only - Sep 24 2:00 0 S -Rule Zion 2018 only - Sep 16 2:00 0 S -Rule Zion 2019 only - Oct 6 2:00 0 S -Rule Zion 2020 only - Sep 27 2:00 0 S -Rule Zion 2021 only - Sep 12 2:00 0 S -Rule Zion 2022 only - Apr 1 2:00 1:00 D -Rule Zion 2022 only - Oct 2 2:00 0 S -Rule Zion 2023 2032 - Mar Fri>=26 2:00 1:00 D -Rule Zion 2023 only - Sep 24 2:00 0 S -Rule Zion 2024 only - Oct 6 2:00 0 S -Rule Zion 2025 only - Sep 28 2:00 0 S -Rule Zion 2026 only - Sep 20 2:00 0 S -Rule Zion 2027 only - Oct 10 2:00 0 S -Rule Zion 2028 only - Sep 24 2:00 0 S -Rule Zion 2029 only - Sep 16 2:00 0 S -Rule Zion 2030 only - Oct 6 2:00 0 S -Rule Zion 2031 only - Sep 21 2:00 0 S -Rule Zion 2032 only - Sep 12 2:00 0 S -Rule Zion 2033 only - Apr 1 2:00 1:00 D -Rule Zion 2033 only - Oct 2 2:00 0 S -Rule Zion 2034 2037 - Mar Fri>=26 2:00 1:00 D -Rule Zion 2034 only - Sep 17 2:00 0 S -Rule Zion 2035 only - Oct 7 2:00 0 S -Rule Zion 2036 only - Sep 28 2:00 0 S -Rule Zion 2037 only - Sep 13 2:00 0 S + +# From Ephraim Silverberg (2012-10-18): + +# Yesterday, the Interior Ministry Committee, after more than a year +# past, approved sending the proposed June 2011 changes to the Time +# Decree Law back to the Knesset for second and third (final) votes +# before the upcoming elections on Jan. 22, 2013. Hence, although the +# changes are not yet law, they are expected to be so before February 2013. +# +# As of 2013, DST starts at 02:00 on the Friday before the last Sunday in March. +# DST ends at 02:00 on the first Sunday after October 1, unless it occurs on the +# second day of the Jewish Rosh Hashana holiday, in which case DST ends a day +# later (i.e. at 02:00 the first Monday after October 2). +# [Rosh Hashana holidays are factored in until 2100.] + +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D +Rule Zion 2013 2026 - Oct Sun>=2 2:00 0 S +Rule Zion 2027 only - Oct Mon>=3 2:00 0 S +Rule Zion 2028 max - Oct Sun>=2 2:00 0 S +# The following rules are commented out for now, as they break older +# versions of zic that support only signed 32-bit timestamps, i.e., +# through 2038-01-19 03:14:07 UTC. +#Rule Zion 2028 2053 - Oct Sun>=2 2:00 0 S +#Rule Zion 2054 only - Oct Mon>=3 2:00 0 S +#Rule Zion 2055 2080 - Oct Sun>=2 2:00 0 S +#Rule Zion 2081 only - Oct Mon>=3 2:00 0 S +#Rule Zion 2082 max - Oct Sun>=2 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Jerusalem 2:20:56 - LMT 1880 @@ -1385,6 +1382,16 @@ # From Arthur David Olson (2009-04-06): # We still have Jordan switching to DST on Thursdays in 2000 and 2001. +# From Steffen Thorsen (2012-10-25): +# Yesterday the government in Jordan announced that they will not +# switch back to standard time this winter, so the will stay on DST +# until about the same time next year (at least). +# http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?NewsID=88950 +# +# From Paul Eggert (2012-10-25): +# For now, assume this is just a one-year measure. If it becomes +# permanent, we should move Jordan from EET to AST effective tomorrow. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Jordan 1973 only - Jun 6 0:00 1:00 S Rule Jordan 1973 1975 - Oct 1 0:00 0 - @@ -1413,7 +1420,8 @@ Rule Jordan 2003 only - Oct 24 0:00s 0 - Rule Jordan 2004 only - Oct 15 0:00s 0 - Rule Jordan 2005 only - Sep lastFri 0:00s 0 - -Rule Jordan 2006 max - Oct lastFri 0:00s 0 - +Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 - +Rule Jordan 2013 max - Oct lastFri 0:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Amman 2:23:44 - LMT 1931 2:00 Jordan EE%sT @@ -1858,15 +1866,15 @@ # shown 8 per cent higher consumption of electricity. # From Alex Krivenyshev (2008-05-15): -# -# Here is an article that Pakistan plan to introduce Daylight Saving Time +# +# Here is an article that Pakistan plan to introduce Daylight Saving Time # on June 1, 2008 for 3 months. -# -# "... The federal cabinet on Wednesday announced a new conservation plan to help -# reduce load shedding by approving the closure of commercial centres at 9pm and -# moving clocks forward by one hour for the next three months. +# +# "... The federal cabinet on Wednesday announced a new conservation plan to help +# reduce load shedding by approving the closure of commercial centres at 9pm and +# moving clocks forward by one hour for the next three months. # ...." -# +# # # http://www.worldtimezone.net/dst_news/dst_news_pakistan01.html # @@ -1926,7 +1934,7 @@ # Government has decided to restore the previous time by moving the # clocks backward by one hour from October 1. A formal announcement to # this effect will be made after the Prime Minister grants approval in -# this regard." +# this regard." # # http://www.thenews.com.pk/updates.asp?id=87168 # @@ -2222,7 +2230,7 @@ # # http://www.maannews.net/eng/ViewDetails.aspx?ID=306795 # -# the clocks were set back one hour at 2010-08-11 00:00:00 local time in +# the clocks were set back one hour at 2010-08-11 00:00:00 local time in # Gaza and the West Bank. # Some more background info: # @@ -2261,7 +2269,7 @@ # The rules for Egypt are stolen from the `africa' file. # From Steffen Thorsen (2011-09-30): -# West Bank did end Daylight Saving Time this morning/midnight (2011-09-30 +# West Bank did end Daylight Saving Time this morning/midnight (2011-09-30 # 00:00). # So West Bank and Gaza now have the same time again. # @@ -2316,6 +2324,8 @@ # From Arthur David Olson (2011-09-20): # 2011 transitions per http://www.timeanddate.com as of 2011-09-20. +# From Paul Eggert (2012-10-12): +# 2012 transitions per http://www.timeanddate.com as of 2012-10-12. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct @@ -2326,7 +2336,7 @@ 2:00 Palestine EE%sT 2011 Apr 2 12:01 2:00 1:00 EEST 2011 Aug 1 2:00 - EET 2012 Mar 30 - 2:00 1:00 EEST 2012 Sep 28 + 2:00 1:00 EEST 2012 Sep 21 1:00 2:00 - EET Zone Asia/Hebron 2:20:23 - LMT 1900 Oct @@ -2341,7 +2351,7 @@ 2:00 - EET 2011 Aug 30 2:00 1:00 EEST 2011 Sep 30 3:00 2:00 - EET 2012 Mar 30 - 2:00 1:00 EEST 2012 Sep 28 3:00 + 2:00 1:00 EEST 2012 Sep 21 1:00 2:00 - EET # Paracel Is @@ -2535,19 +2545,19 @@ # having it between Wednesday and Thursday (two workdays in Syria) since the # weekend in Syria is not Saturday and Sunday, but Friday and Saturday. So now # it is implemented at midnight of the last workday before weekend... -# +# # From Steffen Thorsen (2007-10-27): # Jesper Norgaard Welen wrote: -# +# # > "Winter local time in Syria will be observed at midnight of Thursday 1 # > November 2007, and the clock will be put back 1 hour." -# +# # I found confirmation on this in this gov.sy-article (Arabic): # http://wehda.alwehda.gov.sy/_print_veiw.asp?FileName=12521710520070926111247 -# +# # which using Google's translate tools says: -# Council of Ministers also approved the commencement of work on -# identifying the winter time as of Friday, 2/11/2007 where the 60th +# Council of Ministers also approved the commencement of work on +# identifying the winter time as of Friday, 2/11/2007 where the 60th # minute delay at midnight Thursday 1/11/2007. Rule Syria 2007 only - Nov Fri>=1 0:00 0 - @@ -2613,8 +2623,8 @@ # # From Steffen Thorsen (2009-10-27): -# The Syrian Arab News Network on 2009-09-29 reported that Syria will -# revert back to winter (standard) time on midnight between Thursday +# The Syrian Arab News Network on 2009-09-29 reported that Syria will +# revert back to winter (standard) time on midnight between Thursday # 2009-10-29 and Friday 2009-10-30: # # http://www.sana.sy/ara/2/2009/09/29/247012.htm (Arabic) diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/australasia --- a/jdk/make/sun/javazic/tzdata/australasia Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/australasia Wed Jul 05 18:29:53 2017 +0200 @@ -306,9 +306,9 @@ # # From Alexander Krivenyshev (2010-10-24): -# According to Radio Fiji and Fiji Times online, Fiji will end DST 3 +# According to Radio Fiji and Fiji Times online, Fiji will end DST 3 # weeks earlier than expected - on March 6, 2011, not March 27, 2011... -# Here is confirmation from Government of the Republic of the Fiji Islands, +# Here is confirmation from Government of the Republic of the Fiji Islands, # Ministry of Information (fiji.gov.fj) web site: # # http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=2608:daylight-savings&catid=71:press-releases&Itemid=155 @@ -319,15 +319,15 @@ # # From Steffen Thorsen (2011-10-03): -# Now the dates have been confirmed, and at least our start date +# Now the dates have been confirmed, and at least our start date # assumption was correct (end date was one week wrong). # # # www.fiji.gov.fj/index.php?option=com_content&view=article&id=4966:daylight-saving-starts-in-fiji&catid=71:press-releases&Itemid=155 # # which says -# Members of the public are reminded to change their time to one hour in -# advance at 2am to 3am on October 23, 2011 and one hour back at 3am to +# Members of the public are reminded to change their time to one hour in +# advance at 2am to 3am on October 23, 2011 and one hour back at 3am to # 2am on February 26 next year. # From Ken Rylander (2011-10-24) @@ -344,15 +344,23 @@ # The commencement of daylight saving will remain unchanged and start # on the 23rd of October, 2011. +# From the Fiji Government Online Portal (2012-08-21) via Steffen Thorsen: +# The Minister for Labour, Industrial Relations and Employment Mr Jone Usamate +# today confirmed that Fiji will start daylight savings at 2 am on Sunday 21st +# October 2012 and end at 3 am on Sunday 20th January 2013. +# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=6702&catid=71&Itemid=155 +# +# From Paul Eggert (2012-08-31): +# For now, guess a pattern of the penultimate Sundays in October and January. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S Rule Fiji 1999 2000 - Feb lastSun 3:00 0 - Rule Fiji 2009 only - Nov 29 2:00 1:00 S Rule Fiji 2010 only - Mar lastSun 3:00 0 - -Rule Fiji 2010 only - Oct 24 2:00 1:00 S +Rule Fiji 2010 max - Oct Sun>=18 2:00 1:00 S Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - -Rule Fiji 2011 only - Oct 23 2:00 1:00 S -Rule Fiji 2012 only - Jan 22 3:00 0 - +Rule Fiji 2012 max - Jan Sun>=18 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:53:40 - LMT 1915 Oct 26 # Suva 12:00 Fiji FJ%sT # Fiji Time @@ -581,7 +589,7 @@ # From David Zuelke (2011-05-09): # Subject: Samoa to move timezone from east to west of international date line -# +# # # http://www.morningstar.co.uk/uk/markets/newsfeeditem.aspx?id=138501958347963 # @@ -643,6 +651,23 @@ # Although Samoa has used Daylight Saving Time in the 2010-2011 and 2011-2012 # seasons, there is not yet any indication that this trend will continue on # a regular basis. For now, we have explicitly listed the transitions below. +# +# From Nicky (2012-09-10): +# Daylight Saving Time commences on Sunday 30th September 2012 and +# ends on Sunday 7th of April 2013. +# +# Please find link below for more information. +# http://www.mcil.gov.ws/mcil_publications.html +# +# That publication also includes dates for Summer of 2013/4 as well +# which give the impression of a pattern in selecting dates for the +# future, so for now, we will guess this will continue. + +# Western Samoa +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule WS 2012 max - Sep lastSun 3:00 1 D +Rule WS 2012 max - Apr Sun>=1 4:00 0 - +# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Apia 12:33:04 - LMT 1879 Jul 5 -11:26:56 - LMT 1911 -11:30 - SAMT 1950 # Samoa Time @@ -650,8 +675,8 @@ -11:00 1:00 WSDT 2011 Apr 2 4:00 -11:00 - WST 2011 Sep 24 3:00 -11:00 1:00 WSDT 2011 Dec 30 - 13:00 1:00 WSDT 2012 Apr 1 4:00 - 13:00 - WST + 13:00 1:00 WSDT 2012 Apr Sun>=1 4:00 + 13:00 WS WS%sT # Solomon Is # excludes Bougainville, for which see Papua New Guinea @@ -663,25 +688,25 @@ # # From Gwillim Law (2011-12-29) # A correspondent informed me that Tokelau, like Samoa, will be skipping -# December 31 this year, thereby changing its time zone from UTC-10 to -# UTC+14. When I tried to verify this statement, I found a confirming -# article in Time magazine online -# -# (http://www.time.com/time/world/article/0,8599,2103243,00.html). -# +# December 31 this year ... # -# From Jonathan Leffler (2011-12-29) -# Information from the BBC to the same effect: -# -# http://www.bbc.co.uk/news/world-asia-16351377 -# +# From Steffen Thorsen (2012-07-25) +# ... we double checked by calling hotels and offices based in Tokelau asking +# about the time there, and they all told a time that agrees with UTC+13.... +# Shanks says UTC-10 from 1901 [but] ... there is a good chance the change +# actually was to UTC-11 back then. # -# Patch supplied by Tim Parenti (2011-12-29) +# From Paul Eggert (2012-07-25) +# A Google Books snippet of Appendix to the Journals of the House of +# Representatives of New Zealand, Session 1948, +# , page 65, says Tokelau +# was "11 hours slow on G.M.T." Go with Thorsen and assume Shanks & Pottenger +# are off by an hour starting in 1901. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Fakaofo -11:24:56 - LMT 1901 - -10:00 - TKT 2011 Dec 30 # Tokelau Time - 14:00 - TKT + -11:00 - TKT 2011 Dec 30 # Tokelau Time + 13:00 - TKT # Tonga # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -1362,22 +1387,22 @@ # See "southeast Australia" above for 2008 and later. # From Steffen Thorsen (2009-04-28): -# According to the official press release, South Australia's extended daylight -# saving period will continue with the same rules as used during the 2008-2009 +# According to the official press release, South Australia's extended daylight +# saving period will continue with the same rules as used during the 2008-2009 # summer (southern hemisphere). -# +# # From # # http://www.safework.sa.gov.au/uploaded_files/DaylightDatesSet.pdf # -# The extended daylight saving period that South Australia has been trialling +# The extended daylight saving period that South Australia has been trialling # for over the last year is now set to be ongoing. -# Daylight saving will continue to start on the first Sunday in October each +# Daylight saving will continue to start on the first Sunday in October each # year and finish on the first Sunday in April the following year. -# Industrial Relations Minister, Paul Caica, says this provides South Australia -# with a consistent half hour time difference with NSW, Victoria, Tasmania and +# Industrial Relations Minister, Paul Caica, says this provides South Australia +# with a consistent half hour time difference with NSW, Victoria, Tasmania and # the ACT for all 52 weeks of the year... -# +# # We have a wrap-up here: # # http://www.timeanddate.com/news/time/south-australia-extends-dst.html diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/europe --- a/jdk/make/sun/javazic/tzdata/europe Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/europe Wed Jul 05 18:29:53 2017 +0200 @@ -597,12 +597,12 @@ # According to Kremlin press service, Russian President Dmitry Medvedev # signed a federal law "On calculation of time" on June 9, 2011. # According to the law Russia is abolishing daylight saving time. -# -# Medvedev signed a law "On the Calculation of Time" (in russian): +# +# Medvedev signed a law "On the Calculation of Time" (in russian): # # http://bmockbe.ru/events/?ID=7583 # -# +# # Medvedev signed a law on the calculation of the time (in russian): # # http://www.regnum.ru/news/polit/1413906.html @@ -1710,7 +1710,7 @@ # From Alexander Krivenyshev (2011-10-26) # NO need to divide Moldova into two timezones at this point. # As of today, Transnistria (Pridnestrovie)- Tiraspol reversed its own -# decision to abolish DST this winter. +# decision to abolish DST this winter. # Following Moldova and neighboring Ukraine- Transnistria (Pridnestrovie)- # Tiraspol will go back to winter time on October 30, 2011. # News from Moldova (in russian): @@ -2600,11 +2600,11 @@ # http://www.alomaliye.com/bkk_2002_3769.htm # From Gökdeniz Karadağ (2011-03-10): -# +# # According to the articles linked below, Turkey will change into summer # time zone (GMT+3) on March 28, 2011 at 3:00 a.m. instead of March 27. # This change is due to a nationwide exam on 27th. -# +# # # http://www.worldbulletin.net/?aType=haber&ArticleID=70872 # @@ -2721,7 +2721,7 @@ # time this year after all. # # From Udo Schwedt (2011-10-18): -# As far as I understand, the recent change to the Ukranian time zone +# As far as I understand, the recent change to the Ukranian time zone # (Europe/Kiev) to introduce permanent daylight saving time (similar # to Russia) was reverted today: # diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/leapseconds --- a/jdk/make/sun/javazic/tzdata/leapseconds Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/leapseconds Wed Jul 05 18:29:53 2017 +0200 @@ -100,8 +100,8 @@ # # # A positive leap second will be introduced at the end of June 2012. -# The sequence of dates of the UTC second markers will be: -# +# The sequence of dates of the UTC second markers will be: +# # 2012 June 30, 23h 59m 59s # 2012 June 30, 23h 59m 60s # 2012 July 1, 0h 0m 0s @@ -118,6 +118,6 @@ # # # Daniel GAMBIS -# Head +# Head # Earth Orientation Center of IERS # Observatoire de Paris, France diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/northamerica --- a/jdk/make/sun/javazic/tzdata/northamerica Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/northamerica Wed Jul 05 18:29:53 2017 +0200 @@ -501,7 +501,7 @@ -8:00 US P%sT 1946 -8:00 - PST 1969 -8:00 US P%sT 1980 Apr 27 2:00 - -9:00 US Y%sT 1980 Oct 26 2:00 + -9:00 US Y%sT 1980 Oct 26 2:00 -8:00 US P%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT @@ -1866,7 +1866,7 @@ # Here is a summary of the three clock change events in Creston's history: # 1. 1884 or 1885: adoption of Mountain Standard Time (GMT-7) # Exact date unknown -# 2. Oct 1916: switch to Pacific Standard Time (GMT-8) +# 2. Oct 1916: switch to Pacific Standard Time (GMT-8) # Exact date in October unknown; Sunday October 1 is a reasonable guess. # 3. June 1918: switch to Pacific Daylight Time (GMT-7) # Exact date in June unknown; Sunday June 2 is a reasonable guess. @@ -2696,20 +2696,20 @@ # except that it switches at midnight standard time as usual. # # From Steffen Thorsen (2007-10-25): -# Carlos Alberto Fonseca Arauz informed me that Cuba will end DST one week +# Carlos Alberto Fonseca Arauz informed me that Cuba will end DST one week # earlier - on the last Sunday of October, just like in 2006. -# +# # He supplied these references: -# +# # http://www.prensalatina.com.mx/article.asp?ID=%7B4CC32C1B-A9F7-42FB-8A07-8631AFC923AF%7D&language=ES # http://actualidad.terra.es/sociedad/articulo/cuba_llama_ahorrar_energia_cambio_1957044.htm -# +# # From Alex Kryvenishev (2007-10-25): # Here is also article from Granma (Cuba): -# +# # [Regira] el Horario Normal desde el [proximo] domingo 28 de octubre # http://www.granma.cubaweb.cu/2007/10/24/nacional/artic07.html -# +# # http://www.worldtimezone.com/dst_news/dst_news_cuba03.html # From Arthur David Olson (2008-03-09): @@ -2793,7 +2793,7 @@ # # # From Steffen Thorsen (2011-10-30) -# Cuba will end DST two weeks later this year. Instead of going back +# Cuba will end DST two weeks later this year. Instead of going back # tonight, it has been delayed to 2011-11-13 at 01:00. # # One source (Spanish) @@ -2805,11 +2805,11 @@ # # http://www.timeanddate.com/news/time/cuba-time-changes-2011.html # -# +# # From Steffen Thorsen (2012-03-01) -# According to Radio Reloj, Cuba will start DST on Midnight between March +# According to Radio Reloj, Cuba will start DST on Midnight between March # 31 and April 1. -# +# # Radio Reloj has the following info (Spanish): # # http://www.radioreloj.cu/index.php/noticias-radio-reloj/71-miscelaneas/7529-cuba-aplicara-el-horario-de-verano-desde-el-1-de-abril @@ -2820,6 +2820,13 @@ # http://www.timeanddate.com/news/time/cuba-starts-dst-2012.html # +# From Steffen Thorsen (2012-11-03): +# Radio Reloj and many other sources report that Cuba is changing back +# to standard time on 2012-11-04: +# http://www.radioreloj.cu/index.php/noticias-radio-reloj/36-nacionales/9961-regira-horario-normal-en-cuba-desde-el-domingo-cuatro-de-noviembre +# From Paul Eggert (2012-11-03): +# For now, assume the future rule is first Sunday in November. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Cuba 1928 only - Jun 10 0:00 1:00 D Rule Cuba 1928 only - Oct 10 0:00 0 S @@ -2857,7 +2864,7 @@ Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D Rule Cuba 2011 only - Nov 13 0:00s 0 S Rule Cuba 2012 only - Apr 1 0:00s 1:00 D -Rule Cuba 2012 max - Oct lastSun 0:00s 0 S +Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] diff -r 0e685b019743 -r a7496bb56968 jdk/make/sun/javazic/tzdata/southamerica --- a/jdk/make/sun/javazic/tzdata/southamerica Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/sun/javazic/tzdata/southamerica Wed Jul 05 18:29:53 2017 +0200 @@ -254,7 +254,7 @@ Rule Arg 2007 only - Dec 30 0:00 1:00 S Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 - Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S - + # From Mariano Absatz (2004-05-21): # Today it was officially published that the Province of Mendoza is changing # its timezone this winter... starting tomorrow night.... @@ -344,9 +344,9 @@ # confirms what Alex Krivenyshev has earlier sent to the tz # emailing list about that San Luis plans to return to standard # time much earlier than the rest of the country. It also -# confirms that upon request the provinces San Juan and Mendoza -# refused to follow San Luis in this change. -# +# confirms that upon request the provinces San Juan and Mendoza +# refused to follow San Luis in this change. +# # The change is supposed to take place Monday the 21.st at 0:00 # hours. As far as I understand it if this goes ahead, we need # a new timezone for San Luis (although there are also documented @@ -408,7 +408,7 @@ # # http://www.lanacion.com.ar/nota.asp?nota_id=1107912 # -# +# # The press release says: # (...) anunció que el próximo domingo a las 00:00 los puntanos deberán # atrasar una hora sus relojes. @@ -822,8 +822,8 @@ # # From Alexander Krivenyshev (2011-10-04): # State Bahia will return to Daylight savings time this year after 8 years off. -# The announcement was made by Governor Jaques Wagner in an interview to a -# television station in Salvador. +# The announcement was made by Governor Jaques Wagner in an interview to a +# television station in Salvador. # In Portuguese: # @@ -852,6 +852,15 @@ # http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6 # +# From Kelley Cook (2012-10-16): +# The governor of state of Bahia in Brazil announced on Thursday that +# due to public pressure, he is reversing the DST policy they implemented +# last year and will not be going to Summer Time on October 21st.... +# http://www.correio24horas.com.br/r/artigo/apos-pressoes-wagner-suspende-horario-de-verao-na-bahia + +# From Rodrigo Severo (2012-10-16): +# Tocantins state will have DST. +# http://noticias.terra.com.br/brasil/noticias/0,,OI6232536-EI306.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Decree 20,466 (1931-10-01) @@ -1071,7 +1080,8 @@ -3:00 Brazil BR%sT 1990 Sep 17 -3:00 - BRT 1995 Sep 14 -3:00 Brazil BR%sT 2003 Sep 24 - -3:00 - BRT + -3:00 - BRT 2012 Oct 21 + -3:00 Brazil BR%sT # # Alagoas (AL), Sergipe (SE) Zone America/Maceio -2:22:52 - LMT 1914 @@ -1090,7 +1100,8 @@ Zone America/Bahia -2:34:04 - LMT 1914 -3:00 Brazil BR%sT 2003 Sep 24 -3:00 - BRT 2011 Oct 16 - -3:00 Brazil BR%sT + -3:00 Brazil BR%sT 2012 Oct 21 + -3:00 - BRT # # Goias (GO), Distrito Federal (DF), Minas Gerais (MG), # Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR), @@ -1182,7 +1193,7 @@ # Due to drought, Chile extends Daylight Time in three weeks. This # is one-time change (Saturday 3/29 at 24:00 for America/Santiago # and Saturday 3/29 at 22:00 for Pacific/Easter) -# The Supreme Decree is located at +# The Supreme Decree is located at # # http://www.shoa.cl/servicios/supremo316.pdf # @@ -1193,7 +1204,7 @@ # From Jose Miguel Garrido (2008-03-05): # ... -# You could see the announces of the change on +# You could see the announces of the change on # # http://www.shoa.cl/noticias/2008/04hora/hora.htm # . diff -r 0e685b019743 -r a7496bb56968 jdk/make/tools/GenerateCharacter/CharacterData01.java.template --- a/jdk/make/tools/GenerateCharacter/CharacterData01.java.template Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/tools/GenerateCharacter/CharacterData01.java.template Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -311,6 +311,8 @@ case 0x011063: retval = 90; break; // BRAHMI NUMBER NINETY case 0x011064: retval = 100; break; // BRAHMI NUMBER ONE HUNDRED case 0x011065: retval = 1000; break; // BRAHMI NUMBER ONE THOUSAND + case 0x012432: retval = 216000; break; // CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH + case 0x012433: retval = 432000; break; // CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN case 0x01D36C: retval = 40; break; // COUNTING ROD TENS DIGIT FOUR case 0x01D36D: retval = 50; break; // COUNTING ROD TENS DIGIT FIVE case 0x01D36E: retval = 60; break; // COUNTING ROD TENS DIGIT SIX diff -r 0e685b019743 -r a7496bb56968 jdk/make/tools/UnicodeData/PropList.txt --- a/jdk/make/tools/UnicodeData/PropList.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/tools/UnicodeData/PropList.txt Wed Jul 05 18:29:53 2017 +0200 @@ -1,8 +1,8 @@ -# PropList-6.1.0.txt -# Date: 2011-11-30, 01:49:54 GMT [MD] +# PropList-6.2.0.txt +# Date: 2012-05-23, 20:34:59 GMT [MD] # # Unicode Character Database -# Copyright (c) 1991-2011 Unicode, Inc. +# Copyright (c) 1991-2012 Unicode, Inc. # For terms of use, see http://www.unicode.org/terms_of_use.html # For documentation, see http://www.unicode.org/reports/tr44/ diff -r 0e685b019743 -r a7496bb56968 jdk/make/tools/UnicodeData/Scripts.txt --- a/jdk/make/tools/UnicodeData/Scripts.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/tools/UnicodeData/Scripts.txt Wed Jul 05 18:29:53 2017 +0200 @@ -1,8 +1,8 @@ -# Scripts-6.1.0.txt -# Date: 2011-11-27, 05:10:50 GMT [MD] +# Scripts-6.2.0.txt +# Date: 2012-06-04, 17:21:29 GMT [MD] # # Unicode Character Database -# Copyright (c) 1991-2011 Unicode, Inc. +# Copyright (c) 1991-2012 Unicode, Inc. # For terms of use, see http://www.unicode.org/terms_of_use.html # For documentation, see http://www.unicode.org/reports/tr44/ @@ -146,7 +146,7 @@ 208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN 208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS 208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS -20A0..20B9 ; Common # Sc [26] EURO-CURRENCY SIGN..INDIAN RUPEE SIGN +20A0..20BA ; Common # Sc [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN 2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT 2102 ; Common # L& DOUBLE-STRUCK CAPITAL C 2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA @@ -576,7 +576,7 @@ E0001 ; Common # Cf LANGUAGE TAG E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG -# Total code points: 6412 +# Total code points: 6413 # ================================================ @@ -760,7 +760,7 @@ 061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK 0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE 0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH -0656..065E ; Arabic # Mn [9] ARABIC SUBSCRIPT ALEF..ARABIC FATHA WITH TWO DOTS +0656..065F ; Arabic # Mn [10] ARABIC SUBSCRIPT ALEF..ARABIC WAVY HAMZA BELOW 066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR 066E..066F ; Arabic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF 0671..06D3 ; Arabic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE @@ -827,7 +827,7 @@ 1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL -# Total code points: 1234 +# Total code points: 1235 # ================================================ @@ -1477,7 +1477,6 @@ 0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X 0485..0486 ; Inherited # Mn [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA 064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW -065F ; Inherited # Mn ARABIC WAVY HAMZA BELOW 0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF 0951..0952 ; Inherited # Mn [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA 1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA @@ -1504,7 +1503,7 @@ 1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -# Total code points: 524 +# Total code points: 523 # ================================================ diff -r 0e685b019743 -r a7496bb56968 jdk/make/tools/UnicodeData/SpecialCasing.txt --- a/jdk/make/tools/UnicodeData/SpecialCasing.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/tools/UnicodeData/SpecialCasing.txt Wed Jul 05 18:29:53 2017 +0200 @@ -1,8 +1,8 @@ -# SpecialCasing-6.1.0.txt -# Date: 2011-11-27, 05:10:51 GMT [MD] +# SpecialCasing-6.2.0.txt +# Date: 2012-05-23, 20:35:15 GMT [MD] # # Unicode Character Database -# Copyright (c) 1991-2011 Unicode, Inc. +# Copyright (c) 1991-2012 Unicode, Inc. # For terms of use, see http://www.unicode.org/terms_of_use.html # For documentation, see http://www.unicode.org/reports/tr44/ # diff -r 0e685b019743 -r a7496bb56968 jdk/make/tools/UnicodeData/UnicodeData.txt --- a/jdk/make/tools/UnicodeData/UnicodeData.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/tools/UnicodeData/UnicodeData.txt Wed Jul 05 18:29:53 2017 +0200 @@ -7190,6 +7190,7 @@ 20B7;SPESMILO SIGN;Sc;0;ET;;;;;N;;;;; 20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;; 20B9;INDIAN RUPEE SIGN;Sc;0;ET;;;;;N;;;;; +20BA;TURKISH LIRA SIGN;Sc;0;ET;;;;;N;;;;; 20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;; 20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;; 20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;; @@ -18703,8 +18704,8 @@ 1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;; 12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;; 12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;; -12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;; -12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;; +12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;216000;N;;;;; +12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;432000;N;;;;; 12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;; 12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;; 12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;; @@ -18739,8 +18740,8 @@ 12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;; 12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;; 12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;; -12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;; -12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;; +12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;; +12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;; 12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;; 12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;; 1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;; diff -r 0e685b019743 -r a7496bb56968 jdk/make/tools/UnicodeData/VERSION --- a/jdk/make/tools/UnicodeData/VERSION Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/make/tools/UnicodeData/VERSION Wed Jul 05 18:29:53 2017 +0200 @@ -1,1 +1,1 @@ -6.1.0 +6.2.0 diff -r 0e685b019743 -r a7496bb56968 jdk/makefiles/CompileNativeLibraries.gmk --- a/jdk/makefiles/CompileNativeLibraries.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/makefiles/CompileNativeLibraries.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -300,6 +300,7 @@ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_SUFFIX:=$(BUILD_LIBMLIB_LDLIBS) \ $(LDFLAGS_JDKLIB_SUFFIX),\ + LDFLAGS_SUFFIX_solaris:=-lc, \ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=mlib_image.dll" \ @@ -428,6 +429,7 @@ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \ $(call SET_SHARED_LIBRARY_ORIGIN),\ + LDFLAGS_SUFFIX_solaris:=-lc,\ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v)) $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA) @@ -710,7 +712,7 @@ LDFLAGS:=$(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_solaris:=-R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\ LDFLAGS_SUFFIX_linux:=-ljvm $(LIBM) $(LIBDL) -ljava,\ - LDFLAGS_SUFFIX_solaris:=-ljvm $(LIBM) $(LIBDL) -ljava,\ + LDFLAGS_SUFFIX_solaris:=-ljvm $(LIBM) $(LIBDL) -ljava -lc,\ LDFLAGS_SUFFIX_macosx:=-lmlib_image -ljvm $(LIBM) \ -framework Cocoa \ -framework OpenGL \ @@ -966,7 +968,7 @@ -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \ $(WIN_JAVA_LIB),\ LDFLAGS_SUFFIX_linux:=-ljvm -ljava $(LIBZ),\ - LDFLAGS_SUFFIX_solaris:=-ljvm -ljava $(LIBZ),\ + LDFLAGS_SUFFIX_solaris:=-ljvm -ljava $(LIBZ) -lc,\ LDFLAGS_SUFFIX_macosx:=$(LIBZ) -ljava -ljvm,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ @@ -1144,9 +1146,8 @@ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_SUFFIX_linux:=$(LIBDL),\ - LDFLAGS_SUFFIX_solaris:=$(LIBDL),\ + LDFLAGS_SUFFIX_solaris:=$(LIBDL) -lc,\ LDFLAGS_SUFFIX_windows:=$(LDFLAGS_JDKLIB_SUFFIX),\ - LDFLAGS_SUFFIX:=,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=jdwp.dll" \ @@ -1186,7 +1187,7 @@ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_windows:=netapi32.lib user32.lib mpr.lib advapi32.lib,\ LDFLAGS_SUFFIX_windows:=$(LDFLAGS_JDKLIB_SUFFIX),\ - LDFLAGS_SUFFIX:=,\ + LDFLAGS_SUFFIX_solaris:=-lc,\ EXCLUDE_FILES:=$(LIBJAAS_EXCLUDE_FILES),\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS) \ @@ -1217,7 +1218,7 @@ LDFLAGS_SUFFIX_linux:=$(LIBDL),\ LDFLAGS_SUFFIX_windows:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBDL),\ LDFLAGS_SUFFIX_macosx:= $(LIBDL),\ - LDFLAGS_SUFFIX:=,\ + LDFLAGS_SUFFIX_solaris:=-lc,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=jsdt.dll" \ @@ -1242,7 +1243,7 @@ INCLUDE_FILES:=cmscam02.c cmscgats.c cmscnvrt.c cmserr.c \ cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c \ cmsio1.c cmslut.c cmsmd5.c cmsmtrx.c \ - cmsnamed.c cmsopt.c cmspack.c cmspcs.c \ + cmsnamed.c cmsopt.c cmshalf.c cmspack.c cmspcs.c \ cmsplugin.c cmsps2.c cmssamp.c cmssm.c \ cmstypes.c cmsvirt.c cmswtpnt.c cmsxform.c \ LCMS.c,\ @@ -1259,7 +1260,7 @@ $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_solaris:=/usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2,\ LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\ - LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm,\ + LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\ LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\ LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ @@ -1626,7 +1627,7 @@ -framework Cocoa -framework Security -framework ApplicationServices,\ LDFLAGS_SUFFIX:=$(LIBINSTRUMENT_LDFLAGS_SUFFIX),\ LDFLAGS_SUFFIX_macosx:=-liconv $(LIBZ),\ - LDFLAGS_SUFFIX_solaris:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL),\ + LDFLAGS_SUFFIX_solaris:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc,\ LDFLAGS_SUFFIX_linux:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL),\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ @@ -1716,10 +1717,6 @@ BUILD_LIBHPROF_LDFLAGS:= -ifeq ($(OPENJDK_TARGET_OS),solaris) - BUILD_LIBHPROF_LDFLAGS += -lsocket -lnsl -lc -endif - LIBHPROF_OPTIMIZATION:=HIGHEST ifneq ($(findstring $(OPENJDK_TARGET_OS),solaris linux),) ifeq ($(ENABLE_DEBUG_SYMBOLS), yes) @@ -1727,10 +1724,6 @@ endif endif -ifneq ($(OPENJDK_TARGET_OS),windows) - BUILD_LIBHPROF_LDFLAGS += $(LIBDL) -endif - $(eval $(call SetupNativeCompilation,BUILD_LIBHPROF,\ LIBRARY:=hprof, \ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\ @@ -1744,7 +1737,9 @@ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_windows:=wsock32.lib winmm.lib advapi32.lib,\ - LDFLAGS_SUFFIX:=$(BUILD_LIBHPROF_LDFLAGS),\ + LDFLAGS_SUFFIX_linux:=$(LIBDL),\ + LDFLAGS_SUFFIX_macosx:=$(LIBDL),\ + LDFLAGS_SUFFIX_solaris:=-lsocket -lnsl $(LIBDL) -lc,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=hprof.dll" \ @@ -1768,6 +1763,7 @@ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjava_crw_demo/mapfile-vers, \ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ + LDFLAGS_SUFFIX_solaris:=-lc,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=java_crw_demo.dll" \ @@ -2392,7 +2388,7 @@ LANG:=C,\ OPTIMIZATION:=LOW, \ CFLAGS:=$(CFLAGS_JDKLIB) $(LIBAWT_HEADLESS_CFLAGS),\ - MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/mapfile-vers, \ + MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/mapfile-vers,\ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\ @@ -2402,8 +2398,8 @@ LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_ORIGIN).,\ REORDER:=$(LIBAWT_HEADLESS_REORDER), \ LDFLAGS_SUFFIX_linux:=-ljvm -lawt -lm $(LIBDL) -ljava,\ - LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX), \ - LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc,\ + LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava,\ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless)) $(BUILD_LIBAWT_HEADLESS) : $(BUILD_LIBAWT) @@ -2572,6 +2568,7 @@ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ),\ + LDFLAGS_SUFFIX_solaris:=-lc,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=splashscreen.dll" \ @@ -2647,6 +2644,7 @@ $(call SET_SHARED_LIBRARY_ORIGIN),\ LDFLAGS_SUFFIX_posix:=$(LIBDL), \ LDFLAGS_SUFFIX_windows:=winscard.lib,\ + LDFLAGS_SUFFIX_solaris:=-lc,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=j2pcsc.dll" \ @@ -2673,7 +2671,8 @@ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2gss/mapfile-vers, \ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ - LDFLAGS_SUFFIX:=$(LIBDL), \ + LDFLAGS_SUFFIX:=$(LIBDL),\ + LDFLAGS_SUFFIX_solaris:=-lc,\ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss)) BUILD_LIBRARIES += $(BUILD_LIBJ2GSS) @@ -2767,7 +2766,8 @@ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libj2pkcs11/mapfile-vers, \ LDFLAGS:=$(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN),\ - LDFLAGS_SUFFIX_posix:=$(LIBDL), \ + LDFLAGS_SUFFIX_posix:=$(LIBDL),\ + LDFLAGS_SUFFIX_solaris:=-lc,\ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ RC_FLAGS:=$(RC_FLAGS)\ -D "JDK_FNAME=j2pkcs11.dll" \ diff -r 0e685b019743 -r a7496bb56968 jdk/makefiles/CreateJars.gmk --- a/jdk/makefiles/CreateJars.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/makefiles/CreateJars.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -271,7 +271,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) RT_JAR_EXCLUDES += com/sun/nio/sctp \ - sun/nio/ch/sctp \ + sun/nio/ch/sctp endif # Find all files in the classes dir to use as dependencies. This could be more fine granular. diff -r 0e685b019743 -r a7496bb56968 jdk/makefiles/GendataTimeZone.gmk --- a/jdk/makefiles/GendataTimeZone.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/makefiles/GendataTimeZone.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -26,7 +26,7 @@ GENDATA_TIMEZONE := # TODO: read from make/sun/javazic/tzdata/VERSION -GENDATA_TIMEZONE_VERSION := tzdata2012c +GENDATA_TIMEZONE_VERSION := tzdata2012i GENDATA_TIMEZONE_DST := $(JDK_OUTPUTDIR)/lib/zi GENDATA_TIMEZONE_TMP := $(JDK_OUTPUTDIR)/gendata_timezone diff -r 0e685b019743 -r a7496bb56968 jdk/makefiles/GensrcIcons.gmk --- a/jdk/makefiles/GensrcIcons.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/makefiles/GensrcIcons.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -109,13 +109,17 @@ ifeq ($(OPENJDK_TARGET_OS),macosx) - GENSRC_OSX_ICONS = $(GENSRC_OSX_ICONS_DST)/AWTIconData.h - GENSRC_OSX_ICONS_SRC = - GENSRC_OSX_ICONS_TMP = $(JDK_OUTPUTDIR)/gensrc - GENSRC_OSX_ICONS_DST = $(GENSRC_OSX_ICONS_TMP)/sun/osxapp - -$(GENSRC_OSX_ICONS_DST)/AWTIconData.h: \ - $(JDK_TOPDIR)/src/macosx/native/sun/osxapp/resource/icons/JavaApp.icns + GENSRC_OSX_ICONS_TMP := $(JDK_OUTPUTDIR)/gensrc + GENSRC_OSX_ICONS_DST := $(GENSRC_OSX_ICONS_TMP)/sun/osxapp + GENSRC_OSX_ICONS := $(GENSRC_OSX_ICONS_DST)/AWTIconData.h + + ifdef OPENJDK + GENSRC_OSX_ICONS_SRC := $(JDK_TOPDIR)/src/macosx/native/sun/osxapp/resource/icons/JavaApp.icns + else + GENSRC_OSX_ICONS_SRC := $(JDK_TOPDIR)/src/closed/macosx/native/sun/osxapp/resource/icons/JavaApp.icns + endif + +$(GENSRC_OSX_ICONS_DST)/AWTIconData.h: $(GENSRC_OSX_ICONS_SRC) $(RM) $@ $@.tmp $(MKDIR) -p $(dir $@) $(ECHO) "static unsigned char sAWTIconData[] = { " >> $@.tmp diff -r 0e685b019743 -r a7496bb56968 jdk/makefiles/GensrcLocaleDataMetaInfo.gmk --- a/jdk/makefiles/GensrcLocaleDataMetaInfo.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/makefiles/GensrcLocaleDataMetaInfo.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -68,8 +68,9 @@ ALL_US_LOCALES += $$($1_US_LOCALES) ALL_NON_US_LOCALES += $$($1_NON_US_LOCALES) - SED_ARGS+= -e 's/$$(HASH)$1_USLocales$$(HASH)/ $$($1_US_LOCALES)/g' - SED_ARGS+= -e 's/$$(HASH)$1_NonUSLocales$$(HASH)/ $$($1_NON_US_LOCALES)/g' + # Don't sed in a space if there are no locales. + SED_ARGS+= -e 's/$$(HASH)$1_USLocales$$(HASH)/$$(if $$($1_US_LOCALES),$$(SPACE)$$($1_US_LOCALES),)/g' + SED_ARGS+= -e 's/$$(HASH)$1_NonUSLocales$$(HASH)/$$(if $$($1_NON_US_LOCALES),$$(SPACE)$$($1_NON_US_LOCALES),)/g' endef #sun.text.resources.FormatData diff -r 0e685b019743 -r a7496bb56968 jdk/makefiles/Import.gmk --- a/jdk/makefiles/Import.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/makefiles/Import.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -121,7 +121,7 @@ endif define CopyDir - $1_SRC_FILES := $(shell $(FIND) $2 -type f -a ! -name "wb.jar") + $1_SRC_FILES := $(shell $(FIND) $2 -type f -a \( -name DUMMY $(addprefix -o$(SPACE)-name$(SPACE),$4) \)) $1_DST_FILES := $$(patsubst $2/%,$3/%,$$($1_SRC_FILES)) IMPORT_TARGET_FILES += $$($1_DST_FILES) $3/% : $2/% @@ -134,9 +134,10 @@ # # Import hotspot # - -$(eval $(call CopyDir,HOTSPOT0, $(HOTSPOT_LIB_DIR), $(INSTALL_LIBRARIES_HERE))) -$(eval $(call CopyDir,HOTSPOT1, $(HOTSPOT_DIST)/lib, $(JDK_OUTPUTDIR)/lib)) +HOTSPOT_IMPORT_FILES:=$(addprefix $(LIBRARY_PREFIX), jvm.* saproc.* jsig.* sawindbg.* jvm_db.* jvm_dtrace.*) \ + Xusage.txt sa-jdi.jar +$(eval $(call CopyDir,HOTSPOT0, $(HOTSPOT_LIB_DIR), $(INSTALL_LIBRARIES_HERE), $(HOTSPOT_IMPORT_FILES))) +$(eval $(call CopyDir,HOTSPOT1, $(HOTSPOT_DIST)/lib, $(JDK_OUTPUTDIR)/lib, $(HOTSPOT_IMPORT_FILES))) JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.debuginfo) \ $(wildcard $(HOTSPOT_DIST)/jre/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) diff -r 0e685b019743 -r a7496bb56968 jdk/makefiles/Setup.gmk --- a/jdk/makefiles/Setup.gmk Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/makefiles/Setup.gmk Wed Jul 05 18:29:53 2017 +0200 @@ -45,7 +45,7 @@ JVM:=$(JAVA),\ JAVAC:=$(JAVAC_JARS),\ JAVAH:=$(JAVAH_JARS),\ - FLAGS:=-bootclasspath $(JDK_OUTPUTDIR)/classes -source 7 -target 7 -encoding ascii -XDignore.symbol.file=true $(DISABLE_WARNINGS),\ + FLAGS:=-bootclasspath $(JDK_OUTPUTDIR)/classes -source 8 -target 8 -encoding ascii -XDignore.symbol.file=true $(DISABLE_WARNINGS),\ SERVER_DIR:=$(SJAVAC_SERVER_DIR),\ SERVER_JVM:=$(SJAVAC_SERVER_JAVA))) diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,12 +55,25 @@ } static { - validTypes = new HashSet(4); + validTypes = new HashSet(17); validTypes.add("PBEWithMD5AndDES".toUpperCase()); validTypes.add("PBEWithSHA1AndDESede".toUpperCase()); validTypes.add("PBEWithSHA1AndRC2_40".toUpperCase()); + validTypes.add("PBEWithSHA1AndRC2_128".toUpperCase()); + validTypes.add("PBEWithSHA1AndRC4_40".toUpperCase()); + validTypes.add("PBEWithSHA1AndRC4_128".toUpperCase()); // Proprietary algorithm. validTypes.add("PBEWithMD5AndTripleDES".toUpperCase()); + validTypes.add("PBEWithHmacSHA1AndAES_128".toUpperCase()); + validTypes.add("PBEWithHmacSHA224AndAES_128".toUpperCase()); + validTypes.add("PBEWithHmacSHA256AndAES_128".toUpperCase()); + validTypes.add("PBEWithHmacSHA384AndAES_128".toUpperCase()); + validTypes.add("PBEWithHmacSHA512AndAES_128".toUpperCase()); + validTypes.add("PBEWithHmacSHA1AndAES_256".toUpperCase()); + validTypes.add("PBEWithHmacSHA224AndAES_256".toUpperCase()); + validTypes.add("PBEWithHmacSHA256AndAES_256".toUpperCase()); + validTypes.add("PBEWithHmacSHA384AndAES_256".toUpperCase()); + validTypes.add("PBEWithHmacSHA512AndAES_256".toUpperCase()); } public static final class PBEWithMD5AndDES @@ -84,6 +97,27 @@ } } + public static final class PBEWithSHA1AndRC2_128 + extends PBEKeyFactory { + public PBEWithSHA1AndRC2_128() { + super("PBEWithSHA1AndRC2_128"); + } + } + + public static final class PBEWithSHA1AndRC4_40 + extends PBEKeyFactory { + public PBEWithSHA1AndRC4_40() { + super("PBEWithSHA1AndRC4_40"); + } + } + + public static final class PBEWithSHA1AndRC4_128 + extends PBEKeyFactory { + public PBEWithSHA1AndRC4_128() { + super("PBEWithSHA1AndRC4_128"); + } + } + /* * Private proprietary algorithm for supporting JCEKS. */ @@ -94,6 +128,75 @@ } } + public static final class PBEWithHmacSHA1AndAES_128 + extends PBEKeyFactory { + public PBEWithHmacSHA1AndAES_128() { + super("PBEWithHmacSHA1AndAES_128"); + } + } + + public static final class PBEWithHmacSHA224AndAES_128 + extends PBEKeyFactory { + public PBEWithHmacSHA224AndAES_128() { + super("PBEWithHmacSHA224AndAES_128"); + } + } + + public static final class PBEWithHmacSHA256AndAES_128 + extends PBEKeyFactory { + public PBEWithHmacSHA256AndAES_128() { + super("PBEWithHmacSHA256AndAES_128"); + } + } + + public static final class PBEWithHmacSHA384AndAES_128 + extends PBEKeyFactory { + public PBEWithHmacSHA384AndAES_128() { + super("PBEWithHmacSHA384AndAES_128"); + } + } + + public static final class PBEWithHmacSHA512AndAES_128 + extends PBEKeyFactory { + public PBEWithHmacSHA512AndAES_128() { + super("PBEWithHmacSHA512AndAES_128"); + } + } + + public static final class PBEWithHmacSHA1AndAES_256 + extends PBEKeyFactory { + public PBEWithHmacSHA1AndAES_256() { + super("PBEWithHmacSHA1AndAES_256"); + } + } + + public static final class PBEWithHmacSHA224AndAES_256 + extends PBEKeyFactory { + public PBEWithHmacSHA224AndAES_256() { + super("PBEWithHmacSHA224AndAES_256"); + } + } + + public static final class PBEWithHmacSHA256AndAES_256 + extends PBEKeyFactory { + public PBEWithHmacSHA256AndAES_256() { + super("PBEWithHmacSHA256AndAES_256"); + } + } + + public static final class PBEWithHmacSHA384AndAES_256 + extends PBEKeyFactory { + public PBEWithHmacSHA384AndAES_256() { + super("PBEWithHmacSHA384AndAES_256"); + } + } + + public static final class PBEWithHmacSHA512AndAES_256 + extends PBEKeyFactory { + public PBEWithHmacSHA512AndAES_256() { + super("PBEWithHmacSHA512AndAES_256"); + } + } /** * Generates a SecretKey object from the provided key diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,6 +57,9 @@ // the iteration count private int iCount = 0; + // the cipher parameter + private AlgorithmParameterSpec cipherParam = null; + protected void engineInit(AlgorithmParameterSpec paramSpec) throws InvalidParameterSpecException { @@ -66,6 +69,7 @@ } this.salt = ((PBEParameterSpec)paramSpec).getSalt().clone(); this.iCount = ((PBEParameterSpec)paramSpec).getIterationCount(); + this.cipherParam = ((PBEParameterSpec)paramSpec).getParameterSpec(); } protected void engineInit(byte[] encoded) @@ -102,7 +106,8 @@ throws InvalidParameterSpecException { if (PBEParameterSpec.class.isAssignableFrom(paramSpec)) { - return paramSpec.cast(new PBEParameterSpec(this.salt, this.iCount)); + return paramSpec.cast( + new PBEParameterSpec(this.salt, this.iCount, this.cipherParam)); } else { throw new InvalidParameterSpecException ("Inappropriate parameter specification"); diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBES1Core.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBES1Core.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,539 @@ +/* + * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.crypto.provider; + +import java.security.*; +import java.security.spec.*; +import javax.crypto.*; +import javax.crypto.spec.*; + +/** + * This class represents password-based encryption as defined by the PKCS #5 + * standard. + * + * @author Jan Luehe + * + * + * @see javax.crypto.Cipher + */ +final class PBES1Core { + + // the encapsulated DES cipher + private CipherCore cipher; + private MessageDigest md; + private int blkSize; + private String algo = null; + private byte[] salt = null; + private int iCount = 10; + + /** + * Creates an instance of PBE Cipher using the specified CipherSpi + * instance. + * + */ + PBES1Core(String cipherAlg) throws NoSuchAlgorithmException, + NoSuchPaddingException { + algo = cipherAlg; + if (algo.equals("DES")) { + cipher = new CipherCore(new DESCrypt(), + DESConstants.DES_BLOCK_SIZE); + } else if (algo.equals("DESede")) { + + cipher = new CipherCore(new DESedeCrypt(), + DESConstants.DES_BLOCK_SIZE); + } else { + throw new NoSuchAlgorithmException("No Cipher implementation " + + "for PBEWithMD5And" + algo); + } + cipher.setMode("CBC"); + cipher.setPadding("PKCS5Padding"); + // get instance of MD5 + md = MessageDigest.getInstance("MD5"); + } + + /** + * Sets the mode of this cipher. This algorithm can only be run in CBC + * mode. + * + * @param mode the cipher mode + * + * @exception NoSuchAlgorithmException if the requested cipher mode is + * invalid + */ + void setMode(String mode) throws NoSuchAlgorithmException { + cipher.setMode(mode); + } + + /** + * Sets the padding mechanism of this cipher. This algorithm only uses + * PKCS #5 padding. + * + * @param padding the padding mechanism + * + * @exception NoSuchPaddingException if the requested padding mechanism + * is invalid + */ + void setPadding(String paddingScheme) throws NoSuchPaddingException { + cipher.setPadding(paddingScheme); + } + + /** + * Returns the block size (in bytes). + * + * @return the block size (in bytes) + */ + int getBlockSize() { + return DESConstants.DES_BLOCK_SIZE; + } + + /** + * Returns the length in bytes that an output buffer would need to be in + * order to hold the result of the next update or + * doFinal operation, given the input length + * inputLen (in bytes). + * + *

This call takes into account any unprocessed (buffered) data from a + * previous update call, and padding. + * + *

The actual output length of the next update or + * doFinal call may be smaller than the length returned by + * this method. + * + * @param inputLen the input length (in bytes) + * + * @return the required output buffer size (in bytes) + * + */ + int getOutputSize(int inputLen) { + return cipher.getOutputSize(inputLen); + } + + /** + * Returns the initialization vector (IV) in a new buffer. + * + *

This is useful in the case where a random IV has been created + * (see init), + * or in the context of password-based encryption or + * decryption, where the IV is derived from a user-supplied password. + * + * @return the initialization vector in a new buffer, or null if the + * underlying algorithm does not use an IV, or if the IV has not yet + * been set. + */ + byte[] getIV() { + return cipher.getIV(); + } + + /** + * Returns the parameters used with this cipher. + * + *

The returned parameters may be the same that were used to initialize + * this cipher, or may contain the default set of parameters or a set of + * randomly generated parameters used by the underlying cipher + * implementation (provided that the underlying cipher implementation + * uses a default set of parameters or creates new parameters if it needs + * parameters but was not initialized with any). + * + * @return the parameters used with this cipher, or null if this cipher + * does not use any parameters. + */ + AlgorithmParameters getParameters() { + AlgorithmParameters params = null; + if (salt == null) { + salt = new byte[8]; + SunJCE.RANDOM.nextBytes(salt); + } + PBEParameterSpec pbeSpec = new PBEParameterSpec(salt, iCount); + try { + params = AlgorithmParameters.getInstance("PBEWithMD5And" + + (algo.equalsIgnoreCase("DES")? "DES":"TripleDES"), "SunJCE"); + } catch (NoSuchAlgorithmException nsae) { + // should never happen + throw new RuntimeException("SunJCE called, but not configured"); + } catch (NoSuchProviderException nspe) { + // should never happen + throw new RuntimeException("SunJCE called, but not configured"); + } + try { + params.init(pbeSpec); + } catch (InvalidParameterSpecException ipse) { + // should never happen + throw new RuntimeException("PBEParameterSpec not supported"); + } + return params; + } + + /** + * Initializes this cipher with a key, a set of + * algorithm parameters, and a source of randomness. + * The cipher is initialized for one of the following four operations: + * encryption, decryption, key wrapping or key unwrapping, depending on + * the value of opmode. + * + *

If this cipher (including its underlying feedback or padding scheme) + * requires any random bytes, it will get them from random. + * + * @param opmode the operation mode of this cipher (this is one of + * the following: + * ENCRYPT_MODE, DECRYPT_MODE), + * WRAP_MODE or UNWRAP_MODE) + * @param key the encryption key + * @param params the algorithm parameters + * @param random the source of randomness + * + * @exception InvalidKeyException if the given key is inappropriate for + * initializing this cipher + * @exception InvalidAlgorithmParameterException if the given algorithm + * parameters are inappropriate for this cipher + */ + void init(int opmode, Key key, AlgorithmParameterSpec params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + if (((opmode == Cipher.DECRYPT_MODE) || + (opmode == Cipher.UNWRAP_MODE)) && (params == null)) { + throw new InvalidAlgorithmParameterException("Parameters " + + "missing"); + } + if ((key == null) || + (key.getEncoded() == null) || + !(key.getAlgorithm().regionMatches(true, 0, "PBE", 0, 3))) { + throw new InvalidKeyException("Missing password"); + } + + if (params == null) { + // create random salt and use default iteration count + salt = new byte[8]; + random.nextBytes(salt); + } else { + if (!(params instanceof PBEParameterSpec)) { + throw new InvalidAlgorithmParameterException + ("Wrong parameter type: PBE expected"); + } + salt = ((PBEParameterSpec) params).getSalt(); + // salt must be 8 bytes long (by definition) + if (salt.length != 8) { + throw new InvalidAlgorithmParameterException + ("Salt must be 8 bytes long"); + } + iCount = ((PBEParameterSpec) params).getIterationCount(); + if (iCount <= 0) { + throw new InvalidAlgorithmParameterException + ("IterationCount must be a positive number"); + } + } + + byte[] derivedKey = deriveCipherKey(key); + // use all but the last 8 bytes as the key value + SecretKeySpec cipherKey = new SecretKeySpec(derivedKey, 0, + derivedKey.length-8, algo); + // use the last 8 bytes as the IV + IvParameterSpec ivSpec = new IvParameterSpec(derivedKey, + derivedKey.length-8, + 8); + // initialize the underlying cipher + cipher.init(opmode, cipherKey, ivSpec, random); + } + + private byte[] deriveCipherKey(Key key) { + + byte[] result = null; + byte[] passwdBytes = key.getEncoded(); + + if (algo.equals("DES")) { + // P || S (password concatenated with salt) + byte[] concat = new byte[passwdBytes.length + salt.length]; + System.arraycopy(passwdBytes, 0, concat, 0, passwdBytes.length); + java.util.Arrays.fill(passwdBytes, (byte)0x00); + System.arraycopy(salt, 0, concat, passwdBytes.length, salt.length); + + // digest P || S with c iterations + byte[] toBeHashed = concat; + for (int i = 0; i < iCount; i++) { + md.update(toBeHashed); + toBeHashed = md.digest(); // this resets the digest + } + java.util.Arrays.fill(concat, (byte)0x00); + result = toBeHashed; + } else if (algo.equals("DESede")) { + // if the 2 salt halves are the same, invert one of them + int i; + for (i=0; i<4; i++) { + if (salt[i] != salt[i+4]) + break; + } + if (i==4) { // same, invert 1st half + for (i=0; i<2; i++) { + byte tmp = salt[i]; + salt[i] = salt[3-i]; + salt[3-1] = tmp; + } + } + + // Now digest each half (concatenated with password). For each + // half, go through the loop as many times as specified by the + // iteration count parameter (inner for loop). + // Concatenate the output from each digest round with the + // password, and use the result as the input to the next digest + // operation. + byte[] kBytes = null; + IvParameterSpec iv = null; + byte[] toBeHashed = null; + result = new byte[DESedeKeySpec.DES_EDE_KEY_LEN + + DESConstants.DES_BLOCK_SIZE]; + for (i = 0; i < 2; i++) { + toBeHashed = new byte[salt.length/2]; + System.arraycopy(salt, i*(salt.length/2), toBeHashed, 0, + toBeHashed.length); + for (int j=0; j < iCount; j++) { + md.update(toBeHashed); + md.update(passwdBytes); + toBeHashed = md.digest(); // this resets the digest + } + System.arraycopy(toBeHashed, 0, result, i*16, + toBeHashed.length); + } + } + return result; + } + + void init(int opmode, Key key, AlgorithmParameters params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + PBEParameterSpec pbeSpec = null; + if (params != null) { + try { + pbeSpec = params.getParameterSpec(PBEParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { + throw new InvalidAlgorithmParameterException("Wrong parameter " + + "type: PBE " + + "expected"); + } + } + init(opmode, key, pbeSpec, random); + } + + /** + * Continues a multiple-part encryption or decryption operation + * (depending on how this cipher was initialized), processing another data + * part. + * + *

The first inputLen bytes in the input + * buffer, starting at inputOffset, are processed, and the + * result is stored in a new buffer. + * + * @param input the input buffer + * @param inputOffset the offset in input where the input + * starts + * @param inputLen the input length + * + * @return the new buffer with the result + * + */ + byte[] update(byte[] input, int inputOffset, int inputLen) { + return cipher.update(input, inputOffset, inputLen); + } + + /** + * Continues a multiple-part encryption or decryption operation + * (depending on how this cipher was initialized), processing another data + * part. + * + *

The first inputLen bytes in the input + * buffer, starting at inputOffset, are processed, and the + * result is stored in the output buffer, starting at + * outputOffset. + * + * @param input the input buffer + * @param inputOffset the offset in input where the input + * starts + * @param inputLen the input length + * @param output the buffer for the result + * @param outputOffset the offset in output where the result + * is stored + * + * @return the number of bytes stored in output + * + * @exception ShortBufferException if the given output buffer is too small + * to hold the result + */ + int update(byte[] input, int inputOffset, int inputLen, + byte[] output, int outputOffset) + throws ShortBufferException { + return cipher.update(input, inputOffset, inputLen, + output, outputOffset); + } + + /** + * Encrypts or decrypts data in a single-part operation, + * or finishes a multiple-part operation. + * The data is encrypted or decrypted, depending on how this cipher was + * initialized. + * + *

The first inputLen bytes in the input + * buffer, starting at inputOffset, and any input bytes that + * may have been buffered during a previous update operation, + * are processed, with padding (if requested) being applied. + * The result is stored in a new buffer. + * + *

The cipher is reset to its initial state (uninitialized) after this + * call. + * + * @param input the input buffer + * @param inputOffset the offset in input where the input + * starts + * @param inputLen the input length + * + * @return the new buffer with the result + * + * @exception IllegalBlockSizeException if this cipher is a block cipher, + * no padding has been requested (only in encryption mode), and the total + * input length of the data processed by this cipher is not a multiple of + * block size + * @exception BadPaddingException if decrypting and padding is choosen, + * but the last input data does not have proper padding bytes. + */ + byte[] doFinal(byte[] input, int inputOffset, int inputLen) + throws IllegalBlockSizeException, BadPaddingException { + return cipher.doFinal(input, inputOffset, inputLen); + } + + /** + * Encrypts or decrypts data in a single-part operation, + * or finishes a multiple-part operation. + * The data is encrypted or decrypted, depending on how this cipher was + * initialized. + * + *

The first inputLen bytes in the input + * buffer, starting at inputOffset, and any input bytes that + * may have been buffered during a previous update operation, + * are processed, with padding (if requested) being applied. + * The result is stored in the output buffer, starting at + * outputOffset. + * + *

The cipher is reset to its initial state (uninitialized) after this + * call. + * + * @param input the input buffer + * @param inputOffset the offset in input where the input + * starts + * @param inputLen the input length + * @param output the buffer for the result + * @param outputOffset the offset in output where the result + * is stored + * + * @return the number of bytes stored in output + * + * @exception IllegalBlockSizeException if this cipher is a block cipher, + * no padding has been requested (only in encryption mode), and the total + * input length of the data processed by this cipher is not a multiple of + * block size + * @exception ShortBufferException if the given output buffer is too small + * to hold the result + * @exception BadPaddingException if decrypting and padding is choosen, + * but the last input data does not have proper padding bytes. + */ + int doFinal(byte[] input, int inputOffset, int inputLen, + byte[] output, int outputOffset) + throws ShortBufferException, IllegalBlockSizeException, + BadPaddingException { + return cipher.doFinal(input, inputOffset, inputLen, + output, outputOffset); + } + + /** + * Wrap a key. + * + * @param key the key to be wrapped. + * + * @return the wrapped key. + * + * @exception IllegalBlockSizeException if this cipher is a block + * cipher, no padding has been requested, and the length of the + * encoding of the key to be wrapped is not a + * multiple of the block size. + * + * @exception InvalidKeyException if it is impossible or unsafe to + * wrap the key with this cipher (e.g., a hardware protected key is + * being passed to a software only cipher). + */ + byte[] wrap(Key key) + throws IllegalBlockSizeException, InvalidKeyException { + byte[] result = null; + + try { + byte[] encodedKey = key.getEncoded(); + if ((encodedKey == null) || (encodedKey.length == 0)) { + throw new InvalidKeyException("Cannot get an encoding of " + + "the key to be wrapped"); + } + + result = doFinal(encodedKey, 0, encodedKey.length); + } catch (BadPaddingException e) { + // Should never happen + } + + return result; + } + + /** + * Unwrap a previously wrapped key. + * + * @param wrappedKey the key to be unwrapped. + * + * @param wrappedKeyAlgorithm the algorithm the wrapped key is for. + * + * @param wrappedKeyType the type of the wrapped key. + * This is one of Cipher.SECRET_KEY, + * Cipher.PRIVATE_KEY, or Cipher.PUBLIC_KEY. + * + * @return the unwrapped key. + * + * @exception NoSuchAlgorithmException if no installed providers + * can create keys of type wrappedKeyType for the + * wrappedKeyAlgorithm. + * + * @exception InvalidKeyException if wrappedKey does not + * represent a wrapped key of type wrappedKeyType for + * the wrappedKeyAlgorithm. + */ + Key unwrap(byte[] wrappedKey, + String wrappedKeyAlgorithm, + int wrappedKeyType) + throws InvalidKeyException, NoSuchAlgorithmException { + byte[] encodedKey; + try { + encodedKey = doFinal(wrappedKey, 0, wrappedKey.length); + } catch (BadPaddingException ePadding) { + throw new InvalidKeyException("The wrapped key is not padded " + + "correctly"); + } catch (IllegalBlockSizeException eBlockSize) { + throw new InvalidKeyException("The wrapped key does not have " + + "the correct length"); + } + return ConstructKeys.constructKey(encodedKey, wrappedKeyAlgorithm, + wrappedKeyType); + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBES2Core.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBES2Core.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,421 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.crypto.provider; + +import java.io.UnsupportedEncodingException; +import java.security.*; +import java.security.spec.*; +import javax.crypto.*; +import javax.crypto.interfaces.*; +import javax.crypto.spec.*; + +/** + * This class represents password-based encryption as defined by the PKCS #5 + * standard. + * These algorithms implement PBE with HmacSHA1/HmacSHA2-family and AES-CBC. + * Padding is done as described in PKCS #5. + * + * @author Jan Luehe + * + * + * @see javax.crypto.Cipher + */ +abstract class PBES2Core extends CipherSpi { + + private static final int DEFAULT_SALT_LENGTH = 20; + private static final int DEFAULT_COUNT = 4096; + + // the encapsulated cipher + private final CipherCore cipher; + private final int keyLength; // in bits + private final int blkSize; // in bits + private final PBKDF2Core kdf; + private final String pbeAlgo; + private final String cipherAlgo; + private int iCount = DEFAULT_COUNT; + private byte[] salt = null; + private IvParameterSpec ivSpec = null; + + /** + * Creates an instance of PBE Scheme 2 according to the selected + * password-based key derivation function and encryption scheme. + */ + PBES2Core(String kdfAlgo, String cipherAlgo, int keySize) + throws NoSuchAlgorithmException, NoSuchPaddingException { + + this.cipherAlgo = cipherAlgo; + keyLength = keySize * 8; + pbeAlgo = "PBEWith" + kdfAlgo + "And" + cipherAlgo + "_" + keyLength; + + if (cipherAlgo.equals("AES")) { + blkSize = AESConstants.AES_BLOCK_SIZE; + cipher = new CipherCore(new AESCrypt(), blkSize); + + switch(kdfAlgo) { + case "HmacSHA1": + kdf = new PBKDF2Core.HmacSHA1(); + break; + case "HmacSHA224": + kdf = new PBKDF2Core.HmacSHA224(); + break; + case "HmacSHA256": + kdf = new PBKDF2Core.HmacSHA256(); + break; + case "HmacSHA384": + kdf = new PBKDF2Core.HmacSHA384(); + break; + case "HmacSHA512": + kdf = new PBKDF2Core.HmacSHA512(); + break; + default: + throw new NoSuchAlgorithmException( + "No Cipher implementation for " + kdfAlgo); + } + } else { + throw new NoSuchAlgorithmException("No Cipher implementation for " + + pbeAlgo); + } + cipher.setMode("CBC"); + cipher.setPadding("PKCS5Padding"); + } + + protected void engineSetMode(String mode) throws NoSuchAlgorithmException { + if ((mode != null) && (!mode.equalsIgnoreCase("CBC"))) { + throw new NoSuchAlgorithmException("Invalid cipher mode: " + mode); + } + } + + protected void engineSetPadding(String paddingScheme) + throws NoSuchPaddingException { + if ((paddingScheme != null) && + (!paddingScheme.equalsIgnoreCase("PKCS5Padding"))) { + throw new NoSuchPaddingException("Invalid padding scheme: " + + paddingScheme); + } + } + + protected int engineGetBlockSize() { + return blkSize; + } + + protected int engineGetOutputSize(int inputLen) { + return cipher.getOutputSize(inputLen); + } + + protected byte[] engineGetIV() { + return cipher.getIV(); + } + + protected AlgorithmParameters engineGetParameters() { + AlgorithmParameters params = null; + if (salt == null) { + // generate random salt and use default iteration count + salt = new byte[DEFAULT_SALT_LENGTH]; + SunJCE.RANDOM.nextBytes(salt); + iCount = DEFAULT_COUNT; + } + if (ivSpec == null) { + // generate random IV + byte[] ivBytes = new byte[blkSize]; + SunJCE.RANDOM.nextBytes(ivBytes); + ivSpec = new IvParameterSpec(ivBytes); + } + PBEParameterSpec pbeSpec = new PBEParameterSpec(salt, iCount, ivSpec); + try { + params = AlgorithmParameters.getInstance(pbeAlgo, "SunJCE"); + } catch (NoSuchAlgorithmException nsae) { + // should never happen + throw new RuntimeException("SunJCE called, but not configured"); + } catch (NoSuchProviderException nspe) { + // should never happen + throw new RuntimeException("SunJCE called, but not configured"); + } + try { + params.init(pbeSpec); + } catch (InvalidParameterSpecException ipse) { + // should never happen + throw new RuntimeException("PBEParameterSpec not supported"); + } + return params; + } + + protected void engineInit(int opmode, Key key, SecureRandom random) + throws InvalidKeyException { + try { + engineInit(opmode, key, (AlgorithmParameterSpec) null, random); + } catch (InvalidAlgorithmParameterException ie) { + InvalidKeyException ike = + new InvalidKeyException("requires PBE parameters"); + ike.initCause(ie); + throw ike; + } + } + + protected void engineInit(int opmode, Key key, + AlgorithmParameterSpec params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + + if ((key == null) || + (key.getEncoded() == null) || + !(key.getAlgorithm().regionMatches(true, 0, "PBE", 0, 3))) { + throw new InvalidKeyException("Missing password"); + } + + // TBD: consolidate the salt, ic and IV parameter checks below + + // Extract salt and iteration count from the key, if present + if (key instanceof javax.crypto.interfaces.PBEKey) { + salt = ((javax.crypto.interfaces.PBEKey)key).getSalt(); + if (salt != null && salt.length < 8) { + throw new InvalidAlgorithmParameterException( + "Salt must be at least 8 bytes long"); + } + iCount = ((javax.crypto.interfaces.PBEKey)key).getIterationCount(); + if (iCount == 0) { + iCount = DEFAULT_COUNT; + } else if (iCount < 0) { + throw new InvalidAlgorithmParameterException( + "Iteration count must be a positive number"); + } + } + + // Extract salt, iteration count and IV from the params, if present + if (params == null) { + if (salt == null) { + // generate random salt and use default iteration count + salt = new byte[DEFAULT_SALT_LENGTH]; + random.nextBytes(salt); + iCount = DEFAULT_COUNT; + } + if ((opmode == Cipher.ENCRYPT_MODE) || + (opmode == Cipher.WRAP_MODE)) { + // generate random IV + byte[] ivBytes = new byte[blkSize]; + random.nextBytes(ivBytes); + ivSpec = new IvParameterSpec(ivBytes); + } + } else { + if (!(params instanceof PBEParameterSpec)) { + throw new InvalidAlgorithmParameterException + ("Wrong parameter type: PBE expected"); + } + // salt and iteration count from the params take precedence + byte[] specSalt = ((PBEParameterSpec) params).getSalt(); + if (specSalt != null && specSalt.length < 8) { + throw new InvalidAlgorithmParameterException( + "Salt must be at least 8 bytes long"); + } + salt = specSalt; + int specICount = ((PBEParameterSpec) params).getIterationCount(); + if (specICount == 0) { + specICount = DEFAULT_COUNT; + } else if (specICount < 0) { + throw new InvalidAlgorithmParameterException( + "Iteration count must be a positive number"); + } + iCount = specICount; + + AlgorithmParameterSpec specParams = + ((PBEParameterSpec) params).getParameterSpec(); + if (specParams != null) { + if (specParams instanceof IvParameterSpec) { + ivSpec = (IvParameterSpec)specParams; + } else { + throw new InvalidAlgorithmParameterException( + "Wrong parameter type: IV expected"); + } + } else if ((opmode == Cipher.ENCRYPT_MODE) || + (opmode == Cipher.WRAP_MODE)) { + // generate random IV + byte[] ivBytes = new byte[blkSize]; + random.nextBytes(ivBytes); + ivSpec = new IvParameterSpec(ivBytes); + } else { + throw new InvalidAlgorithmParameterException( + "Missing parameter type: IV expected"); + } + } + + SecretKeySpec cipherKey = null; + byte[] derivedKey = null; + byte[] passwdBytes = key.getEncoded(); + char[] passwdChars = new char[passwdBytes.length]; + + for (int i=0; i + * -- PBES2 + * + * PBES2Algorithms ALGORITHM-IDENTIFIER ::= + * { {PBES2-params IDENTIFIED BY id-PBES2}, ...} + * + * id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13} + * + * PBES2-params ::= SEQUENCE { + * keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}}, + * encryptionScheme AlgorithmIdentifier {{PBES2-Encs}} } + * + * PBES2-KDFs ALGORITHM-IDENTIFIER ::= + * { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... } + * + * PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... } + * + * -- PBKDF2 + * + * PBKDF2Algorithms ALGORITHM-IDENTIFIER ::= + * { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ...} + * + * id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12} + * + * PBKDF2-params ::= SEQUENCE { + * salt CHOICE { + * specified OCTET STRING, + * otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}} + * }, + * iterationCount INTEGER (1..MAX), + * keyLength INTEGER (1..MAX) OPTIONAL, + * prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 + * } + * + * PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... } + * + * PBKDF2-PRFs ALGORITHM-IDENTIFIER ::= { + * {NULL IDENTIFIED BY id-hmacWithSHA1} | + * {NULL IDENTIFIED BY id-hmacWithSHA224} | + * {NULL IDENTIFIED BY id-hmacWithSHA256} | + * {NULL IDENTIFIED BY id-hmacWithSHA384} | + * {NULL IDENTIFIED BY id-hmacWithSHA512}, ... } + * + * algid-hmacWithSHA1 AlgorithmIdentifier {{PBKDF2-PRFs}} ::= + * {algorithm id-hmacWithSHA1, parameters NULL : NULL} + * + * id-hmacWithSHA1 OBJECT IDENTIFIER ::= {digestAlgorithm 7} + * + * PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... } + * + * + */ + +abstract class PBES2Parameters extends AlgorithmParametersSpi { + + private static final int pkcs5PBKDF2[] = + {1, 2, 840, 113549, 1, 5, 12}; + private static final int pkcs5PBES2[] = + {1, 2, 840, 113549, 1, 5, 13}; + private static final int hmacWithSHA1[] = + {1, 2, 840, 113549, 2, 7}; + private static final int hmacWithSHA224[] = + {1, 2, 840, 113549, 2, 8}; + private static final int hmacWithSHA256[] = + {1, 2, 840, 113549, 2, 9}; + private static final int hmacWithSHA384[] = + {1, 2, 840, 113549, 2, 10}; + private static final int hmacWithSHA512[] = + {1, 2, 840, 113549, 2, 11}; + private static final int aes128CBC[] = + {2, 16, 840, 1, 101, 3, 4, 1, 2}; + private static final int aes192CBC[] = + {2, 16, 840, 1, 101, 3, 4, 1, 22}; + private static final int aes256CBC[] = + {2, 16, 840, 1, 101, 3, 4, 1, 42}; + + private static ObjectIdentifier pkcs5PBKDF2_OID; + private static ObjectIdentifier pkcs5PBES2_OID; + private static ObjectIdentifier hmacWithSHA1_OID; + private static ObjectIdentifier hmacWithSHA224_OID; + private static ObjectIdentifier hmacWithSHA256_OID; + private static ObjectIdentifier hmacWithSHA384_OID; + private static ObjectIdentifier hmacWithSHA512_OID; + private static ObjectIdentifier aes128CBC_OID; + private static ObjectIdentifier aes192CBC_OID; + private static ObjectIdentifier aes256CBC_OID; + + static { + try { + pkcs5PBKDF2_OID = new ObjectIdentifier(pkcs5PBKDF2); + pkcs5PBES2_OID = new ObjectIdentifier(pkcs5PBES2); + hmacWithSHA1_OID = new ObjectIdentifier(hmacWithSHA1); + hmacWithSHA224_OID = new ObjectIdentifier(hmacWithSHA224); + hmacWithSHA256_OID = new ObjectIdentifier(hmacWithSHA256); + hmacWithSHA384_OID = new ObjectIdentifier(hmacWithSHA384); + hmacWithSHA512_OID = new ObjectIdentifier(hmacWithSHA512); + aes128CBC_OID = new ObjectIdentifier(aes128CBC); + aes192CBC_OID = new ObjectIdentifier(aes192CBC); + aes256CBC_OID = new ObjectIdentifier(aes256CBC); + } catch (IOException ioe) { + // should not happen + } + } + + // the PBES2 algorithm name + private String pbes2AlgorithmName = null; + + // the salt + private byte[] salt = null; + + // the iteration count + private int iCount = 0; + + // the cipher parameter + private AlgorithmParameterSpec cipherParam = null; + + // the key derivation function (default is HmacSHA1) + private ObjectIdentifier kdfAlgo_OID = hmacWithSHA1_OID; + + // the encryption function + private ObjectIdentifier cipherAlgo_OID = null; + + // the cipher keysize (in bits) + private int keysize = -1; + + PBES2Parameters() { + // KDF, encryption & keysize values are set later, in engineInit(byte[]) + } + + PBES2Parameters(String pbes2AlgorithmName) throws NoSuchAlgorithmException { + int and; + String kdfAlgo = null; + String cipherAlgo = null; + + // Extract the KDF and encryption algorithm names + this.pbes2AlgorithmName = pbes2AlgorithmName; + if (pbes2AlgorithmName.startsWith("PBEWith") && + (and = pbes2AlgorithmName.indexOf("And", 7 + 1)) > 0) { + kdfAlgo = pbes2AlgorithmName.substring(7, and); + cipherAlgo = pbes2AlgorithmName.substring(and + 3); + + // Check for keysize + int underscore; + if ((underscore = cipherAlgo.indexOf('_')) > 0) { + int slash; + if ((slash = cipherAlgo.indexOf('/', underscore + 1)) > 0) { + keysize = + Integer.parseInt(cipherAlgo.substring(underscore + 1, + slash)); + } else { + keysize = + Integer.parseInt(cipherAlgo.substring(underscore + 1)); + } + cipherAlgo = cipherAlgo.substring(0, underscore); + } + } else { + throw new NoSuchAlgorithmException("No crypto implementation for " + + pbes2AlgorithmName); + } + + switch (kdfAlgo) { + case "HmacSHA1": + kdfAlgo_OID = hmacWithSHA1_OID; + break; + case "HmacSHA224": + kdfAlgo_OID = hmacWithSHA224_OID; + break; + case "HmacSHA256": + kdfAlgo_OID = hmacWithSHA256_OID; + break; + case "HmacSHA384": + kdfAlgo_OID = hmacWithSHA384_OID; + break; + case "HmacSHA512": + kdfAlgo_OID = hmacWithSHA512_OID; + break; + default: + throw new NoSuchAlgorithmException( + "No crypto implementation for " + kdfAlgo); + } + + if (cipherAlgo.equals("AES")) { + this.keysize = keysize; + switch (keysize) { + case 128: + cipherAlgo_OID = aes128CBC_OID; + break; + case 256: + cipherAlgo_OID = aes256CBC_OID; + break; + default: + throw new NoSuchAlgorithmException( + "No Cipher implementation for " + keysize + "-bit " + + cipherAlgo); + } + } else { + throw new NoSuchAlgorithmException("No Cipher implementation for " + + cipherAlgo); + } + } + + protected void engineInit(AlgorithmParameterSpec paramSpec) + throws InvalidParameterSpecException + { + if (!(paramSpec instanceof PBEParameterSpec)) { + throw new InvalidParameterSpecException + ("Inappropriate parameter specification"); + } + this.salt = ((PBEParameterSpec)paramSpec).getSalt().clone(); + this.iCount = ((PBEParameterSpec)paramSpec).getIterationCount(); + this.cipherParam = ((PBEParameterSpec)paramSpec).getParameterSpec(); + } + + protected void engineInit(byte[] encoded) + throws IOException + { + String kdfAlgo = null; + String cipherAlgo = null; + + DerValue pBES2Algorithms = new DerValue(encoded); + if (pBES2Algorithms.tag != DerValue.tag_Sequence) { + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 SEQUENCE tag"); + } + if (!pkcs5PBES2_OID.equals(pBES2Algorithms.data.getOID())) { + throw new IOException("PBE parameter parsing error: " + + "expecting the object identifier for PBES2"); + } + if (pBES2Algorithms.tag != DerValue.tag_Sequence) { + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 SEQUENCE tag"); + } + + DerValue pBES2_params = pBES2Algorithms.data.getDerValue(); + if (pBES2_params.tag != DerValue.tag_Sequence) { + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 SEQUENCE tag"); + } + kdfAlgo = parseKDF(pBES2_params.data.getDerValue()); + + if (pBES2_params.tag != DerValue.tag_Sequence) { + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 SEQUENCE tag"); + } + cipherAlgo = parseES(pBES2_params.data.getDerValue()); + + pbes2AlgorithmName = new StringBuilder().append("PBEWith") + .append(kdfAlgo).append("And").append(cipherAlgo).toString(); + } + + private String parseKDF(DerValue keyDerivationFunc) throws IOException { + String kdfAlgo = null; + + if (!pkcs5PBKDF2_OID.equals(keyDerivationFunc.data.getOID())) { + throw new IOException("PBE parameter parsing error: " + + "expecting the object identifier for PBKDF2"); + } + if (keyDerivationFunc.tag != DerValue.tag_Sequence) { + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 SEQUENCE tag"); + } + DerValue pBKDF2_params = keyDerivationFunc.data.getDerValue(); + if (pBKDF2_params.tag != DerValue.tag_Sequence) { + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 SEQUENCE tag"); + } + DerValue specified = pBKDF2_params.data.getDerValue(); + // the 'specified' ASN.1 CHOICE for 'salt' is supported + if (specified.tag == DerValue.tag_OctetString) { + salt = specified.getOctetString(); + } else { + // the 'otherSource' ASN.1 CHOICE for 'salt' is not supported + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 OCTET STRING tag"); + } + iCount = pBKDF2_params.data.getInteger(); + DerValue keyLength = pBKDF2_params.data.getDerValue(); + if (keyLength.tag == DerValue.tag_Integer) { + keysize = keyLength.getInteger() * 8; // keysize (in bits) + } + if (pBKDF2_params.tag == DerValue.tag_Sequence) { + DerValue prf = pBKDF2_params.data.getDerValue(); + kdfAlgo_OID = prf.data.getOID(); + if (hmacWithSHA1_OID.equals(kdfAlgo_OID)) { + kdfAlgo = "HmacSHA1"; + } else if (hmacWithSHA224_OID.equals(kdfAlgo_OID)) { + kdfAlgo = "HmacSHA224"; + } else if (hmacWithSHA256_OID.equals(kdfAlgo_OID)) { + kdfAlgo = "HmacSHA256"; + } else if (hmacWithSHA384_OID.equals(kdfAlgo_OID)) { + kdfAlgo = "HmacSHA384"; + } else if (hmacWithSHA512_OID.equals(kdfAlgo_OID)) { + kdfAlgo = "HmacSHA512"; + } else { + throw new IOException("PBE parameter parsing error: " + + "expecting the object identifier for a HmacSHA key " + + "derivation function"); + } + if (prf.data.available() != 0) { + // parameter is 'NULL' for all HmacSHA KDFs + DerValue parameter = prf.data.getDerValue(); + if (parameter.tag != DerValue.tag_Null) { + throw new IOException("PBE parameter parsing error: " + + "not an ASN.1 NULL tag"); + } + } + } + + return kdfAlgo; + } + + private String parseES(DerValue encryptionScheme) throws IOException { + String cipherAlgo = null; + + cipherAlgo_OID = encryptionScheme.data.getOID(); + if (aes128CBC_OID.equals(cipherAlgo_OID)) { + cipherAlgo = "AES_128"; + // parameter is AES-IV 'OCTET STRING (SIZE(16))' + cipherParam = + new IvParameterSpec(encryptionScheme.data.getOctetString()); + keysize = 128; + } else if (aes256CBC_OID.equals(cipherAlgo_OID)) { + cipherAlgo = "AES_256"; + // parameter is AES-IV 'OCTET STRING (SIZE(16))' + cipherParam = + new IvParameterSpec(encryptionScheme.data.getOctetString()); + keysize = 256; + } else { + throw new IOException("PBE parameter parsing error: " + + "expecting the object identifier for AES cipher"); + } + + return cipherAlgo; + } + + protected void engineInit(byte[] encoded, String decodingMethod) + throws IOException + { + engineInit(encoded); + } + + protected + T engineGetParameterSpec(Class paramSpec) + throws InvalidParameterSpecException + { + if (PBEParameterSpec.class.isAssignableFrom(paramSpec)) { + return paramSpec.cast( + new PBEParameterSpec(this.salt, this.iCount, this.cipherParam)); + } else { + throw new InvalidParameterSpecException + ("Inappropriate parameter specification"); + } + } + + protected byte[] engineGetEncoded() throws IOException { + DerOutputStream out = new DerOutputStream(); + DerOutputStream pBES2Algorithms = new DerOutputStream(); + pBES2Algorithms.putOID(pkcs5PBES2_OID); + + DerOutputStream pBES2_params = new DerOutputStream(); + + DerOutputStream keyDerivationFunc = new DerOutputStream(); + keyDerivationFunc.putOID(pkcs5PBKDF2_OID); + + DerOutputStream pBKDF2_params = new DerOutputStream(); + pBKDF2_params.putOctetString(salt); // choice: 'specified OCTET STRING' + pBKDF2_params.putInteger(iCount); + pBKDF2_params.putInteger(keysize / 8); // derived key length (in octets) + + DerOutputStream prf = new DerOutputStream(); + // algorithm is id-hmacWithSHA1/SHA224/SHA256/SHA384/SHA512 + prf.putOID(kdfAlgo_OID); + // parameters is 'NULL' + prf.putNull(); + pBKDF2_params.write(DerValue.tag_Sequence, prf); + + keyDerivationFunc.write(DerValue.tag_Sequence, pBKDF2_params); + pBES2_params.write(DerValue.tag_Sequence, keyDerivationFunc); + + DerOutputStream encryptionScheme = new DerOutputStream(); + // algorithm is id-aes128-CBC or id-aes256-CBC + encryptionScheme.putOID(cipherAlgo_OID); + // parameters is 'AES-IV ::= OCTET STRING (SIZE(16))' + if (cipherParam != null && cipherParam instanceof IvParameterSpec) { + encryptionScheme.putOctetString( + ((IvParameterSpec)cipherParam).getIV()); + } else { + throw new IOException("Wrong parameter type: IV expected"); + } + pBES2_params.write(DerValue.tag_Sequence, encryptionScheme); + + pBES2Algorithms.write(DerValue.tag_Sequence, pBES2_params); + out.write(DerValue.tag_Sequence, pBES2Algorithms); + + return out.toByteArray(); + } + + protected byte[] engineGetEncoded(String encodingMethod) + throws IOException + { + return engineGetEncoded(); + } + + /* + * Returns a formatted string describing the parameters. + * + * The algorithn name pattern is: "PBEWithAnd" + * where is one of: HmacSHA1, HmacSHA224, HmacSHA256, HmacSHA384, + * or HmacSHA512, and is AES with a keysize suffix. + */ + protected String engineToString() { + return pbes2AlgorithmName; + } + + public static final class General extends PBES2Parameters { + public General() throws NoSuchAlgorithmException { + super(); + } + } + + public static final class HmacSHA1AndAES_128 extends PBES2Parameters { + public HmacSHA1AndAES_128() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA1AndAES_128"); + } + } + + public static final class HmacSHA224AndAES_128 extends PBES2Parameters { + public HmacSHA224AndAES_128() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA224AndAES_128"); + } + } + + public static final class HmacSHA256AndAES_128 extends PBES2Parameters { + public HmacSHA256AndAES_128() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA256AndAES_128"); + } + } + + public static final class HmacSHA384AndAES_128 extends PBES2Parameters { + public HmacSHA384AndAES_128() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA384AndAES_128"); + } + } + + public static final class HmacSHA512AndAES_128 extends PBES2Parameters { + public HmacSHA512AndAES_128() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA512AndAES_128"); + } + } + + public static final class HmacSHA1AndAES_256 extends PBES2Parameters { + public HmacSHA1AndAES_256() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA1AndAES_256"); + } + } + + public static final class HmacSHA224AndAES_256 extends PBES2Parameters { + public HmacSHA224AndAES_256() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA224AndAES_256"); + } + } + + public static final class HmacSHA256AndAES_256 extends PBES2Parameters { + public HmacSHA256AndAES_256() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA256AndAES_256"); + } + } + + public static final class HmacSHA384AndAES_256 extends PBES2Parameters { + public HmacSHA384AndAES_256() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA384AndAES_256"); + } + } + + public static final class HmacSHA512AndAES_256 extends PBES2Parameters { + public HmacSHA512AndAES_256() throws NoSuchAlgorithmException { + super("PBEWithHmacSHA512AndAES_256"); + } + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,7 @@ public final class PBEWithMD5AndDESCipher extends CipherSpi { // the encapsulated DES cipher - private PBECipherCore core; + private PBES1Core core; /** * Creates an instance of this cipher, and initializes its mode (CBC) and @@ -58,7 +58,7 @@ */ public PBEWithMD5AndDESCipher() throws NoSuchAlgorithmException, NoSuchPaddingException { - core = new PBECipherCore("DES"); + core = new PBES1Core("DES"); } /** diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,7 +55,7 @@ */ public final class PBEWithMD5AndTripleDESCipher extends CipherSpi { - private PBECipherCore core; + private PBES1Core core; /** * Creates an instance of this cipher, and initializes its mode (CBC) and @@ -70,7 +70,7 @@ throws NoSuchAlgorithmException, NoSuchPaddingException { // set the encapsulated cipher to do triple DES - core = new PBECipherCore("DESede"); + core = new PBES1Core("DESede"); } /** diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBKDF2Core.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2Core.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,182 @@ +/* + * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.crypto.provider; + +import java.security.InvalidKeyException; +import java.security.spec.KeySpec; +import java.security.spec.InvalidKeySpecException; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactorySpi; +import javax.crypto.spec.PBEKeySpec; + +/** + * This class implements a key factory for PBE keys derived using + * PBKDF2 with HmacSHA1/HmacSHA224/HmacSHA256/HmacSHA384/HmacSHA512 + * pseudo random function (PRF) as defined in PKCS#5 v2.1. + * + * @author Valerie Peng + * + */ +abstract class PBKDF2Core extends SecretKeyFactorySpi { + + private final String prfAlgo; + + PBKDF2Core(String prfAlgo) { + this.prfAlgo = prfAlgo; + } + + /** + * Generates a SecretKey object from the provided key + * specification (key material). + * + * @param keySpec the specification (key material) of the secret key + * + * @return the secret key + * + * @exception InvalidKeySpecException if the given key specification + * is inappropriate for this key factory to produce a public key. + */ + protected SecretKey engineGenerateSecret(KeySpec keySpec) + throws InvalidKeySpecException + { + if (!(keySpec instanceof PBEKeySpec)) { + throw new InvalidKeySpecException("Invalid key spec"); + } + PBEKeySpec ks = (PBEKeySpec) keySpec; + return new PBKDF2KeyImpl(ks, prfAlgo); + } + + /** + * Returns a specification (key material) of the given key + * in the requested format. + * + * @param key the key + * + * @param keySpec the requested format in which the key material shall be + * returned + * + * @return the underlying key specification (key material) in the + * requested format + * + * @exception InvalidKeySpecException if the requested key + * specification is inappropriate for the given key, or the + * given key cannot be processed (e.g., the given key has an + * unrecognized algorithm or format). + */ + protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) + throws InvalidKeySpecException { + if (key instanceof javax.crypto.interfaces.PBEKey) { + // Check if requested key spec is amongst the valid ones + if ((keySpecCl != null) + && PBEKeySpec.class.isAssignableFrom(keySpecCl)) { + javax.crypto.interfaces.PBEKey pKey = + (javax.crypto.interfaces.PBEKey) key; + return new PBEKeySpec + (pKey.getPassword(), pKey.getSalt(), + pKey.getIterationCount(), pKey.getEncoded().length*8); + } else { + throw new InvalidKeySpecException("Invalid key spec"); + } + } else { + throw new InvalidKeySpecException("Invalid key " + + "format/algorithm"); + } + } + + /** + * Translates a SecretKey object, whose provider may be + * unknown or potentially untrusted, into a corresponding + * SecretKey object of this key factory. + * + * @param key the key whose provider is unknown or untrusted + * + * @return the translated key + * + * @exception InvalidKeyException if the given key cannot be processed by + * this key factory. + */ + protected SecretKey engineTranslateKey(SecretKey key) + throws InvalidKeyException { + if ((key != null) && + (key.getAlgorithm().equalsIgnoreCase("PBKDF2With" + prfAlgo)) && + (key.getFormat().equalsIgnoreCase("RAW"))) { + + // Check if key originates from this factory + if (key instanceof com.sun.crypto.provider.PBKDF2KeyImpl) { + return key; + } + // Check if key implements the PBEKey + if (key instanceof javax.crypto.interfaces.PBEKey) { + javax.crypto.interfaces.PBEKey pKey = + (javax.crypto.interfaces.PBEKey) key; + try { + PBEKeySpec spec = + new PBEKeySpec(pKey.getPassword(), + pKey.getSalt(), + pKey.getIterationCount(), + pKey.getEncoded().length*8); + return new PBKDF2KeyImpl(spec, prfAlgo); + } catch (InvalidKeySpecException re) { + InvalidKeyException ike = new InvalidKeyException + ("Invalid key component(s)"); + ike.initCause(re); + throw ike; + } + } + } + throw new InvalidKeyException("Invalid key format/algorithm"); + } + + public static final class HmacSHA1 extends PBKDF2Core { + public HmacSHA1() { + super("HmacSHA1"); + } + } + + public static final class HmacSHA224 extends PBKDF2Core { + public HmacSHA224() { + super("HmacSHA224"); + } + } + + public static final class HmacSHA256 extends PBKDF2Core { + public HmacSHA256() { + super("HmacSHA256"); + } + } + + public static final class HmacSHA384 extends PBKDF2Core { + public HmacSHA384() { + super("HmacSHA384"); + } + } + + public static final class HmacSHA512 extends PBKDF2Core { + public HmacSHA512() { + super("HmacSHA512"); + } + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/PBMAC1Core.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBMAC1Core.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,216 @@ +/* + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.crypto.provider; + +import java.util.Arrays; +import java.nio.ByteBuffer; + +import javax.crypto.MacSpi; +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.PBEParameterSpec; +import java.security.*; +import java.security.spec.*; + +/** + * This is an implementation of the PBMAC1 algorithms as defined + * in PKCS#5 v2.1 standard. + */ +abstract class PBMAC1Core extends HmacCore { + + private static final int DEFAULT_SALT_LENGTH = 20; + private static final int DEFAULT_COUNT = 4096; + + private final String kdfAlgo; + private final String hashAlgo; + private final PBKDF2Core kdf; + private final int blockLength; // in octets + + /** + * Creates an instance of PBMAC1 according to the selected + * password-based key derivation function. + */ + PBMAC1Core(String kdfAlgo, String hashAlgo, int blockLength) + throws NoSuchAlgorithmException { + + super(hashAlgo, blockLength); + this.kdfAlgo = kdfAlgo; + this.hashAlgo = hashAlgo; + this.blockLength = blockLength; + + switch(kdfAlgo) { + case "HmacSHA1": + kdf = new PBKDF2Core.HmacSHA1(); + break; + case "HmacSHA224": + kdf = new PBKDF2Core.HmacSHA224(); + break; + case "HmacSHA256": + kdf = new PBKDF2Core.HmacSHA256(); + break; + case "HmacSHA384": + kdf = new PBKDF2Core.HmacSHA384(); + break; + case "HmacSHA512": + kdf = new PBKDF2Core.HmacSHA512(); + break; + default: + throw new NoSuchAlgorithmException( + "No MAC implementation for " + kdfAlgo); + } + } + + /** + * Initializes the HMAC with the given secret key and algorithm parameters. + * + * @param key the secret key. + * @param params the algorithm parameters. + * + * @exception InvalidKeyException if the given key is inappropriate for + * initializing this MAC. + * @exception InvalidAlgorithmParameterException if the given algorithm + * parameters are inappropriate for this MAC. + */ + protected void engineInit(Key key, AlgorithmParameterSpec params) + throws InvalidKeyException, InvalidAlgorithmParameterException { + char[] passwdChars; + byte[] salt = null; + int iCount = 0; + if (key instanceof javax.crypto.interfaces.PBEKey) { + javax.crypto.interfaces.PBEKey pbeKey = + (javax.crypto.interfaces.PBEKey) key; + passwdChars = pbeKey.getPassword(); + salt = pbeKey.getSalt(); // maybe null if unspecified + iCount = pbeKey.getIterationCount(); // maybe 0 if unspecified + } else if (key instanceof SecretKey) { + byte[] passwdBytes = key.getEncoded(); + if ((passwdBytes == null) || + !(key.getAlgorithm().regionMatches(true, 0, "PBE", 0, 3))) { + throw new InvalidKeyException("Missing password"); + } + passwdChars = new char[passwdBytes.length]; + for (int i=0; i>> 8) & 0xFF); passwd[j+1] = (byte) (chars[i] & 0xFF); } - int v = 512 / 8; - int u = 160 / 8; - int c = roundup(n, u) / u; - byte[] D = new byte[v]; - int s = roundup(salt.length, v); - int p = roundup(passwd.length, v); - byte[] I = new byte[s + p]; byte[] key = new byte[n]; - Arrays.fill(D, (byte)type); - concat(salt, I, 0, s); - concat(passwd, I, s, p); + try { + MessageDigest sha = MessageDigest.getInstance(hashAlgo); - try { - MessageDigest sha = MessageDigest.getInstance("SHA1"); + int v = blockLength; + int u = sha.getDigestLength(); + int c = roundup(n, u) / u; + byte[] D = new byte[v]; + int s = roundup(salt.length, v); + int p = roundup(passwd.length, v); + byte[] I = new byte[s + p]; + + Arrays.fill(D, (byte)type); + concat(salt, I, 0, s); + concat(passwd, I, s, p); + byte[] Ai; byte[] B = new byte[v]; byte[] tmp = new byte[v]; @@ -150,23 +165,30 @@ PKCS12PBECipherCore(String symmCipherAlg, int defKeySize) throws NoSuchAlgorithmException { + algo = symmCipherAlg; - SymmetricCipher symmCipher = null; - if (algo.equals("DESede")) { - symmCipher = new DESedeCrypt(); - } else if (algo.equals("RC2")) { - symmCipher = new RC2Crypt(); + if (algo.equals("RC4")) { + pbeAlgo = "PBEWithSHA1AndRC4_" + defKeySize * 8; } else { - throw new NoSuchAlgorithmException("No Cipher implementation " + + SymmetricCipher symmCipher = null; + if (algo.equals("DESede")) { + symmCipher = new DESedeCrypt(); + pbeAlgo = "PBEWithSHA1AndDESede"; + } else if (algo.equals("RC2")) { + symmCipher = new RC2Crypt(); + pbeAlgo = "PBEWithSHA1AndRC2_" + defKeySize * 8; + } else { + throw new NoSuchAlgorithmException("No Cipher implementation " + "for PBEWithSHA1And" + algo); - } - blockSize = symmCipher.getBlockSize(); - cipher = new CipherCore(symmCipher, blockSize); - cipher.setMode("CBC"); - try { - cipher.setPadding("PKCS5Padding"); - } catch (NoSuchPaddingException nspe) { - // should not happen + } + blockSize = symmCipher.getBlockSize(); + cipher = new CipherCore(symmCipher, blockSize); + cipher.setMode("CBC"); + try { + cipher.setPadding("PKCS5Padding"); + } catch (NoSuchPaddingException nspe) { + // should not happen + } } keySize = defKeySize; } @@ -210,8 +232,7 @@ } PBEParameterSpec pbeSpec = new PBEParameterSpec(salt, iCount); try { - params = AlgorithmParameters.getInstance("PBEWithSHA1And" + - (algo.equalsIgnoreCase("RC2")?"RC2_40":algo), "SunJCE"); + params = AlgorithmParameters.getInstance(pbeAlgo, "SunJCE"); } catch (GeneralSecurityException gse) { // should never happen throw new RuntimeException( @@ -229,6 +250,13 @@ void implInit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException { + implInit(opmode, key, params, random, null); + } + + void implInit(int opmode, Key key, AlgorithmParameterSpec params, + SecureRandom random, CipherSpi cipherImpl) + throws InvalidKeyException, + InvalidAlgorithmParameterException { char[] passwdChars = null; salt = null; iCount = 0; @@ -309,17 +337,29 @@ byte[] derivedKey = derive(passwdChars, salt, iCount, keySize, CIPHER_KEY); SecretKey cipherKey = new SecretKeySpec(derivedKey, algo); - byte[] derivedIv = derive(passwdChars, salt, iCount, 8, + + if (cipherImpl != null && cipherImpl instanceof ARCFOURCipher) { + ((ARCFOURCipher)cipherImpl).engineInit(opmode, cipherKey, random); + + } else { + byte[] derivedIv = derive(passwdChars, salt, iCount, 8, CIPHER_IV); - IvParameterSpec ivSpec = new IvParameterSpec(derivedIv, 0, 8); + IvParameterSpec ivSpec = new IvParameterSpec(derivedIv, 0, 8); - // initialize the underlying cipher - cipher.init(opmode, cipherKey, ivSpec, random); + // initialize the underlying cipher + cipher.init(opmode, cipherKey, ivSpec, random); + } } void implInit(int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException { + implInit(opmode, key, params, random, null); + } + + void implInit(int opmode, Key key, AlgorithmParameters params, + SecureRandom random, CipherSpi cipherImpl) + throws InvalidKeyException, InvalidAlgorithmParameterException { AlgorithmParameterSpec paramSpec = null; if (params != null) { try { @@ -329,13 +369,19 @@ "requires PBE parameters"); } } - implInit(opmode, key, paramSpec, random); + implInit(opmode, key, paramSpec, random, cipherImpl); } void implInit(int opmode, Key key, SecureRandom random) throws InvalidKeyException { + implInit(opmode, key, random, null); + } + + void implInit(int opmode, Key key, SecureRandom random, + CipherSpi cipherImpl) throws InvalidKeyException { try { - implInit(opmode, key, (AlgorithmParameterSpec) null, random); + implInit(opmode, key, (AlgorithmParameterSpec) null, random, + cipherImpl); } catch (InvalidAlgorithmParameterException iape) { throw new InvalidKeyException("requires PBE parameters"); } @@ -526,4 +572,245 @@ return core.implWrap(key); } } + + public static final class PBEWithSHA1AndRC2_128 extends CipherSpi { + private final PKCS12PBECipherCore core; + public PBEWithSHA1AndRC2_128() throws NoSuchAlgorithmException { + core = new PKCS12PBECipherCore("RC2", 16); + } + protected byte[] engineDoFinal(byte[] in, int inOff, int inLen) + throws IllegalBlockSizeException, BadPaddingException { + return core.implDoFinal(in, inOff, inLen); + } + protected int engineDoFinal(byte[] in, int inOff, int inLen, + byte[] out, int outOff) + throws ShortBufferException, IllegalBlockSizeException, + BadPaddingException { + return core.implDoFinal(in, inOff, inLen, out, outOff); + } + protected int engineGetBlockSize() { + return core.implGetBlockSize(); + } + protected byte[] engineGetIV() { + return core.implGetIV(); + } + protected int engineGetKeySize(Key key) throws InvalidKeyException { + return core.implGetKeySize(key); + } + protected int engineGetOutputSize(int inLen) { + return core.implGetOutputSize(inLen); + } + protected AlgorithmParameters engineGetParameters() { + return core.implGetParameters(); + } + protected void engineInit(int opmode, Key key, + AlgorithmParameterSpec params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + core.implInit(opmode, key, params, random); + } + protected void engineInit(int opmode, Key key, + AlgorithmParameters params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + core.implInit(opmode, key, params, random); + } + protected void engineInit(int opmode, Key key, SecureRandom random) + throws InvalidKeyException { + core.implInit(opmode, key, random); + } + protected void engineSetMode(String mode) + throws NoSuchAlgorithmException { + core.implSetMode(mode); + } + protected void engineSetPadding(String paddingScheme) + throws NoSuchPaddingException { + core.implSetPadding(paddingScheme); + } + protected Key engineUnwrap(byte[] wrappedKey, + String wrappedKeyAlgorithm, + int wrappedKeyType) + throws InvalidKeyException, NoSuchAlgorithmException { + return core.implUnwrap(wrappedKey, wrappedKeyAlgorithm, + wrappedKeyType); + } + protected byte[] engineUpdate(byte[] in, int inOff, int inLen) { + return core.implUpdate(in, inOff, inLen); + } + protected int engineUpdate(byte[] in, int inOff, int inLen, + byte[] out, int outOff) + throws ShortBufferException { + return core.implUpdate(in, inOff, inLen, out, outOff); + } + protected byte[] engineWrap(Key key) + throws IllegalBlockSizeException, InvalidKeyException { + return core.implWrap(key); + } + } + + public static final class PBEWithSHA1AndRC4_40 extends CipherSpi { + private static final int RC4_KEYSIZE = 5; + private final PKCS12PBECipherCore core; + private final ARCFOURCipher cipher; + + public PBEWithSHA1AndRC4_40() throws NoSuchAlgorithmException { + core = new PKCS12PBECipherCore("RC4", RC4_KEYSIZE); + cipher = new ARCFOURCipher(); + } + protected byte[] engineDoFinal(byte[] in, int inOff, int inLen) + throws IllegalBlockSizeException, BadPaddingException { + return cipher.engineDoFinal(in, inOff, inLen); + } + protected int engineDoFinal(byte[] in, int inOff, int inLen, + byte[] out, int outOff) + throws ShortBufferException, IllegalBlockSizeException, + BadPaddingException { + return cipher.engineDoFinal(in, inOff, inLen, out, outOff); + } + protected int engineGetBlockSize() { + return cipher.engineGetBlockSize(); + } + protected byte[] engineGetIV() { + return cipher.engineGetIV(); + } + protected int engineGetKeySize(Key key) throws InvalidKeyException { + return RC4_KEYSIZE; + } + protected int engineGetOutputSize(int inLen) { + return cipher.engineGetOutputSize(inLen); + } + protected AlgorithmParameters engineGetParameters() { + return core.implGetParameters(); + } + protected void engineInit(int opmode, Key key, + AlgorithmParameterSpec params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + core.implInit(opmode, key, params, random, cipher); + } + protected void engineInit(int opmode, Key key, + AlgorithmParameters params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + core.implInit(opmode, key, params, random, cipher); + } + protected void engineInit(int opmode, Key key, SecureRandom random) + throws InvalidKeyException { + core.implInit(opmode, key, random, cipher); + } + protected void engineSetMode(String mode) + throws NoSuchAlgorithmException { + if (mode.equalsIgnoreCase("ECB") == false) { + throw new NoSuchAlgorithmException("Unsupported mode " + mode); + } + } + protected void engineSetPadding(String paddingScheme) + throws NoSuchPaddingException { + if (paddingScheme.equalsIgnoreCase("NoPadding") == false) { + throw new NoSuchPaddingException("Padding must be NoPadding"); + } + } + protected Key engineUnwrap(byte[] wrappedKey, + String wrappedKeyAlgorithm, + int wrappedKeyType) + throws InvalidKeyException, NoSuchAlgorithmException { + return cipher.engineUnwrap(wrappedKey, wrappedKeyAlgorithm, + wrappedKeyType); + } + protected byte[] engineUpdate(byte[] in, int inOff, int inLen) { + return cipher.engineUpdate(in, inOff, inLen); + } + protected int engineUpdate(byte[] in, int inOff, int inLen, + byte[] out, int outOff) + throws ShortBufferException { + return cipher.engineUpdate(in, inOff, inLen, out, outOff); + } + protected byte[] engineWrap(Key key) + throws IllegalBlockSizeException, InvalidKeyException { + return cipher.engineWrap(key); + } + } + + public static final class PBEWithSHA1AndRC4_128 extends CipherSpi { + private static final int RC4_KEYSIZE = 16; + private final PKCS12PBECipherCore core; + private final ARCFOURCipher cipher; + + public PBEWithSHA1AndRC4_128() throws NoSuchAlgorithmException { + core = new PKCS12PBECipherCore("RC4", RC4_KEYSIZE); + cipher = new ARCFOURCipher(); + } + protected byte[] engineDoFinal(byte[] in, int inOff, int inLen) + throws IllegalBlockSizeException, BadPaddingException { + return cipher.engineDoFinal(in, inOff, inLen); + } + protected int engineDoFinal(byte[] in, int inOff, int inLen, + byte[] out, int outOff) + throws ShortBufferException, IllegalBlockSizeException, + BadPaddingException { + return cipher.engineDoFinal(in, inOff, inLen, out, outOff); + } + protected int engineGetBlockSize() { + return cipher.engineGetBlockSize(); + } + protected byte[] engineGetIV() { + return cipher.engineGetIV(); + } + protected int engineGetKeySize(Key key) throws InvalidKeyException { + return RC4_KEYSIZE; + } + protected int engineGetOutputSize(int inLen) { + return cipher.engineGetOutputSize(inLen); + } + protected AlgorithmParameters engineGetParameters() { + return core.implGetParameters(); + } + protected void engineInit(int opmode, Key key, + AlgorithmParameterSpec params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + core.implInit(opmode, key, params, random, cipher); + } + protected void engineInit(int opmode, Key key, + AlgorithmParameters params, + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + core.implInit(opmode, key, params, random, cipher); + } + protected void engineInit(int opmode, Key key, SecureRandom random) + throws InvalidKeyException { + core.implInit(opmode, key, random, cipher); + } + protected void engineSetMode(String mode) + throws NoSuchAlgorithmException { + if (mode.equalsIgnoreCase("ECB") == false) { + throw new NoSuchAlgorithmException("Unsupported mode " + mode); + } + } + protected void engineSetPadding(String paddingScheme) + throws NoSuchPaddingException { + if (paddingScheme.equalsIgnoreCase("NoPadding") == false) { + throw new NoSuchPaddingException("Padding must be NoPadding"); + } + } + protected Key engineUnwrap(byte[] wrappedKey, + String wrappedKeyAlgorithm, + int wrappedKeyType) + throws InvalidKeyException, NoSuchAlgorithmException { + return cipher.engineUnwrap(wrappedKey, wrappedKeyAlgorithm, + wrappedKeyType); + } + protected byte[] engineUpdate(byte[] in, int inOff, int inLen) { + return cipher.engineUpdate(in, inOff, inLen); + } + protected int engineUpdate(byte[] in, int inOff, int inLen, + byte[] out, int outOff) + throws ShortBufferException { + return cipher.engineUpdate(in, inOff, inLen, out, outOff); + } + protected byte[] engineWrap(Key key) + throws IllegalBlockSizeException, InvalidKeyException { + return cipher.engineWrap(key); + } + } } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java --- a/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Wed Jul 05 18:29:53 2017 +0200 @@ -77,10 +77,14 @@ "(implements RSA, DES, Triple DES, AES, Blowfish, ARCFOUR, RC2, PBE, " + "Diffie-Hellman, HMAC)"; + private static final String OID_PKCS12_RC4_128 = "1.2.840.113549.1.12.1.1"; + private static final String OID_PKCS12_RC4_40 = "1.2.840.113549.1.12.1.2"; + private static final String OID_PKCS12_DESede = "1.2.840.113549.1.12.1.3"; + private static final String OID_PKCS12_RC2_128 = "1.2.840.113549.1.12.1.5"; private static final String OID_PKCS12_RC2_40 = "1.2.840.113549.1.12.1.6"; - private static final String OID_PKCS12_DESede = "1.2.840.113549.1.12.1.3"; private static final String OID_PKCS5_MD5_DES = "1.2.840.113549.1.5.3"; private static final String OID_PKCS5_PBKDF2 = "1.2.840.113549.1.5.12"; + private static final String OID_PKCS5_PBES2 = "1.2.840.113549.1.5.13"; private static final String OID_PKCS3 = "1.2.840.113549.1.3.1"; /* Are we debugging? -- for developers */ @@ -138,14 +142,26 @@ put("Cipher.DESedeWrap SupportedPaddings", "NOPADDING"); put("Cipher.DESedeWrap SupportedKeyFormats", "RAW"); + // PBES1 + put("Cipher.PBEWithMD5AndDES", "com.sun.crypto.provider.PBEWithMD5AndDESCipher"); put("Alg.Alias.Cipher.OID."+OID_PKCS5_MD5_DES, "PBEWithMD5AndDES"); put("Alg.Alias.Cipher."+OID_PKCS5_MD5_DES, "PBEWithMD5AndDES"); + put("Cipher.PBEWithMD5AndTripleDES", "com.sun.crypto.provider.PBEWithMD5AndTripleDESCipher"); + + put("Cipher.PBEWithSHA1AndDESede", + "com.sun.crypto.provider.PKCS12PBECipherCore$" + + "PBEWithSHA1AndDESede"); + put("Alg.Alias.Cipher.OID." + OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); + put("Alg.Alias.Cipher." + OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); + put("Cipher.PBEWithSHA1AndRC2_40", "com.sun.crypto.provider.PKCS12PBECipherCore$" + "PBEWithSHA1AndRC2_40"); @@ -153,13 +169,70 @@ "PBEWithSHA1AndRC2_40"); put("Alg.Alias.Cipher." + OID_PKCS12_RC2_40, "PBEWithSHA1AndRC2_40"); - put("Cipher.PBEWithSHA1AndDESede", + + put("Cipher.PBEWithSHA1AndRC2_128", + "com.sun.crypto.provider.PKCS12PBECipherCore$" + + "PBEWithSHA1AndRC2_128"); + put("Alg.Alias.Cipher.OID." + OID_PKCS12_RC2_128, + "PBEWithSHA1AndRC2_128"); + put("Alg.Alias.Cipher." + OID_PKCS12_RC2_128, + "PBEWithSHA1AndRC2_128"); + + put("Cipher.PBEWithSHA1AndRC4_40", + "com.sun.crypto.provider.PKCS12PBECipherCore$" + + "PBEWithSHA1AndRC4_40"); + put("Alg.Alias.Cipher.OID." + OID_PKCS12_RC4_40, + "PBEWithSHA1AndRC4_40"); + put("Alg.Alias.Cipher." + OID_PKCS12_RC4_40, + "PBEWithSHA1AndRC4_40"); + + put("Cipher.PBEWithSHA1AndRC4_128", "com.sun.crypto.provider.PKCS12PBECipherCore$" + - "PBEWithSHA1AndDESede"); - put("Alg.Alias.Cipher.OID." + OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); - put("Alg.Alias.Cipher." + OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); + "PBEWithSHA1AndRC4_128"); + put("Alg.Alias.Cipher.OID." + OID_PKCS12_RC4_128, + "PBEWithSHA1AndRC4_128"); + put("Alg.Alias.Cipher." + OID_PKCS12_RC4_128, + "PBEWithSHA1AndRC4_128"); + + //PBES2 + + put("Cipher.PBEWithHmacSHA1AndAES_128", + "com.sun.crypto.provider.PBES2Core$HmacSHA1AndAES_128"); + + put("Cipher.PBEWithHmacSHA224AndAES_128", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA224AndAES_128"); + + put("Cipher.PBEWithHmacSHA256AndAES_128", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA256AndAES_128"); + + put("Cipher.PBEWithHmacSHA384AndAES_128", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA384AndAES_128"); + + put("Cipher.PBEWithHmacSHA512AndAES_128", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA512AndAES_128"); + + put("Cipher.PBEWithHmacSHA1AndAES_256", + "com.sun.crypto.provider.PBES2Core$HmacSHA1AndAES_256"); + + put("Cipher.PBEWithHmacSHA224AndAES_256", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA224AndAES_256"); + + put("Cipher.PBEWithHmacSHA256AndAES_256", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA256AndAES_256"); + + put("Cipher.PBEWithHmacSHA384AndAES_256", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA384AndAES_256"); + + put("Cipher.PBEWithHmacSHA512AndAES_256", + "com.sun.crypto.provider.PBES2Core$" + + "HmacSHA512AndAES_256"); put("Cipher.Blowfish", "com.sun.crypto.provider.BlowfishCipher"); @@ -301,6 +374,7 @@ "DiffieHellman"); put("Alg.Alias.KeyPairGenerator."+OID_PKCS3, "DiffieHellman"); + /* * Algorithm parameter generation engines */ @@ -371,6 +445,64 @@ put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC2_40, "PBEWithSHA1AndRC2_40"); + put("AlgorithmParameters.PBEWithSHA1AndRC2_128", + "com.sun.crypto.provider.PBEParameters"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_RC2_128, + "PBEWithSHA1AndRC2_128"); + put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC2_128, + "PBEWithSHA1AndRC2_128"); + + put("AlgorithmParameters.PBEWithSHA1AndRC4_40", + "com.sun.crypto.provider.PBEParameters"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_RC4_40, + "PBEWithSHA1AndRC4_40"); + put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC4_40, + "PBEWithSHA1AndRC4_40"); + + put("AlgorithmParameters.PBEWithSHA1AndRC4_128", + "com.sun.crypto.provider.PBEParameters"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_RC4_128, + "PBEWithSHA1AndRC4_128"); + put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC4_128, + "PBEWithSHA1AndRC4_128"); + + put("AlgorithmParameters.PBES2", + "com.sun.crypto.provider.PBES2Parameters$General"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS5_PBES2, + "PBES2"); + put("Alg.Alias.AlgorithmParameters." + OID_PKCS5_PBES2, + "PBES2"); + + put("AlgorithmParameters.PBEWithHmacSHA1AndAES_128", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA1AndAES_128"); + + put("AlgorithmParameters.PBEWithHmacSHA224AndAES_128", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA224AndAES_128"); + + put("AlgorithmParameters.PBEWithHmacSHA256AndAES_128", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA256AndAES_128"); + + put("AlgorithmParameters.PBEWithHmacSHA384AndAES_128", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA384AndAES_128"); + + put("AlgorithmParameters.PBEWithHmacSHA512AndAES_128", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA512AndAES_128"); + + put("AlgorithmParameters.PBEWithHmacSHA1AndAES_256", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA1AndAES_256"); + + put("AlgorithmParameters.PBEWithHmacSHA224AndAES_256", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA224AndAES_256"); + + put("AlgorithmParameters.PBEWithHmacSHA256AndAES_256", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA256AndAES_256"); + + put("AlgorithmParameters.PBEWithHmacSHA384AndAES_256", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA384AndAES_256"); + + put("AlgorithmParameters.PBEWithHmacSHA512AndAES_256", + "com.sun.crypto.provider.PBES2Parameters$HmacSHA512AndAES_256"); + put("AlgorithmParameters.Blowfish", "com.sun.crypto.provider.BlowfishParameters"); @@ -378,6 +510,7 @@ "com.sun.crypto.provider.AESParameters"); put("Alg.Alias.AlgorithmParameters.Rijndael", "AES"); + put("AlgorithmParameters.RC2", "com.sun.crypto.provider.RC2Parameters"); @@ -393,6 +526,7 @@ put("Alg.Alias.KeyFactory.OID."+OID_PKCS3, "DiffieHellman"); put("Alg.Alias.KeyFactory."+OID_PKCS3, "DiffieHellman"); + /* * Secret-key factories */ @@ -441,13 +575,90 @@ put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC2_40, "PBEWithSHA1AndRC2_40"); + put("SecretKeyFactory.PBEWithSHA1AndRC2_128", + "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC2_128" + ); + put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS12_RC2_128, + "PBEWithSHA1AndRC2_128"); + put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC2_128, + "PBEWithSHA1AndRC2_128"); + + put("SecretKeyFactory.PBEWithSHA1AndRC4_40", + "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC4_40" + ); + + put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS12_RC4_40, + "PBEWithSHA1AndRC4_40"); + put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC4_40, + "PBEWithSHA1AndRC4_40"); + + put("SecretKeyFactory.PBEWithSHA1AndRC4_128", + "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC4_128" + ); + + put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS12_RC4_128, + "PBEWithSHA1AndRC4_128"); + put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC4_128, + "PBEWithSHA1AndRC4_128"); + + put("SecretKeyFactory.PBEWithHmacSHA1AndAES_128", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA1AndAES_128"); + + put("SecretKeyFactory.PBEWithHmacSHA224AndAES_128", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA224AndAES_128"); + + put("SecretKeyFactory.PBEWithHmacSHA256AndAES_128", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA256AndAES_128"); + + put("SecretKeyFactory.PBEWithHmacSHA384AndAES_128", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA384AndAES_128"); + + put("SecretKeyFactory.PBEWithHmacSHA512AndAES_128", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA512AndAES_128"); + + put("SecretKeyFactory.PBEWithHmacSHA1AndAES_256", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA1AndAES_256"); + + put("SecretKeyFactory.PBEWithHmacSHA224AndAES_256", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA224AndAES_256"); + + put("SecretKeyFactory.PBEWithHmacSHA256AndAES_256", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA256AndAES_256"); + + put("SecretKeyFactory.PBEWithHmacSHA384AndAES_256", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA384AndAES_256"); + + put("SecretKeyFactory.PBEWithHmacSHA512AndAES_256", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithHmacSHA512AndAES_256"); + + // PBKDF2 + put("SecretKeyFactory.PBKDF2WithHmacSHA1", - "com.sun.crypto.provider.PBKDF2HmacSHA1Factory"); + "com.sun.crypto.provider.PBKDF2Core$HmacSHA1"); put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS5_PBKDF2, "PBKDF2WithHmacSHA1"); put("Alg.Alias.SecretKeyFactory." + OID_PKCS5_PBKDF2, "PBKDF2WithHmacSHA1"); + put("SecretKeyFactory.PBKDF2WithHmacSHA224", + "com.sun.crypto.provider.PBKDF2Core$HmacSHA224"); + put("SecretKeyFactory.PBKDF2WithHmacSHA256", + "com.sun.crypto.provider.PBKDF2Core$HmacSHA256"); + put("SecretKeyFactory.PBKDF2WithHmacSHA384", + "com.sun.crypto.provider.PBKDF2Core$HmacSHA384"); + put("SecretKeyFactory.PBKDF2WithHmacSHA512", + "com.sun.crypto.provider.PBKDF2Core$HmacSHA512"); + /* * MAC */ @@ -475,6 +686,19 @@ put("Mac.HmacPBESHA1", "com.sun.crypto.provider.HmacPKCS12PBESHA1"); + // PBMAC1 + + put("Mac.PBEWithHmacSHA1", + "com.sun.crypto.provider.PBMAC1Core$HmacSHA1"); + put("Mac.PBEWithHmacSHA224", + "com.sun.crypto.provider.PBMAC1Core$HmacSHA224"); + put("Mac.PBEWithHmacSHA256", + "com.sun.crypto.provider.PBMAC1Core$HmacSHA256"); + put("Mac.PBEWithHmacSHA384", + "com.sun.crypto.provider.PBMAC1Core$HmacSHA384"); + put("Mac.PBEWithHmacSHA512", + "com.sun.crypto.provider.PBMAC1Core$HmacSHA512"); + put("Mac.SslMacMD5", "com.sun.crypto.provider.SslMacCore$SslMacMD5"); put("Mac.SslMacSHA1", @@ -487,6 +711,10 @@ put("Mac.HmacSHA384 SupportedKeyFormats", "RAW"); put("Mac.HmacSHA512 SupportedKeyFormats", "RAW"); put("Mac.HmacPBESHA1 SupportedKeyFormats", "RAW"); + put("Mac.HmacPBESHA224 SupportedKeyFormats", "RAW"); + put("Mac.HmacPBESHA256 SupportedKeyFormats", "RAW"); + put("Mac.HmacPBESHA384 SupportedKeyFormats", "RAW"); + put("Mac.HmacPBESHA512 SupportedKeyFormats", "RAW"); put("Mac.SslMacMD5 SupportedKeyFormats", "RAW"); put("Mac.SslMacSHA1 SupportedKeyFormats", "RAW"); diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/java/util/jar/pack/Constants.java --- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Constants.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Constants.java Wed Jul 05 18:29:53 2017 +0200 @@ -59,6 +59,9 @@ public final static Package.Version JAVA7_MAX_CLASS_VERSION = Package.Version.of(51, 00); + public final static Package.Version JAVA8_MAX_CLASS_VERSION = + Package.Version.of(52, 00); + public final static int JAVA_PACKAGE_MAGIC = 0xCAFED00D; public final static Package.Version JAVA5_PACKAGE_VERSION = @@ -72,7 +75,7 @@ // upper limit, should point to the latest class version public final static Package.Version JAVA_MAX_CLASS_VERSION = - JAVA7_MAX_CLASS_VERSION; + JAVA8_MAX_CLASS_VERSION; // upper limit should point to the latest package version, for version info!. public final static Package.Version MAX_PACKAGE_VERSION = diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java --- a/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java Wed Jul 05 18:29:53 2017 +0200 @@ -542,14 +542,26 @@ try { NamingEnumeration resources = helper.getResources(cl, APP_RESOURCE_FILE_NAME); - while (resources.hasMore()) { - Properties props = new Properties(); - props.load(resources.next()); + try { + while (resources.hasMore()) { + Properties props = new Properties(); + InputStream istream = resources.next(); + try { + props.load(istream); + } finally { + istream.close(); + } - if (result == null) { - result = props; - } else { - mergeTables(result, props); + if (result == null) { + result = props; + } else { + mergeTables(result, props); + } + } + } finally { + while (resources.hasMore()) { + InputStream istream = (InputStream)resources.next(); + istream.close(); } } @@ -557,13 +569,17 @@ InputStream istream = helper.getJavaHomeLibStream(JRELIB_PROPERTY_FILE_NAME); if (istream != null) { - Properties props = new Properties(); - props.load(istream); + try { + Properties props = new Properties(); + props.load(istream); - if (result == null) { - result = props; - } else { - mergeTables(result, props); + if (result == null) { + result = props; + } else { + mergeTables(result, props); + } + } finally { + istream.close(); } } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.security.jgss; + +import org.ietf.jgss.*; + +/** + * The extended GSSCredential interface for supporting additional + * functionalities not defined by {@code org.ietf.jgss.GSSCredential}. + * @since 1.8 + */ +public interface ExtendedGSSCredential extends GSSCredential { + /** + * Impersonates a principal. In Kerberos, this can be implemented + * using the Microsoft S4U2self extension. + *

+ * A {@link GSSException#NO_CRED GSSException.NO_CRED} will be thrown if the + * impersonation fails. A {@link GSSException#FAILURE GSSException.FAILURE} + * will be thrown if the impersonation method is not available to this + * credential object. + * @param name the name of the principal to impersonate + * @return a credential for that principal + * @throws GSSException containing the following + * major error codes: + * {@link GSSException#NO_CRED GSSException.NO_CRED} + * {@link GSSException#FAILURE GSSException.FAILURE} + */ + public GSSCredential impersonate(GSSName name) throws GSSException; +} diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/java/lang/Character.java --- a/jdk/src/share/classes/java/lang/Character.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/java/lang/Character.java Wed Jul 05 18:29:53 2017 +0200 @@ -40,7 +40,7 @@ * a character's category (lowercase letter, digit, etc.) and for converting * characters from uppercase to lowercase and vice versa. *

- * Character information is based on the Unicode Standard, version 6.1.0. + * Character information is based on the Unicode Standard, version 6.2.0. *

* The methods and data of class {@code Character} are defined by * the information in the UnicodeData file that is part of the @@ -3758,8 +3758,7 @@ 0x0640, // 0640..0640; COMMON 0x0641, // 0641..064A; ARABIC 0x064B, // 064B..0655; INHERITED - 0x0656, // 0656..065E; ARABIC - 0x065F, // 065F..065F; INHERITED + 0x0656, // 0656..065F; ARABIC 0x0660, // 0660..0669; COMMON 0x066A, // 066A..066F; ARABIC 0x0670, // 0670..0670; INHERITED @@ -4081,7 +4080,6 @@ ARABIC, INHERITED, ARABIC, - INHERITED, COMMON, ARABIC, INHERITED, diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/java/lang/Math.java --- a/jdk/src/share/classes/java/lang/Math.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/java/lang/Math.java Wed Jul 05 18:29:53 2017 +0200 @@ -742,6 +742,7 @@ * @param y the second value * @return the result * @throws ArithmeticException if the result overflows an int + * @since 1.8 */ public static int addExact(int x, int y) { int r = x + y; @@ -760,6 +761,7 @@ * @param y the second value * @return the result * @throws ArithmeticException if the result overflows a long + * @since 1.8 */ public static long addExact(long x, long y) { long r = x + y; @@ -778,6 +780,7 @@ * @param y the second value to subtract from the first * @return the result * @throws ArithmeticException if the result overflows an int + * @since 1.8 */ public static int subtractExact(int x, int y) { int r = x - y; @@ -797,6 +800,7 @@ * @param y the second value to subtract from the first * @return the result * @throws ArithmeticException if the result overflows a long + * @since 1.8 */ public static long subtractExact(long x, long y) { long r = x - y; @@ -816,6 +820,7 @@ * @param y the second value * @return the result * @throws ArithmeticException if the result overflows an int + * @since 1.8 */ public static int multiplyExact(int x, int y) { long r = (long)x * (long)y; @@ -833,6 +838,7 @@ * @param y the second value * @return the result * @throws ArithmeticException if the result overflows a long + * @since 1.8 */ public static long multiplyExact(long x, long y) { long r = x * y; @@ -857,6 +863,7 @@ * @param value the long value * @return the argument as an int * @throws ArithmeticException if the {@code argument} overflows an int + * @since 1.8 */ public static int toIntExact(long value) { if ((int)value != value) { @@ -866,6 +873,159 @@ } /** + * Returns the largest (closest to positive infinity) + * {@code int} value that is less than or equal to the algebraic quotient. + * There is one special case, if the dividend is the + * {@linkplain Integer#MIN_VALUE Integer.MIN_VALUE} and the divisor is {@code -1}, + * then integer overflow occurs and + * the result is equal to the {@code Integer.MIN_VALUE}. + *

+ * Normal integer division operates under the round to zero rounding mode + * (truncation). This operation instead acts under the round toward + * negative infinity (floor) rounding mode. + * The floor rounding mode gives different results than truncation + * when the exact result is negative. + *

    + *
  • If the signs of the arguments are the same, the results of + * {@code floorDiv} and the {@code /} operator are the same.
    + * For example, {@code floorDiv(4, 3) == 1} and {@code (4 / 3) == 1}.
  • + *
  • If the signs of the arguments are different, the quotient is negative and + * {@code floorDiv} returns the integer less than or equal to the quotient + * and the {@code /} operator returns the integer closest to zero.
    + * For example, {@code floorDiv(-4, 3) == -2}, + * whereas {@code (-4 / 3) == -1}. + *
  • + *
+ *

+ * + * @param x the dividend + * @param y the divisor + * @return the largest (closest to positive infinity) + * {@code int} value that is less than or equal to the algebraic quotient. + * @throws ArithmeticException if the divisor {@code y} is zero + * @see #floorMod(int, int) + * @see #floor(double) + * @since 1.8 + */ + public static int floorDiv(int x, int y) { + int r = x / y; + // if the signs are different and modulo not zero, round down + if ((x ^ y) < 0 && (r * y != x)) { + r--; + } + return r; + } + + /** + * Returns the largest (closest to positive infinity) + * {@code long} value that is less than or equal to the algebraic quotient. + * There is one special case, if the dividend is the + * {@linkplain Long#MIN_VALUE Long.MIN_VALUE} and the divisor is {@code -1}, + * then integer overflow occurs and + * the result is equal to the {@code Long.MIN_VALUE}. + *

+ * Normal integer division operates under the round to zero rounding mode + * (truncation). This operation instead acts under the round toward + * negative infinity (floor) rounding mode. + * The floor rounding mode gives different results than truncation + * when the exact result is negative. + *

+ * For examples, see {@link #floorDiv(int, int)}. + * + * @param x the dividend + * @param y the divisor + * @return the largest (closest to positive infinity) + * {@code long} value that is less than or equal to the algebraic quotient. + * @throws ArithmeticException if the divisor {@code y} is zero + * @see #floorMod(long, long) + * @see #floor(double) + * @since 1.8 + */ + public static long floorDiv(long x, long y) { + long r = x / y; + // if the signs are different and modulo not zero, round down + if ((x ^ y) < 0 && (r * y != x)) { + r--; + } + return r; + } + + /** + * Returns the floor modulus of the {@code int} arguments. + *

+ * The floor modulus is {@code x - (floorDiv(x, y) * y)}, + * has the same sign as the divisor {@code y}, and + * is in the range of {@code -abs(y) < r < +abs(y)}. + * + *

+ * The relationship between {@code floorDiv} and {@code floorMod} is such that: + *

    + *
  • {@code floorDiv(x, y) * y + floorMod(x, y) == x} + *
+ *

+ * The difference in values between {@code floorMod} and + * the {@code %} operator is due to the difference between + * {@code floorDiv} that returns the integer less than or equal to the quotient + * and the {@code /} operator that returns the integer closest to zero. + *

+ * Examples: + *

    + *
  • If the signs of the arguments are the same, the results + * of {@code floorMod} and the {@code %} operator are the same.
    + *
      + *
    • {@code floorMod(4, 3) == 1};   and {@code (4 % 3) == 1}
    • + *
    + *
  • If the signs of the arguments are different, the results differ from the {@code %} operator.
    + *
      + *
    • {@code floorMod(+4, -3) == -2};   and {@code (+4 % -3) == +1}
    • + *
    • {@code floorMod(-4, +3) == +2};   and {@code (-4 % +3) == -1}
    • + *
    • {@code floorMod(-4, -3) == -1};   and {@code (-4 % -3) == -1 }
    • + *
    + *
  • + *
+ *

+ * If the signs of arguments are unknown and a positive modulus + * is needed it can be computed as {@code (floorMod(x, y) + abs(y)) % abs(y)}. + * + * @param x the dividend + * @param y the divisor + * @return the floor modulus {@code x - (floorDiv(x, y) * y)} + * @throws ArithmeticException if the divisor {@code y} is zero + * @see #floorDiv(int, int) + * @since 1.8 + */ + public static int floorMod(int x, int y) { + int r = x - floorDiv(x, y) * y; + return r; + } + + /** + * Returns the floor modulus of the {@code long} arguments. + *

+ * The floor modulus is {@code x - (floorDiv(x, y) * y)}, + * has the same sign as the divisor {@code y}, and + * is in the range of {@code -abs(y) < r < +abs(y)}. + * + *

+ * The relationship between {@code floorDiv} and {@code floorMod} is such that: + *

    + *
  • {@code floorDiv(x, y) * y + floorMod(x, y) == x} + *
+ *

+ * For examples, see {@link #floorMod(int, int)}. + * + * @param x the dividend + * @param y the divisor + * @return the floor modulus {@code x - (floorDiv(x, y) * y)} + * @throws ArithmeticException if the divisor {@code y} is zero + * @see #floorDiv(long, long) + * @since 1.8 + */ + public static long floorMod(long x, long y) { + return x - floorDiv(x, y) * y; + } + + /** * Returns the absolute value of an {@code int} value. * If the argument is not negative, the argument is returned. * If the argument is negative, the negation of the argument is returned. diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/java/lang/StrictMath.java --- a/jdk/src/share/classes/java/lang/StrictMath.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/java/lang/StrictMath.java Wed Jul 05 18:29:53 2017 +0200 @@ -365,7 +365,7 @@ * @param a the value to be floored or ceiled * @param negativeBoundary result for values in (-1, 0) * @param positiveBoundary result for values in (0, 1) - * @param sign the sign of the result + * @param increment value to add when the argument is non-integral */ private static double floorOrCeil(double a, double negativeBoundary, @@ -702,7 +702,7 @@ *

This method is properly synchronized to allow correct use by * more than one thread. However, if many threads need to generate * pseudorandom numbers at a great rate, it may reduce contention - * for each thread to have its own pseudorandom number generator. + * for each thread to have its own pseudorandom-number generator. * * @return a pseudorandom {@code double} greater than or equal * to {@code 0.0} and less than {@code 1.0}. @@ -745,7 +745,7 @@ } /** - * Return the difference of the arguments, + * Returns the difference of the arguments, * throwing an exception if the result overflows an {@code int}. * * @param x the first value @@ -760,7 +760,7 @@ } /** - * Return the difference of the arguments, + * Returns the difference of the arguments, * throwing an exception if the result overflows a {@code long}. * * @param x the first value @@ -775,7 +775,7 @@ } /** - * Return the product of the arguments, + * Returns the product of the arguments, * throwing an exception if the result overflows an {@code int}. * * @param x the first value @@ -790,7 +790,7 @@ } /** - * Return the product of the arguments, + * Returns the product of the arguments, * throwing an exception if the result overflows a {@code long}. * * @param x the first value @@ -805,7 +805,7 @@ } /** - * Return the value of the {@code long} argument; + * Returns the value of the {@code long} argument; * throwing an exception if the value overflows an {@code int}. * * @param value the long value @@ -819,6 +819,107 @@ } /** + * Returns the largest (closest to positive infinity) + * {@code int} value that is less than or equal to the algebraic quotient. + * There is one special case, if the dividend is the + * {@linkplain Integer#MIN_VALUE Integer.MIN_VALUE} and the divisor is {@code -1}, + * then integer overflow occurs and + * the result is equal to the {@code Integer.MIN_VALUE}. + *

+ * See {@link Math#floorDiv(int, int) Math.floorDiv} for examples and + * a comparison to the integer division {@code /} operator. + * + * @param x the dividend + * @param y the divisor + * @return the largest (closest to positive infinity) + * {@code int} value that is less than or equal to the algebraic quotient. + * @throws ArithmeticException if the divisor {@code y} is zero + * @see Math#floorDiv(int, int) + * @see Math#floor(double) + * @since 1.8 + */ + public static int floorDiv(int x, int y) { + return Math.floorDiv(x, y); + } + + /** + * Returns the largest (closest to positive infinity) + * {@code long} value that is less than or equal to the algebraic quotient. + * There is one special case, if the dividend is the + * {@linkplain Long#MIN_VALUE Long.MIN_VALUE} and the divisor is {@code -1}, + * then integer overflow occurs and + * the result is equal to the {@code Long.MIN_VALUE}. + *

+ * See {@link Math#floorDiv(int, int) Math.floorDiv} for examples and + * a comparison to the integer division {@code /} operator. + * + * @param x the dividend + * @param y the divisor + * @return the largest (closest to positive infinity) + * {@code long} value that is less than or equal to the algebraic quotient. + * @throws ArithmeticException if the divisor {@code y} is zero + * @see Math#floorDiv(long, long) + * @see Math#floor(double) + * @since 1.8 + */ + public static long floorDiv(long x, long y) { + return Math.floorDiv(x, y); + } + + /** + * Returns the floor modulus of the {@code int} arguments. + *

+ * The floor modulus is {@code x - (floorDiv(x, y) * y)}, + * has the same sign as the divisor {@code y}, and + * is in the range of {@code -abs(y) < r < +abs(y)}. + *

+ * The relationship between {@code floorDiv} and {@code floorMod} is such that: + *

    + *
  • {@code floorDiv(x, y) * y + floorMod(x, y) == x} + *
+ *

+ * See {@link Math#floorMod(int, int) Math.floorMod} for examples and + * a comparison to the {@code %} operator. + * + * @param x the dividend + * @param y the divisor + * @return the floor modulus {@code x - (floorDiv(x, y) * y)} + * @throws ArithmeticException if the divisor {@code y} is zero + * @see Math#floorMod(int, int) + * @see StrictMath#floorDiv(int, int) + * @since 1.8 + */ + public static int floorMod(int x, int y) { + return Math.floorMod(x , y); + } + /** + * Returns the floor modulus of the {@code long} arguments. + *

+ * The floor modulus is {@code x - (floorDiv(x, y) * y)}, + * has the same sign as the divisor {@code y}, and + * is in the range of {@code -abs(y) < r < +abs(y)}. + *

+ * The relationship between {@code floorDiv} and {@code floorMod} is such that: + *

    + *
  • {@code floorDiv(x, y) * y + floorMod(x, y) == x} + *
+ *

+ * See {@link Math#floorMod(int, int) Math.floorMod} for examples and + * a comparison to the {@code %} operator. + * + * @param x the dividend + * @param y the divisor + * @return the floor modulus {@code x - (floorDiv(x, y) * y)} + * @throws ArithmeticException if the divisor {@code y} is zero + * @see Math#floorMod(long, long) + * @see StrictMath#floorDiv(long, long) + * @since 1.8 + */ + public static long floorMod(long x, long y) { + return Math.floorMod(x, y); + } + + /** * Returns the absolute value of an {@code int} value. * If the argument is not negative, the argument is returned. * If the argument is negative, the negation of the argument is returned. @@ -1543,7 +1644,7 @@ } /** - * Return {@code d} × + * Returns {@code d} × * 2{@code scaleFactor} rounded as if performed * by a single correctly rounded floating-point multiply to a * member of the double value set. See the Java @@ -1577,7 +1678,7 @@ } /** - * Return {@code f} × + * Returns {@code f} × * 2{@code scaleFactor} rounded as if performed * by a single correctly rounded floating-point multiply to a * member of the float value set. See the Java diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/java/lang/annotation/ElementType.java --- a/jdk/src/share/classes/java/lang/annotation/ElementType.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/java/lang/annotation/ElementType.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,7 @@ /** Method declaration */ METHOD, - /** Parameter declaration */ + /** Formal parameter declaration */ PARAMETER, /** Constructor declaration */ @@ -59,5 +59,19 @@ ANNOTATION_TYPE, /** Package declaration */ - PACKAGE + PACKAGE, + + /** + * Type parameter declaration + * + * @since 1.8 + */ + TYPE_PARAMETER, + + /** + * Use of a type + * + * @since 1.8 + */ + TYPE_USE } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/java/security/cert/CertPathBuilder.java --- a/jdk/src/share/classes/java/security/cert/CertPathBuilder.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/java/security/cert/CertPathBuilder.java Wed Jul 05 18:29:53 2017 +0200 @@ -315,12 +315,14 @@ * Returns a {@code CertPathChecker} that the encapsulated * {@code CertPathBuilderSpi} implementation uses to check the revocation * status of certificates. A PKIX implementation returns objects of - * type {@code PKIXRevocationChecker}. + * type {@code PKIXRevocationChecker}. Each invocation of this method + * returns a new instance of {@code CertPathChecker}. * *

The primary purpose of this method is to allow callers to specify * additional input parameters and options specific to revocation checking. * See the class description for an example. * + * @return a {@code CertPathChecker} * @throws UnsupportedOperationException if the service provider does not * support this method * @since 1.8 diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/java/security/cert/CertPathValidator.java --- a/jdk/src/share/classes/java/security/cert/CertPathValidator.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/java/security/cert/CertPathValidator.java Wed Jul 05 18:29:53 2017 +0200 @@ -327,12 +327,14 @@ * Returns a {@code CertPathChecker} that the encapsulated * {@code CertPathValidatorSpi} implementation uses to check the revocation * status of certificates. A PKIX implementation returns objects of - * type {@code PKIXRevocationChecker}. + * type {@code PKIXRevocationChecker}. Each invocation of this method + * returns a new instance of {@code CertPathChecker}. * *

The primary purpose of this method is to allow callers to specify * additional input parameters and options specific to revocation checking. * See the class description for an example. * + * @return a {@code CertPathChecker} * @throws UnsupportedOperationException if the service provider does not * support this method * @since 1.8 diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/java/security/cert/PKIXRevocationChecker.java --- a/jdk/src/share/classes/java/security/cert/PKIXRevocationChecker.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/java/security/cert/PKIXRevocationChecker.java Wed Jul 05 18:29:53 2017 +0200 @@ -63,8 +63,8 @@ * and then the {@code PKIXParameters} is passed along with the {@code CertPath} * to be validated to the {@link CertPathValidator#validate validate} method * of a PKIX {@code CertPathValidator}. When supplying a revocation checker in - * this manner, do not enable the default revocation checking mechanism (by - * calling {@link PKIXParameters#setRevocationEnabled}. + * this manner, it will be used to check revocation irrespective of the setting + * of the {@link PKIXParameters#isRevocationEnabled RevocationEnabled} flag. * *

Note that when a {@code PKIXRevocationChecker} is added to * {@code PKIXParameters}, it clones the {@code PKIXRevocationChecker}; @@ -88,7 +88,7 @@ private URI ocspResponder; private X509Certificate ocspResponderCert; private List ocspExtensions = Collections.emptyList(); - private Map ocspStapled = Collections.emptyMap(); + private Map ocspResponses = Collections.emptyMap(); private Set

+ * This definition reflects MS-SFU. + */ + +public class PAForUserEnc { + final public PrincipalName name; + final private EncryptionKey key; + final public static String AUTH_PACKAGE = "Kerberos"; + + public PAForUserEnc(PrincipalName name, EncryptionKey key) { + this.name = name; + this.key = key; + } + + /** + * Constructs a PA-FOR-USER object from a DER encoding. + * @param encoding the input object + * @param key the key to verify the checksum inside encoding + * @throws KrbException if the verification fails. + * Note: this method is now only used by test KDC, therefore + * the verification is ignored (at the moment). + */ + public PAForUserEnc(DerValue encoding, EncryptionKey key) + throws Asn1Exception, KrbException, IOException { + DerValue der = null; + this.key = key; + + if (encoding.getTag() != DerValue.tag_Sequence) { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } + + // Realm after name? Quite abnormal. + PrincipalName tmpName = null; + der = encoding.getData().getDerValue(); + if ((der.getTag() & 0x1F) == 0x00) { + try { + tmpName = new PrincipalName(der.getData().getDerValue(), + new Realm("PLACEHOLDER")); + } catch (RealmException re) { + // Impossible + } + } else { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } + + der = encoding.getData().getDerValue(); + if ((der.getTag() & 0x1F) == 0x01) { + try { + Realm realm = new Realm(der.getData().getDerValue()); + name = new PrincipalName( + tmpName.getNameType(), tmpName.getNameStrings(), realm); + } catch (RealmException re) { + throw new IOException(re); + } + } else { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } + + der = encoding.getData().getDerValue(); + if ((der.getTag() & 0x1F) == 0x02) { + // Deal with the checksum + } else { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } + + der = encoding.getData().getDerValue(); + if ((der.getTag() & 0x1F) == 0x03) { + String authPackage = new KerberosString(der.getData().getDerValue()).toString(); + if (!authPackage.equalsIgnoreCase(AUTH_PACKAGE)) { + throw new IOException("Incorrect auth-package"); + } + } else { + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } + if (encoding.getData().available() > 0) + throw new Asn1Exception(Krb5.ASN1_BAD_ID); + } + + public byte[] asn1Encode() throws Asn1Exception, IOException { + DerOutputStream bytes = new DerOutputStream(); + bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x00), name.asn1Encode()); + bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), name.getRealm().asn1Encode()); + + try { + Checksum cks = new Checksum( + Checksum.CKSUMTYPE_HMAC_MD5_ARCFOUR, + getS4UByteArray(), + key, + KeyUsage.KU_PA_FOR_USER_ENC_CKSUM); + bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x02), cks.asn1Encode()); + } catch (KrbException ke) { + throw new IOException(ke); + } + + DerOutputStream temp = new DerOutputStream(); + temp.putDerValue(new KerberosString(AUTH_PACKAGE).toDerValue()); + bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x03), temp); + + temp = new DerOutputStream(); + temp.write(DerValue.tag_Sequence, bytes); + return temp.toByteArray(); + } + + /** + * Returns S4UByteArray, the block to calculate checksum inside a + * PA-FOR-USER-ENC data structure. It includes: + * 1. userName.name-type encoded as a 4-byte integer in little endian + * byte order + * 2. all string values in the sequence of strings contained in the + * userName.name-string field + * 3. the string value of the userRealm field + * 4. the string value of auth-package field + */ + public byte[] getS4UByteArray() { + try { + ByteArrayOutputStream ba = new ByteArrayOutputStream(); + ba.write(new byte[4]); + for (String s: name.getNameStrings()) { + ba.write(s.getBytes("UTF-8")); + } + ba.write(name.getRealm().toString().getBytes("UTF-8")); + ba.write(AUTH_PACKAGE.getBytes("UTF-8")); + byte[] output = ba.toByteArray(); + int pnType = name.getNameType(); + output[0] = (byte)(pnType & 0xff); + output[1] = (byte)((pnType>>8) & 0xff); + output[2] = (byte)((pnType>>16) & 0xff); + output[3] = (byte)((pnType>>24) & 0xff); + return output; + } catch (IOException ioe) { + // not possible + throw new AssertionError("Cannot write ByteArrayOutputStream", ioe); + } + } + + public String toString() { + return "PA-FOR-USER: " + name; + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/krb5/internal/crypto/KeyUsage.java --- a/jdk/src/share/classes/sun/security/krb5/internal/crypto/KeyUsage.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/krb5/internal/crypto/KeyUsage.java Wed Jul 05 18:29:53 2017 +0200 @@ -54,6 +54,7 @@ public static final int KU_ENC_KRB_PRIV_PART = 13; // KrbPriv public static final int KU_ENC_KRB_CRED_PART = 14; // KrbCred public static final int KU_KRB_SAFE_CKSUM = 15; // KrbSafe + public static final int KU_PA_FOR_USER_ENC_CKSUM = 17; // S4U2user public static final int KU_AD_KDC_ISSUED_CKSUM = 19; public static final boolean isValid(int usage) { diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java --- a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java Wed Jul 05 18:29:53 2017 +0200 @@ -279,6 +279,9 @@ EncryptionKey key; int size = entries.size(); ArrayList keys = new ArrayList<>(size); + if (DEBUG) { + System.out.println("Looking for keys for: " + service); + } for (int i = size-1; i >= 0; i--) { entry = entries.elementAt(i); if (entry.service.match(service)) { diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/pkcs/PKCS7.java --- a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java Wed Jul 05 18:29:53 2017 +0200 @@ -39,7 +39,6 @@ import sun.security.timestamp.*; import sun.security.util.*; import sun.security.x509.AlgorithmId; -import sun.security.x509.CertificateIssuerName; import sun.security.x509.X509CertImpl; import sun.security.x509.X509CertInfo; import sun.security.x509.X509CRLImpl; @@ -712,8 +711,8 @@ X509CertInfo tbsCert = new X509CertInfo(cert.getTBSCertificate()); certIssuerName = (Principal) - tbsCert.get(CertificateIssuerName.NAME + "." + - CertificateIssuerName.DN_NAME); + tbsCert.get(X509CertInfo.ISSUER + "." + + X509CertInfo.DN_NAME); } catch (Exception e) { // error generating X500Name object from the cert's // issuer DN, leave name as is. diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/provider/certpath/RevocationChecker.java --- a/jdk/src/share/classes/sun/security/provider/certpath/RevocationChecker.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/provider/certpath/RevocationChecker.java Wed Jul 05 18:29:53 2017 +0200 @@ -67,7 +67,7 @@ private URI responderURI; private X509Certificate responderCert; private List certStores; - private Map ocspStapled; + private Map ocspResponses; private List ocspExtensions; private boolean legacy; @@ -140,7 +140,7 @@ } else { crlDP = true; } - ocspStapled = getOCSPStapledResponses(); + ocspResponses = getOCSPResponses(); ocspExtensions = getOCSPExtensions(); this.anchor = anchor; @@ -645,11 +645,11 @@ try { certId = new CertId(issuerCert, currCert.getSerialNumberObject()); - // check if there is a stapled OCSP response available - byte[] responseBytes = ocspStapled.get(cert); + // check if there is a cached OCSP response available + byte[] responseBytes = ocspResponses.get(cert); if (responseBytes != null) { if (debug != null) { - debug.println("Found stapled OCSP response"); + debug.println("Found cached OCSP response"); } response = new OCSPResponse(responseBytes); diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/tools/jarsigner/Main.java --- a/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java Wed Jul 05 18:29:53 2017 +0200 @@ -2259,9 +2259,9 @@ X509CertInfo tbsCert = new X509CertInfo(certChain[0].getTBSCertificate()); issuerName = (Principal) - tbsCert.get(CertificateIssuerName.NAME + "." + - CertificateIssuerName.DN_NAME); - } + tbsCert.get(X509CertInfo.ISSUER + "." + + X509CertInfo.DN_NAME); + } BigInteger serial = certChain[0].getSerialNumber(); String signatureAlgorithm; diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/tools/keytool/CertAndKeyGen.java --- a/jdk/src/share/classes/sun/security/tools/keytool/CertAndKeyGen.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/tools/keytool/CertAndKeyGen.java Wed Jul 05 18:29:53 2017 +0200 @@ -258,10 +258,10 @@ AlgorithmId algID = AlgorithmId.get(sigAlg); info.set(X509CertInfo.ALGORITHM_ID, new CertificateAlgorithmId(algID)); - info.set(X509CertInfo.SUBJECT, new CertificateSubjectName(myname)); + info.set(X509CertInfo.SUBJECT, myname); info.set(X509CertInfo.KEY, new CertificateX509Key(publicKey)); info.set(X509CertInfo.VALIDITY, interval); - info.set(X509CertInfo.ISSUER, new CertificateIssuerName(myname)); + info.set(X509CertInfo.ISSUER, myname); if (ext != null) info.set(X509CertInfo.EXTENSIONS, ext); cert = new X509CertImpl(info); diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/tools/keytool/Main.java --- a/jdk/src/share/classes/sun/security/tools/keytool/Main.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/tools/keytool/Main.java Wed Jul 05 18:29:53 2017 +0200 @@ -1145,7 +1145,7 @@ X509CertInfo signerCertInfo = (X509CertInfo)signerCertImpl.get( X509CertImpl.NAME + "." + X509CertImpl.INFO); X500Name issuer = (X500Name)signerCertInfo.get(X509CertInfo.SUBJECT + "." + - CertificateSubjectName.DN_NAME); + X509CertInfo.DN_NAME); Date firstDate = getStartDate(startDate); Date lastDate = new Date(); @@ -1170,7 +1170,7 @@ info.set(X509CertInfo.ALGORITHM_ID, new CertificateAlgorithmId( AlgorithmId.get(sigAlgName))); - info.set(X509CertInfo.ISSUER, new CertificateIssuerName(issuer)); + info.set(X509CertInfo.ISSUER, issuer); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); boolean canRead = false; @@ -1193,8 +1193,8 @@ PKCS10 req = new PKCS10(rawReq); info.set(X509CertInfo.KEY, new CertificateX509Key(req.getSubjectPublicKeyInfo())); - info.set(X509CertInfo.SUBJECT, new CertificateSubjectName( - dname==null?req.getSubjectName():new X500Name(dname))); + info.set(X509CertInfo.SUBJECT, + dname==null?req.getSubjectName():new X500Name(dname)); CertificateExtensions reqex = null; Iterator attrs = req.getAttributes().getAttributes().iterator(); while (attrs.hasNext()) { @@ -1234,7 +1234,7 @@ X509CertInfo signerCertInfo = (X509CertInfo)signerCertImpl.get( X509CertImpl.NAME + "." + X509CertImpl.INFO); X500Name owner = (X500Name)signerCertInfo.get(X509CertInfo.SUBJECT + "." + - CertificateSubjectName.DN_NAME); + X509CertInfo.DN_NAME); Date firstDate = getStartDate(startDate); Date lastDate = (Date) firstDate.clone(); @@ -2405,16 +2405,16 @@ if (dname == null) { // Get the owner name from the certificate owner = (X500Name)certInfo.get(X509CertInfo.SUBJECT + "." + - CertificateSubjectName.DN_NAME); + X509CertInfo.DN_NAME); } else { // Use the owner name specified at the command line owner = new X500Name(dname); certInfo.set(X509CertInfo.SUBJECT + "." + - CertificateSubjectName.DN_NAME, owner); + X509CertInfo.DN_NAME, owner); } // Make issuer same as owner (self-signed!) certInfo.set(X509CertInfo.ISSUER + "." + - CertificateIssuerName.DN_NAME, owner); + X509CertInfo.DN_NAME, owner); // The inner and outer signature algorithms have to match. // The way we achieve that is really ugly, but there seems to be no diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/x509/X509CertImpl.java --- a/jdk/src/share/classes/sun/security/x509/X509CertImpl.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/x509/X509CertImpl.java Wed Jul 05 18:29:53 2017 +0200 @@ -96,12 +96,10 @@ */ // x509.info.subject.dname public static final String SUBJECT_DN = NAME + DOT + INFO + DOT + - X509CertInfo.SUBJECT + DOT + - CertificateSubjectName.DN_NAME; + X509CertInfo.SUBJECT + DOT + X509CertInfo.DN_NAME; // x509.info.issuer.dname public static final String ISSUER_DN = NAME + DOT + INFO + DOT + - X509CertInfo.ISSUER + DOT + - CertificateIssuerName.DN_NAME; + X509CertInfo.ISSUER + DOT + X509CertInfo.DN_NAME; // x509.info.serialNumber.number public static final String SERIAL_ID = NAME + DOT + INFO + DOT + X509CertInfo.SERIAL_NUMBER + DOT + @@ -890,9 +888,8 @@ if (info == null) return null; try { - Principal subject = (Principal)info.get( - CertificateSubjectName.NAME + DOT + - CertificateSubjectName.DN_NAME); + Principal subject = (Principal)info.get(X509CertInfo.SUBJECT + DOT + + X509CertInfo.DN_NAME); return subject; } catch (Exception e) { return null; @@ -910,8 +907,8 @@ } try { X500Principal subject = (X500Principal)info.get( - CertificateSubjectName.NAME + DOT + - CertificateSubjectName.DN_PRINCIPAL); + X509CertInfo.SUBJECT + DOT + + "x500principal"); return subject; } catch (Exception e) { return null; @@ -927,9 +924,8 @@ if (info == null) return null; try { - Principal issuer = (Principal)info.get( - CertificateIssuerName.NAME + DOT + - CertificateIssuerName.DN_NAME); + Principal issuer = (Principal)info.get(X509CertInfo.ISSUER + DOT + + X509CertInfo.DN_NAME); return issuer; } catch (Exception e) { return null; @@ -947,8 +943,8 @@ } try { X500Principal issuer = (X500Principal)info.get( - CertificateIssuerName.NAME + DOT + - CertificateIssuerName.DN_PRINCIPAL); + X509CertInfo.ISSUER + DOT + + "x500principal"); return issuer; } catch (Exception e) { return null; diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/x509/X509CertInfo.java --- a/jdk/src/share/classes/sun/security/x509/X509CertInfo.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/x509/X509CertInfo.java Wed Jul 05 18:29:53 2017 +0200 @@ -68,12 +68,13 @@ public static final String IDENT = "x509.info"; // Certificate attribute names public static final String NAME = "info"; + public static final String DN_NAME = "dname"; public static final String VERSION = CertificateVersion.NAME; public static final String SERIAL_NUMBER = CertificateSerialNumber.NAME; public static final String ALGORITHM_ID = CertificateAlgorithmId.NAME; - public static final String ISSUER = CertificateIssuerName.NAME; + public static final String ISSUER = "issuer"; + public static final String SUBJECT = "subject"; public static final String VALIDITY = CertificateValidity.NAME; - public static final String SUBJECT = CertificateSubjectName.NAME; public static final String KEY = CertificateX509Key.NAME; public static final String ISSUER_ID = "issuerID"; public static final String SUBJECT_ID = "subjectID"; @@ -83,9 +84,9 @@ protected CertificateVersion version = new CertificateVersion(); protected CertificateSerialNumber serialNum = null; protected CertificateAlgorithmId algId = null; - protected CertificateIssuerName issuer = null; + protected X500Name issuer = null; + protected X500Name subject = null; protected CertificateValidity interval = null; - protected CertificateSubjectName subject = null; protected CertificateX509Key pubKey = null; // X509.v2 & v3 extensions @@ -399,11 +400,7 @@ break; case ATTR_ISSUER: - if (suffix == null) { - setIssuer(val); - } else { - issuer.set(suffix, val); - } + setIssuer(val); break; case ATTR_VALIDITY: @@ -415,11 +412,7 @@ break; case ATTR_SUBJECT: - if (suffix == null) { - setSubject(val); - } else { - subject.set(suffix, val); - } + setSubject(val); break; case ATTR_KEY: @@ -493,11 +486,7 @@ } break; case (ATTR_ISSUER): - if (suffix == null) { - issuer = null; - } else { - issuer.delete(suffix); - } + issuer = null; break; case (ATTR_VALIDITY): if (suffix == null) { @@ -507,11 +496,7 @@ } break; case (ATTR_SUBJECT): - if (suffix == null) { - subject = null; - } else { - subject.delete(suffix); - } + subject = null; break; case (ATTR_KEY): if (suffix == null) { @@ -571,13 +556,13 @@ if (suffix == null) { return(subject); } else { - return(subject.get(suffix)); + return(getX500Name(suffix, false)); } case (ATTR_ISSUER): if (suffix == null) { return(issuer); } else { - return(issuer.get(suffix)); + return(getX500Name(suffix, true)); } case (ATTR_KEY): if (suffix == null) { @@ -618,6 +603,21 @@ } /* + * Get the Issuer or Subject name + */ + private Object getX500Name(String name, boolean getIssuer) + throws IOException { + if (name.equalsIgnoreCase(X509CertInfo.DN_NAME)) { + return getIssuer ? issuer : subject; + } else if (name.equalsIgnoreCase("x500principal")) { + return getIssuer ? issuer.asX500Principal() + : subject.asX500Principal(); + } else { + throw new IOException("Attribute name not recognized."); + } + } + + /* * This routine unmarshals the certificate information. */ private void parse(DerValue val) @@ -646,9 +646,8 @@ algId = new CertificateAlgorithmId(in); // Issuer name - issuer = new CertificateIssuerName(in); - X500Name issuerDN = (X500Name)issuer.get(CertificateIssuerName.DN_NAME); - if (issuerDN.isEmpty()) { + issuer = new X500Name(in); + if (issuer.isEmpty()) { throw new CertificateParsingException( "Empty issuer DN not allowed in X509Certificates"); } @@ -657,10 +656,9 @@ interval = new CertificateValidity(in); // subject name - subject = new CertificateSubjectName(in); - X500Name subjectDN = (X500Name)subject.get(CertificateSubjectName.DN_NAME); + subject = new X500Name(in); if ((version.compare(CertificateVersion.V1) == 0) && - subjectDN.isEmpty()) { + subject.isEmpty()) { throw new CertificateParsingException( "Empty subject DN not allowed in v1 certificate"); } @@ -712,13 +710,12 @@ /* * Verify if X.509 V3 Certificate is compliant with RFC 3280. */ - private void verifyCert(CertificateSubjectName subject, + private void verifyCert(X500Name subject, CertificateExtensions extensions) throws CertificateParsingException, IOException { // if SubjectName is empty, check for SubjectAlternativeNameExtension - X500Name subjectDN = (X500Name)subject.get(CertificateSubjectName.DN_NAME); - if (subjectDN.isEmpty()) { + if (subject.isEmpty()) { if (extensions == null) { throw new CertificateParsingException("X.509 Certificate is " + "incomplete: subject field is empty, and certificate " + @@ -859,11 +856,11 @@ * @exception CertificateException on invalid data. */ private void setIssuer(Object val) throws CertificateException { - if (!(val instanceof CertificateIssuerName)) { + if (!(val instanceof X500Name)) { throw new CertificateException( "Issuer class type invalid."); } - issuer = (CertificateIssuerName)val; + issuer = (X500Name)val; } /** @@ -887,11 +884,11 @@ * @exception CertificateException on invalid data. */ private void setSubject(Object val) throws CertificateException { - if (!(val instanceof CertificateSubjectName)) { + if (!(val instanceof X500Name)) { throw new CertificateException( "Subject class type invalid."); } - subject = (CertificateSubjectName)val; + subject = (X500Name)val; } /** diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/security/x509/certAttributes.html --- a/jdk/src/share/classes/sun/security/x509/certAttributes.html Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/security/x509/certAttributes.html Wed Jul 05 18:29:53 2017 +0200 @@ -6,7 +6,7 @@

Certificate Attributes

July 1998

-In JDK1.2 we provide an implementation of X.509 (version 3). +In JDK1.2 we provide an implementation of X.509 (version 3). The X509CertImpl class supports the following methods to manipulate the various attributes of a certificate:

@@ -86,9 +86,9 @@
 issuer
 x509.info.issuer
x509.info.issuer.dname -CertificateIssuerName.IDENT
+none
X509CertImpl.ISSUER_DN -CertificateIssuerName
+X500Name
X500Name @@ -109,9 +109,9 @@ subject x509.info.subject
x509.info.subject.dname -CertificateSubjectName.IDENT
+none
X509CertImpl.SUBJECT_DN -CertificateSubjectName
+X500Name
X500Name @@ -127,18 +127,18 @@ issuerUniqueID x509.info.issuerID
x509.info.issuerID.id -CertificateIssuerUniqueIdentity.IDENT
+none
none -CertificateIssuerUniqueIdentity
+UniqueIdentity
UniqueIdentity subjectUniqueID x509.info.subjectID
x509.info.subjectID.id -CertificateSubjectUniqueIdentity.IDENT
+none
none -CertificateSubjectUniqueIdentity
+UniqueIdentity
UniqueIdentity diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/tools/java/RuntimeConstants.java --- a/jdk/src/share/classes/sun/tools/java/RuntimeConstants.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/tools/java/RuntimeConstants.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -67,7 +67,7 @@ /* Class File Constants */ int JAVA_MAGIC = 0xcafebabe; int JAVA_MIN_SUPPORTED_VERSION = 45; - int JAVA_MAX_SUPPORTED_VERSION = 51; + int JAVA_MAX_SUPPORTED_VERSION = 52; int JAVA_MAX_SUPPORTED_MINOR_VERSION = 0; /* Generate class file version for 1.1 by default */ diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java --- a/jdk/src/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java Wed Jul 05 18:29:53 2017 +0200 @@ -329,9 +329,6 @@ tagset.add(token); } - // ensure en-US is there (mandated by the spec, e.g. Collator.getAvailableLocales()) - tagset.add("en-US"); - return tagset; } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/classes/sun/util/locale/provider/LocaleServiceProviderPool.java --- a/jdk/src/share/classes/sun/util/locale/provider/LocaleServiceProviderPool.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/classes/sun/util/locale/provider/LocaleServiceProviderPool.java Wed Jul 05 18:29:53 2017 +0200 @@ -26,6 +26,7 @@ package sun.util.locale.provider; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.IllformedLocaleException; @@ -177,7 +178,7 @@ for (Class c : spiClasses) { LocaleServiceProviderPool pool = LocaleServiceProviderPool.getPool(c); - all.addAll(pool.getAvailableLocaleList()); + all.addAll(pool.getAvailableLocaleSet()); } allAvailableLocales = all.toArray(new Locale[0]); @@ -207,13 +208,23 @@ * @return an array of the available locales */ public Locale[] getAvailableLocales() { - Set locList = getAvailableLocaleList(); + Set locList = new HashSet<>(); + locList.addAll(getAvailableLocaleSet()); + // Make sure it all contains JRE's locales for compatibility. + locList.addAll(Arrays.asList(LocaleProviderAdapter.forJRE().getAvailableLocales())); Locale[] tmp = new Locale[locList.size()]; locList.toArray(tmp); return tmp; } - private synchronized Set getAvailableLocaleList() { + /** + * Returns the union of locale sets that are available from + * each service provider. This method does NOT return the + * defensive copy. + * + * @return a set of available locales + */ + private synchronized Set getAvailableLocaleSet() { if (availableLocales == null) { availableLocales = new HashSet<>(); for (LocaleServiceProvider lsp : providers.values()) { @@ -222,9 +233,6 @@ availableLocales.add(getLookupLocale(locale)); } } - - // Remove Locale.ROOT for the compatibility. - availableLocales.remove(Locale.ROOT); } return availableLocales; @@ -295,7 +303,7 @@ List lookupLocales = getLookupLocales(locale); - Set available = getAvailableLocaleList(); + Set available = getAvailableLocaleSet(); for (Locale current : lookupLocales) { if (available.contains(current)) { S providersObj; diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/com/sun/java/util/jar/pack/constants.h --- a/jdk/src/share/native/com/sun/java/util/jar/pack/constants.h Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/com/sun/java/util/jar/pack/constants.h Wed Jul 05 18:29:53 2017 +0200 @@ -35,12 +35,19 @@ #define JAVA_MAGIC 0xCAFEBABE #define JAVA_MIN_MAJOR_VERSION 45 #define JAVA_MIN_MINOR_VERSION 3 + #define JAVA5_MAX_MAJOR_VERSION 49 #define JAVA5_MAX_MINOR_VERSION 0 -// NOTE: Assume for now + #define JAVA6_MAX_MAJOR_VERSION 50 #define JAVA6_MAX_MINOR_VERSION 0 +#define JAVA7_MAX_MAJOR_VERSION 51 +#define JAVA7_MAX_MINOR_VERSION 0 + +#define JAVA8_MAX_MAJOR_VERSION 52 +#define JAVA8_MAX_MINOR_VERSION 0 + // package file constants #define JAVA_PACKAGE_MAGIC 0xCAFED00D #define JAVA5_PACKAGE_MAJOR_VERSION 150 diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/java/lang/System.c --- a/jdk/src/share/native/java/lang/System.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/java/lang/System.c Wed Jul 05 18:29:53 2017 +0200 @@ -102,7 +102,7 @@ #define VENDOR_URL_BUG "http://bugreport.sun.com/bugreport/" #endif -#define JAVA_MAX_SUPPORTED_VERSION 51 +#define JAVA_MAX_SUPPORTED_VERSION 52 #define JAVA_MAX_SUPPORTED_MINOR_VERSION 0 #ifdef JAVA_SPECIFICATION_VENDOR /* Third party may NOT overwrite this. */ diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/jgss/wrapper/GSSLibStub.c --- a/jdk/src/share/native/sun/security/jgss/wrapper/GSSLibStub.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/jgss/wrapper/GSSLibStub.c Wed Jul 05 18:29:53 2017 +0200 @@ -26,6 +26,7 @@ #include "sun_security_jgss_wrapper_GSSLibStub.h" #include "NativeUtil.h" #include "NativeFunc.h" +#include "jlong.h" /* Constants for indicating what type of info is needed for inqueries */ const int TYPE_CRED_NAME = 10; @@ -75,14 +76,14 @@ jclass jcls, jbyteArray jbytes) { gss_OID cOid; - int i, len; + unsigned int i, len; jbyte* bytes; jthrowable gssEx; jboolean found; if (jbytes != NULL) { found = JNI_FALSE; - len = (*env)->GetArrayLength(env, jbytes) - 2; + len = (unsigned int)((*env)->GetArrayLength(env, jbytes) - 2); bytes = (*env)->GetByteArrayElements(env, jbytes, NULL); if (bytes != NULL) { for (i = 0; i < ftab->mechs->count; i++) { @@ -98,9 +99,9 @@ } if (found != JNI_TRUE) { checkStatus(env, NULL, GSS_S_BAD_MECH, 0, "[GSSLibStub_getMechPtr]"); - return NULL; - } else return cOid; - } else return GSS_C_NO_OID; + return ptr_to_jlong(NULL); + } else return ptr_to_jlong(cOid); + } else return ptr_to_jlong(GSS_C_NO_OID); } @@ -244,7 +245,7 @@ if (ftab->inquireNamesForMech != NULL) { - mech = (gss_OID) (*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech); + mech = (gss_OID)jlong_to_ptr((*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech)); nameTypes = GSS_C_NO_OID_SET; /* gss_inquire_names_for_mech(...) => N/A */ @@ -273,7 +274,7 @@ OM_uint32 minor, major; gss_name_t nameHdl; - nameHdl = (gss_name_t) pName; + nameHdl = (gss_name_t) jlong_to_ptr(pName); sprintf(debugBuf, "[GSSLibStub_releaseName] %ld", (long) pName); debug(env, debugBuf); @@ -319,7 +320,7 @@ resetGSSBuffer(env, jnameVal, &nameVal); checkStatus(env, jobj, major, minor, "[GSSLibStub_importName]"); - return (jlong) nameHdl; + return ptr_to_jlong(nameHdl); } @@ -339,8 +340,8 @@ int isEqual; isEqual = 0; - nameHdl1 = (gss_name_t) pName1; - nameHdl2 = (gss_name_t) pName2; + nameHdl1 = (gss_name_t) jlong_to_ptr(pName1); + nameHdl2 = (gss_name_t) jlong_to_ptr(pName2); sprintf(debugBuf, "[GSSLibStub_compareName] %ld %ld", (long) pName1, (long) pName2); @@ -370,12 +371,12 @@ gss_name_t nameHdl, mnNameHdl; gss_OID mech; - nameHdl = (gss_name_t) pName; + nameHdl = (gss_name_t) jlong_to_ptr(pName); sprintf(debugBuf, "[GSSLibStub_canonicalizeName] %ld", (long) pName); debug(env, debugBuf); if (nameHdl != GSS_C_NO_NAME) { - mech = (gss_OID) (*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech); + mech = (gss_OID) jlong_to_ptr((*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech)); mnNameHdl = GSS_C_NO_NAME; /* gss_canonicalize_name(...) may return GSS_S_BAD_NAMETYPE, @@ -391,7 +392,7 @@ checkStatus(env, jobj, major, minor, "[GSSLibStub_canonicalizeName]"); } else mnNameHdl = GSS_C_NO_NAME; - return (jlong) mnNameHdl; + return ptr_to_jlong(mnNameHdl); } /* @@ -408,7 +409,7 @@ gss_buffer_desc outBuf; jbyteArray jresult; - nameHdl = (gss_name_t) pName; + nameHdl = (gss_name_t) jlong_to_ptr(pName); sprintf(debugBuf, "[GSSLibStub_exportName] %ld", (long) pName); debug(env, debugBuf); @@ -420,16 +421,16 @@ if (major == GSS_S_NAME_NOT_MN) { debug(env, "[GSSLibStub_exportName] canonicalize and re-try"); - mNameHdl = (gss_name_t) + mNameHdl = (gss_name_t)jlong_to_ptr( Java_sun_security_jgss_wrapper_GSSLibStub_canonicalizeName - (env, jobj, pName); + (env, jobj, pName)); /* return immediately if an exception has occurred */ if ((*env)->ExceptionCheck(env)) { return NULL; } major = (*ftab->exportName)(&minor, mNameHdl, &outBuf); Java_sun_security_jgss_wrapper_GSSLibStub_releaseName - (env, jobj, (jlong) mNameHdl); + (env, jobj, ptr_to_jlong(mNameHdl)); /* return immediately if an exception has occurred */ if ((*env)->ExceptionCheck(env)) { return NULL; @@ -460,7 +461,7 @@ jobject jtype; jobjectArray jresult; - nameHdl = (gss_name_t) pName; + nameHdl = (gss_name_t) jlong_to_ptr(pName); sprintf(debugBuf, "[GSSLibStub_displayName] %ld", (long) pName); debug(env, debugBuf); @@ -512,10 +513,10 @@ debug(env, "[GSSLibStub_acquireCred]"); - mech = (gss_OID) (*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech); + mech = (gss_OID) jlong_to_ptr((*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech)); mechs = newGSSOIDSet(env, mech); credUsage = (gss_cred_usage_t) usage; - nameHdl = (gss_name_t) pName; + nameHdl = (gss_name_t) jlong_to_ptr(pName); credHdl = GSS_C_NO_CREDENTIAL; sprintf(debugBuf, "[GSSLibStub_acquireCred] pName=%ld, usage=%d", @@ -534,7 +535,7 @@ debug(env, debugBuf); checkStatus(env, jobj, major, minor, "[GSSLibStub_acquireCred]"); - return (jlong) credHdl; + return ptr_to_jlong(credHdl); } /* @@ -550,9 +551,9 @@ OM_uint32 minor, major; gss_cred_id_t credHdl; - credHdl = (gss_cred_id_t) pCred; + credHdl = (gss_cred_id_t) jlong_to_ptr(pCred); - sprintf(debugBuf, "[GSSLibStub_releaseCred] %ld", pCred); + sprintf(debugBuf, "[GSSLibStub_releaseCred] %ld", (long int)pCred); debug(env, debugBuf); if (credHdl != GSS_C_NO_CREDENTIAL) { @@ -562,7 +563,7 @@ checkStatus(env, jobj, major, minor, "[GSSLibStub_releaseCred]"); } - return (jlong) credHdl; + return ptr_to_jlong(credHdl); } /* @@ -570,7 +571,7 @@ */ void inquireCred(JNIEnv *env, jobject jobj, gss_cred_id_t pCred, jint type, void *result) { - OM_uint32 minor, major; + OM_uint32 minor, major=GSS_C_QOP_DEFAULT; OM_uint32 routineErr; gss_cred_id_t credHdl; @@ -617,9 +618,9 @@ gss_name_t nameHdl; gss_cred_id_t credHdl; - credHdl = (gss_cred_id_t) pCred; + credHdl = (gss_cred_id_t) jlong_to_ptr(pCred); - sprintf(debugBuf, "[GSSLibStub_getCredName] %ld", pCred); + sprintf(debugBuf, "[GSSLibStub_getCredName] %ld", (long int)pCred); debug(env, debugBuf); nameHdl = GSS_C_NO_NAME; @@ -633,7 +634,7 @@ sprintf(debugBuf, "[GSSLibStub_getCredName] pName=%ld", (long) nameHdl); debug(env, debugBuf); - return (jlong) nameHdl; + return ptr_to_jlong(nameHdl); } /* @@ -649,9 +650,9 @@ gss_cred_id_t credHdl; OM_uint32 lifetime; - credHdl = (gss_cred_id_t) pCred; + credHdl = (gss_cred_id_t) jlong_to_ptr(pCred); - sprintf(debugBuf, "[GSSLibStub_getCredTime] %ld", pCred); + sprintf(debugBuf, "[GSSLibStub_getCredTime] %ld", (long int)pCred); debug(env, debugBuf); lifetime = 0; @@ -677,9 +678,9 @@ gss_cred_usage_t usage; gss_cred_id_t credHdl; - credHdl = (gss_cred_id_t) pCred; + credHdl = (gss_cred_id_t) jlong_to_ptr(pCred); - sprintf(debugBuf, "[GSSLibStub_getCredUsage] %ld", pCred); + sprintf(debugBuf, "[GSSLibStub_getCredUsage] %ld", (long int)pCred); debug(env, debugBuf); inquireCred(env, jobj, credHdl, TYPE_CRED_USAGE, &usage); @@ -738,13 +739,13 @@ return NULL; } - mech2 = (gss_OID) (*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech); + mech2 = (gss_OID) jlong_to_ptr((*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech)); if (sameMech(env, mech, mech2) == JNI_TRUE) { /* mech match - return the context object */ return (*env)->NewObject(env, CLS_NativeGSSContext, MID_NativeGSSContext_ctor, - (jlong) contextHdl, jobj); + ptr_to_jlong(contextHdl), jobj); } else { /* mech mismatch - clean up then return null */ major = (*ftab->deleteSecContext)(&minor, &contextHdl, GSS_C_NO_BUFFER); @@ -784,11 +785,11 @@ */ debug(env, "[GSSLibStub_initContext]"); - credHdl = (gss_cred_id_t) pCred; - contextHdl = (gss_ctx_id_t) - (*env)->GetLongField(env, jcontextSpi, FID_NativeGSSContext_pContext); - targetName = (gss_name_t) pName; - mech = (gss_OID) (*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech); + credHdl = (gss_cred_id_t) jlong_to_ptr(pCred); + contextHdl = (gss_ctx_id_t) jlong_to_ptr( + (*env)->GetLongField(env, jcontextSpi, FID_NativeGSSContext_pContext)); + targetName = (gss_name_t) jlong_to_ptr(pName); + mech = (gss_OID) jlong_to_ptr((*env)->GetLongField(env, jobj, FID_GSSLibStub_pMech)); flags = (OM_uint32) (*env)->GetIntField(env, jcontextSpi, FID_NativeGSSContext_flags); time = getGSSTime((*env)->GetIntField(env, jcontextSpi, @@ -821,7 +822,7 @@ if (GSS_ERROR(major) == GSS_S_COMPLETE) { /* update member values if needed */ (*env)->SetLongField(env, jcontextSpi, FID_NativeGSSContext_pContext, - (jlong) contextHdl); + ptr_to_jlong(contextHdl)); (*env)->SetIntField(env, jcontextSpi, FID_NativeGSSContext_flags, aFlags); sprintf(debugBuf, "[GSSLibStub_initContext] set flags=0x%x", aFlags); debug(env, debugBuf); @@ -879,7 +880,7 @@ OM_uint32 aFlags; OM_uint32 aTime; gss_cred_id_t delCred; - jobject jsrcName; + jobject jsrcName=GSS_C_NO_NAME; jobject jdelCred; jobject jMech; jbyteArray jresult; @@ -889,9 +890,9 @@ debug(env, "[GSSLibStub_acceptContext]"); - contextHdl = (gss_ctx_id_t) - (*env)->GetLongField(env, jcontextSpi, FID_NativeGSSContext_pContext); - credHdl = (gss_cred_id_t) pCred; + contextHdl = (gss_ctx_id_t)jlong_to_ptr( + (*env)->GetLongField(env, jcontextSpi, FID_NativeGSSContext_pContext)); + credHdl = (gss_cred_id_t) jlong_to_ptr(pCred); initGSSBuffer(env, jinToken, &inToken); cb = getGSSCB(env, jcb); srcName = GSS_C_NO_NAME; @@ -922,7 +923,7 @@ if (GSS_ERROR(major) == GSS_S_COMPLETE) { /* update member values if needed */ (*env)->SetLongField(env, jcontextSpi, FID_NativeGSSContext_pContext, - (jlong) contextHdl); + ptr_to_jlong(contextHdl)); sprintf(debugBuf, "[GSSLibStub_acceptContext] set pContext=%ld", (long)contextHdl); debug(env, debugBuf); @@ -940,7 +941,7 @@ NULL, NULL); jtargetName = (*env)->NewObject(env, CLS_GSSNameElement, MID_GSSNameElement_ctor, - (jlong) targetName, jobj); + ptr_to_jlong(targetName), jobj); /* return immediately if an exception has occurred */ if ((*env)->ExceptionCheck(env)) { @@ -955,7 +956,7 @@ if (srcName != GSS_C_NO_NAME) { jsrcName = (*env)->NewObject(env, CLS_GSSNameElement, MID_GSSNameElement_ctor, - (jlong) srcName, jobj); + ptr_to_jlong(srcName), jobj); /* return immediately if an exception has occurred */ if ((*env)->ExceptionCheck(env)) { return NULL; @@ -981,7 +982,7 @@ if (delCred != GSS_C_NO_CREDENTIAL) { jdelCred = (*env)->NewObject(env, CLS_GSSCredElement, MID_GSSCredElement_ctor, - (jlong) delCred, jsrcName, jMech); + ptr_to_jlong(delCred), jsrcName, jMech); /* return immediately if an exception has occurred */ if ((*env)->ExceptionCheck(env)) { return NULL; @@ -1031,7 +1032,7 @@ jlong result[6]; jlongArray jresult; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_inquireContext] %ld", (long)contextHdl); debug(env, debugBuf); @@ -1051,8 +1052,8 @@ (long)targetName); debug(env, debugBuf); - result[0] = (jlong) srcName; - result[1] = (jlong) targetName; + result[0] = ptr_to_jlong(srcName); + result[1] = ptr_to_jlong(targetName); result[2] = (jlong) isInitiator; result[3] = (jlong) isEstablished; result[4] = (jlong) flags; @@ -1081,9 +1082,9 @@ gss_OID mech; gss_ctx_id_t contextHdl; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); - sprintf(debugBuf, "[GSSLibStub_getContextMech] %ld", pContext); + sprintf(debugBuf, "[GSSLibStub_getContextMech] %ld", (long int)pContext); debug(env, debugBuf); major = (*ftab->inquireContext)(&minor, contextHdl, NULL, NULL, @@ -1111,7 +1112,7 @@ gss_name_t nameHdl; gss_ctx_id_t contextHdl; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_getContextName] %ld, isSrc=%d", (long)contextHdl, isSrc); @@ -1129,13 +1130,13 @@ checkStatus(env, jobj, major, minor, "[GSSLibStub_inquireContextAll]"); /* return immediately if an exception has occurred */ if ((*env)->ExceptionCheck(env)) { - return (long)NULL; + return ptr_to_jlong(NULL); } sprintf(debugBuf, "[GSSLibStub_getContextName] pName=%ld", (long) nameHdl); debug(env, debugBuf); - return (jlong) nameHdl; + return ptr_to_jlong(nameHdl); } /* @@ -1151,7 +1152,7 @@ gss_ctx_id_t contextHdl; OM_uint32 time; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_getContextTime] %ld", (long)contextHdl); debug(env, debugBuf); @@ -1180,17 +1181,17 @@ OM_uint32 minor, major; gss_ctx_id_t contextHdl; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_deleteContext] %ld", (long)contextHdl); debug(env, debugBuf); - if (contextHdl == GSS_C_NO_CONTEXT) return GSS_C_NO_CONTEXT; + if (contextHdl == GSS_C_NO_CONTEXT) return ptr_to_jlong(GSS_C_NO_CONTEXT); /* gss_delete_sec_context(...) => GSS_S_NO_CONTEXT(!) */ major = (*ftab->deleteSecContext)(&minor, &contextHdl, GSS_C_NO_BUFFER); checkStatus(env, jobj, major, minor, "[GSSLibStub_deleteContext]"); - return (jlong) contextHdl; + return (jlong) ptr_to_jlong(contextHdl); } /* @@ -1211,7 +1212,7 @@ OM_uint32 outSize, maxInSize; gss_qop_t qop; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_wrapSizeLimit] %ld", (long)contextHdl); debug(env, debugBuf); @@ -1244,7 +1245,7 @@ gss_buffer_desc interProcToken; jbyteArray jresult; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_exportContext] %ld", (long)contextHdl); debug(env, debugBuf); @@ -1281,7 +1282,7 @@ gss_buffer_desc msgToken; jbyteArray jresult; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_getMic] %ld", (long)contextHdl); debug(env, debugBuf); @@ -1290,7 +1291,7 @@ checkStatus(env, jobj, GSS_S_CONTEXT_EXPIRED, 0, "[GSSLibStub_getMic]"); return NULL; } - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); qop = (gss_qop_t) jqop; initGSSBuffer(env, jmsg, &msg); @@ -1326,7 +1327,7 @@ gss_buffer_desc msgToken; gss_qop_t qop; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_verifyMic] %ld", (long)contextHdl); debug(env, debugBuf); @@ -1376,7 +1377,7 @@ gss_ctx_id_t contextHdl; jbyteArray jresult; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_wrap] %ld", (long)contextHdl); debug(env, debugBuf); @@ -1427,7 +1428,7 @@ gss_qop_t qop; jbyteArray jresult; - contextHdl = (gss_ctx_id_t) pContext; + contextHdl = (gss_ctx_id_t) jlong_to_ptr(pContext); sprintf(debugBuf, "[GSSLibStub_unwrap] %ld", (long)contextHdl); debug(env, debugBuf); diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/jgss/wrapper/NativeUtil.c --- a/jdk/src/share/native/sun/security/jgss/wrapper/NativeUtil.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/jgss/wrapper/NativeUtil.c Wed Jul 05 18:29:53 2017 +0200 @@ -25,6 +25,7 @@ #include "NativeUtil.h" #include "NativeFunc.h" +#include "jlong.h" const int JAVA_DUPLICATE_TOKEN_CODE = 19; /* DUPLICATE_TOKEN */ const int JAVA_OLD_TOKEN_CODE = 20; /* OLD_TOKEN */ @@ -412,7 +413,7 @@ OM_uint32 result; /* special handle values equal to JAVA_MAX */ - if (jtime == JAVA_MAX) { + if (jtime == (jint)JAVA_MAX) { result = GSS_C_INDEFINITE; } else { result = jtime; @@ -482,7 +483,7 @@ messageContext = 0; if (jstub != NULL) { - mech = (gss_OID) (*env)->GetLongField(env, jstub, FID_GSSLibStub_pMech); + mech = (gss_OID) jlong_to_ptr((*env)->GetLongField(env, jstub, FID_GSSLibStub_pMech)); } else { mech = GSS_C_NO_OID; } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c --- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c Wed Jul 05 18:29:53 2017 +0200 @@ -422,6 +422,7 @@ jfieldID jFieldID; jlong jType; jobject jPValue; + memset(&ckAttribute, 0, sizeof(CK_ATTRIBUTE)); // TBD: what if jAttribute == NULL?! @@ -1577,6 +1578,7 @@ CK_RSA_PKCS_PSS_PARAMS ckParam; jfieldID fieldID; jlong jHashAlg, jMgf, jSLen; + memset(&ckParam, 0, sizeof(CK_RSA_PKCS_PSS_PARAMS)); /* get hashAlg */ jRsaPkcsPssParamsClass = (*env)->FindClass(env, CLASS_RSA_PKCS_PSS_PARAMS); @@ -1617,6 +1619,7 @@ jfieldID fieldID; jlong jLong; jobject jSharedData, jPublicData; + memset(&ckParam, 0, sizeof(CK_ECDH1_DERIVE_PARAMS)); /* get kdf */ jEcdh1DeriveParamsClass = (*env)->FindClass(env, CLASS_ECDH1_DERIVE_PARAMS); @@ -1663,6 +1666,7 @@ jfieldID fieldID; jlong jKdf, jPrivateDataLen, jPrivateData; jobject jSharedData, jPublicData, jPublicData2; + memset(&ckParam, 0, sizeof(CK_ECDH2_DERIVE_PARAMS)); /* get kdf */ jEcdh2DeriveParamsClass = (*env)->FindClass(env, CLASS_ECDH2_DERIVE_PARAMS); diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c --- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c Wed Jul 05 18:29:53 2017 +0200 @@ -180,14 +180,14 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); if (directIn != 0) { - inBufP = (CK_BYTE_PTR) directIn; + inBufP = (CK_BYTE_PTR) jlong_to_ptr(directIn); } else { inBufP = (*env)->GetPrimitiveArrayCritical(env, jIn, NULL); if (inBufP == NULL) { return 0; } } if (directOut != 0) { - outBufP = (CK_BYTE_PTR) directOut; + outBufP = (CK_BYTE_PTR) jlong_to_ptr(directOut); } else { outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL); if (outBufP == NULL) { @@ -249,7 +249,7 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); if (directOut != 0) { - outBufP = (CK_BYTE_PTR) directOut; + outBufP = (CK_BYTE_PTR) jlong_to_ptr(directOut); } else { outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL); if (outBufP == NULL) { return 0; } @@ -401,14 +401,14 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); if (directIn != 0) { - inBufP = (CK_BYTE_PTR) directIn; + inBufP = (CK_BYTE_PTR) jlong_to_ptr(directIn); } else { inBufP = (*env)->GetPrimitiveArrayCritical(env, jIn, NULL); if (inBufP == NULL) { return 0; } } if (directOut != 0) { - outBufP = (CK_BYTE_PTR) directOut; + outBufP = (CK_BYTE_PTR) jlong_to_ptr(directOut); } else { outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL); if (outBufP == NULL) { @@ -465,7 +465,7 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); if (directOut != 0) { - outBufP = (CK_BYTE_PTR) directOut; + outBufP = (CK_BYTE_PTR) jlong_to_ptr(directOut); } else { outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL); if (outBufP == NULL) { return 0; } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c --- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c Wed Jul 05 18:29:53 2017 +0200 @@ -51,6 +51,7 @@ #include #include #include +#include "jlong.h" #include "sun_security_pkcs11_wrapper_PKCS11.h" @@ -178,7 +179,7 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); if (directIn != 0) { - rv = (*ckpFunctions->C_DigestUpdate)(ckSessionHandle, (CK_BYTE_PTR)directIn, jInLen); + rv = (*ckpFunctions->C_DigestUpdate)(ckSessionHandle, (CK_BYTE_PTR)jlong_to_ptr(directIn), jInLen); ckAssertReturnValueOK(env, rv); return; } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c --- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c Wed Jul 05 18:29:53 2017 +0200 @@ -253,10 +253,12 @@ (JNIEnv *env, jobject obj) { CK_INFO ckLibInfo; - jobject jInfoObject; + jobject jInfoObject=NULL; CK_RV rv; + CK_FUNCTION_LIST_PTR ckpFunctions; + memset(&ckLibInfo, 0, sizeof(CK_INFO)); - CK_FUNCTION_LIST_PTR ckpFunctions = getFunctionList(env, obj); + ckpFunctions = getFunctionList(env, obj); if (ckpFunctions == NULL) { return NULL; } rv = (*ckpFunctions->C_GetInfo)(&ckLibInfo); @@ -384,7 +386,7 @@ { CK_SLOT_ID ckSlotID; CK_SLOT_INFO ckSlotInfo; - jobject jSlotInfoObject; + jobject jSlotInfoObject=NULL; CK_RV rv; CK_FUNCTION_LIST_PTR ckpFunctions = getFunctionList(env, obj); @@ -396,7 +398,7 @@ if (ckAssertReturnValueOK(env, rv) == CK_ASSERT_OK) { jSlotInfoObject = ckSlotInfoPtrToJSlotInfo(env, &ckSlotInfo); } - return jSlotInfoObject ; + return jSlotInfoObject; } /* diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c --- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c Wed Jul 05 18:29:53 2017 +0200 @@ -256,7 +256,7 @@ { CK_SESSION_HANDLE ckSessionHandle; CK_SESSION_INFO ckSessionInfo; - jobject jSessionInfo; + jobject jSessionInfo=NULL; CK_RV rv; CK_FUNCTION_LIST_PTR ckpFunctions = getFunctionList(env, obj); diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c --- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c Wed Jul 05 18:29:53 2017 +0200 @@ -51,6 +51,7 @@ #include #include #include +#include "jlong.h" #include "sun_security_pkcs11_wrapper_PKCS11.h" @@ -198,7 +199,7 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); if (directIn != 0) { - rv = (*ckpFunctions->C_SignUpdate)(ckSessionHandle, (CK_BYTE_PTR)directIn, jInLen); + rv = (*ckpFunctions->C_SignUpdate)(ckSessionHandle, (CK_BYTE_PTR) jlong_to_ptr(directIn), jInLen); ckAssertReturnValueOK(env, rv); return; } @@ -262,7 +263,7 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); - if ((jExpectedLength > 0) && (jExpectedLength < ckSignatureLength)) { + if ((jExpectedLength > 0) && ((CK_ULONG)jExpectedLength < ckSignatureLength)) { ckSignatureLength = jExpectedLength; } @@ -496,7 +497,7 @@ ckSessionHandle = jLongToCKULong(jSessionHandle); if (directIn != 0) { - rv = (*ckpFunctions->C_VerifyUpdate)(ckSessionHandle, (CK_BYTE_PTR)directIn, jInLen); + rv = (*ckpFunctions->C_VerifyUpdate)(ckSessionHandle, (CK_BYTE_PTR)jlong_to_ptr(directIn), jInLen); ckAssertReturnValueOK(env, rv); return; } diff -r 0e685b019743 -r a7496bb56968 jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c --- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c Wed Jul 05 18:29:53 2017 +0200 @@ -106,7 +106,7 @@ if (moduleData == NULL) { return ; } - (*env)->SetLongField(env, pkcs11Implementation, pNativeDataID, (jlong)moduleData); + (*env)->SetLongField(env, pkcs11Implementation, pNativeDataID, ptr_to_jlong(moduleData)); } @@ -120,7 +120,7 @@ return NULL; } jData = (*env)->GetLongField(env, pkcs11Implementation, pNativeDataID); - return (ModuleData*)jData; + return (ModuleData*)jlong_to_ptr(jData); } CK_FUNCTION_LIST_PTR getFunctionList(JNIEnv *env, jobject pkcs11Implementation) { diff -r 0e685b019743 -r a7496bb56968 jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c --- a/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Wed Jul 05 18:29:53 2017 +0200 @@ -34,7 +34,7 @@ #include "j2secmod.h" void *findFunction(JNIEnv *env, jlong jHandle, const char *functionName) { - void *hModule = (void*)jHandle; + void *hModule = (void*)jlong_to_ptr(jHandle); void *fAddress = dlsym(hModule, functionName); if (fAddress == NULL) { char errorMessage[256]; @@ -53,7 +53,7 @@ void *hModule = dlopen(libName, RTLD_NOLOAD); dprintf2("-handle for %s: %u\n", libName, hModule); (*env)->ReleaseStringUTFChars(env, jLibName, libName); - return (jlong)hModule; + return ptr_to_jlong(hModule); } JNIEXPORT jlong JNICALL Java_sun_security_pkcs11_Secmod_nssLoadLibrary @@ -72,5 +72,5 @@ return 0; } - return (jlong)hModule; + return ptr_to_jlong(hModule); } diff -r 0e685b019743 -r a7496bb56968 jdk/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c --- a/jdk/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c Wed Jul 05 18:29:53 2017 +0200 @@ -79,7 +79,7 @@ { void *hModule; char *error; - CK_C_GetFunctionList C_GetFunctionList; + CK_C_GetFunctionList C_GetFunctionList=NULL; CK_RV rv; ModuleData *moduleData; jobject globalPKCS11ImplementationReference; diff -r 0e685b019743 -r a7496bb56968 jdk/test/ProblemList.txt --- a/jdk/test/ProblemList.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/ProblemList.txt Wed Jul 05 18:29:53 2017 +0200 @@ -137,11 +137,6 @@ # 7196801 java/lang/management/MemoryMXBean/LowMemoryTest2.sh generic-all -# Exclude until hotspot/jdk repos are sync'd w.r.t. JAVA_MAX_SUPPORTED_VERSION -# Needed when hotspot fix 7054345 is present. Remove when the JDK source is -# updated accordingly. -java/lang/System/Versions.java generic-all - ############################################################################ # jdk_management diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java --- a/jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 6209660 + * @bug 6209660 6383200 * @summary Ensure that InvalidAlgorithmParameterException is * thrown as javadoc specified when parameters of the wrong * type are used. @@ -38,9 +38,21 @@ private static final char[] PASSWORD = { 'p', 'a', 's', 's' }; private static final String[] PBE_ALGOS = { - "PBEWithMD5AndDES", "PBEWithSHA1AndDESede", "PBEWithSHA1AndRC2_40" + "PBEWithMD5AndDES", + "PBEWithSHA1AndDESede", + "PBEWithSHA1AndRC2_40", + "PBEWithSHA1AndRC2_128", + "PBEWithSHA1AndRC4_40", + "PBEWithSHA1AndRC4_128", // skip "PBEWithMD5AndTripleDES" since it requires Unlimited // version of JCE jurisdiction policy files. + "PBEWithHmacSHA1AndAES_128", + "PBEWithHmacSHA224AndAES_128", + "PBEWithHmacSHA256AndAES_128", + "PBEWithHmacSHA384AndAES_128", + "PBEWithHmacSHA512AndAES_128" + // skip "PBEWithHmacSHAxxxAndAES_256" since they require Unlimited + // version of JCE jurisdiction policy files. }; private static final IvParameterSpec INVALID_PARAMS = diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java --- a/jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 6341599 + * @bug 6341599 6383200 * @summary JCE Reference Guide has recommendations, not requirements, * for algorithm names * @author Brad R. Wetmore @@ -38,8 +38,15 @@ "PBEWithMD5AndDES", "PBEWithSHA1AndDESede", "PBEWithSHA1AndRC2_40", + "PBEWithSHA1AndRC2_128", + "PBEWithMD5AndTripleDES", + "PBEWithSHA1AndRC4_40", + "PBEWithSHA1AndRC4_128", "PBKDF2WithHmacSHA1", - "PBEWithMD5AndTripleDES" + "PBKDF2WithHmacSHA224", + "PBKDF2WithHmacSHA256", + "PBKDF2WithHmacSHA384", + "PBKDF2WithHmacSHA512" }; public static void main(String[] argv) throws Exception { diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java --- a/jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 4944783 + * @bug 4944783 6383200 * @summary ensure that the AlgorithmParameters object returned by * PBE ciphers have the matching algorithm name. * @author Valerie Peng @@ -37,9 +37,21 @@ private static final char[] PASSWORD = { 'p', 'a', 's', 's' }; private static final String[] PBE_ALGOS = { - "PBEWithMD5AndDES", "PBEWithSHA1AndDESede", "PBEWithSHA1AndRC2_40" + "PBEWithMD5AndDES", + "PBEWithSHA1AndDESede", + "PBEWithSHA1AndRC2_40", + "PBEWithSHA1AndRC2_128", + "PBEWithSHA1AndRC4_40", + "PBEWithSHA1AndRC4_128", // skip "PBEWithMD5AndTripleDES" since it requires Unlimited // version of JCE jurisdiction policy files. + "PBEWithHmacSHA1AndAES_128", + "PBEWithHmacSHA224AndAES_128", + "PBEWithHmacSHA256AndAES_128", + "PBEWithHmacSHA384AndAES_128", + "PBEWithHmacSHA512AndAES_128" + // skip "PBEWithHmacSHAxxxAndAES_256" since they require Unlimited + // version of JCE jurisdiction policy files. }; public static void main(String[] args) throws Exception { PBEKeySpec ks = new PBEKeySpec(PASSWORD); diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Cipher/PBE/PBES2Test.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/PBES2Test.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6383200 + * @summary PBE: need new algorithm support in password based encryption + */ +import java.security.*; +import java.util.Arrays; +import javax.crypto.*; +import javax.crypto.spec.*; + +public class PBES2Test { + + private static final String[] algos = { + "PBEWithHmacSHA1AndAES_128", + "PBEWithHmacSHA224AndAES_128", + "PBEWithHmacSHA256AndAES_128", + "PBEWithHmacSHA384AndAES_128", + "PBEWithHmacSHA512AndAES_128" + }; + private static final byte[] ivBytes = { + 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, + 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20, + }; + + public static final void main(String[] args) throws Exception { + for (String algo : algos) { + test(algo, true); // salt, ic, IV supplied by the application + test(algo, false); // salt, ic, IV generated by the implementation + } + } + + private static final void test(String algo, boolean suppliedParams) + throws Exception { + + System.out.println("***********************************************"); + System.out.println(algo + + (suppliedParams ? " [algorithm parameters are supplied]\n" + : " [algorithm parameters are generated]\n")); + int iterationCount = 1000; + byte[] salt = new byte[]{ 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08 }; + + // Create PBE key + PBEKeySpec pbeKeySpec = new PBEKeySpec("mypassword".toCharArray()); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(algo); + SecretKey pbeKey = keyFactory.generateSecret(pbeKeySpec); + byte[] pbeKeyBytes = pbeKey.getEncoded(); + System.out.println(" key[" + pbeKeyBytes.length + "]: " + + String.format("0x%0" + (pbeKeyBytes.length * 2) + "x", + new java.math.BigInteger(1, pbeKeyBytes))); + + // Create PBE cipher + System.out.println("Encrypting..."); + Cipher pbeCipher = Cipher.getInstance(algo); + if (suppliedParams) { + pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, + new PBEParameterSpec(salt, iterationCount, + new IvParameterSpec(ivBytes))); + } else { + pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey); + } + + // Encrypt + byte[] cleartext = "This is just an example".getBytes(); + System.out.println(" text[" + cleartext.length + "]: " + + String.format("0x%0" + (cleartext.length * 2) + "x", + new java.math.BigInteger(1, cleartext))); + + byte[] ciphertext = pbeCipher.doFinal(cleartext); + System.out.println("c'text[" + ciphertext.length + "]: " + + String.format("0x%0" + (ciphertext.length * 2) + "x", + new java.math.BigInteger(1, ciphertext))); + + AlgorithmParameters aps = pbeCipher.getParameters(); + + byte[] iv; + if (suppliedParams) { + iv = ivBytes; + } else { + PBEParameterSpec pbeSpec = + aps.getParameterSpec(PBEParameterSpec.class); + salt = pbeSpec.getSalt(); + iterationCount = pbeSpec.getIterationCount(); + IvParameterSpec ivSpec = + (IvParameterSpec) pbeSpec.getParameterSpec(); + iv = ivSpec.getIV(); + } + System.out.println(" salt[" + salt.length + "]: " + + String.format("0x%0" + (salt.length * 2) + "x", + new java.math.BigInteger(1, salt))); + System.out.println("iterationCount=" + iterationCount); + System.out.println(" iv[" + iv.length + "]: " + + String.format("0x%0" + (iv.length * 2) + "x", + new java.math.BigInteger(1, iv))); + + // Decrypt + System.out.println("Decrypting..."); + Cipher pbeCipher2 = Cipher.getInstance(algo); + pbeCipher2.init(Cipher.DECRYPT_MODE, pbeKey, aps); + byte[] cleartext2 = pbeCipher2.doFinal(ciphertext); + System.out.println(" text[" + cleartext2.length + "]: " + + String.format("0x%0" + (cleartext2.length * 2) + "x", + new java.math.BigInteger(1, cleartext2))); + + if (Arrays.equals(cleartext, cleartext2)) { + System.out.println( + "\nPass: decrypted ciphertext matches the original text\n"); + } else { + throw new Exception( + "Fail: decrypted ciphertext does NOT match the original text"); + } + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java --- a/jdk/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,9 +23,9 @@ /** * @test - * @bug 4893959 - * @summary basic test for PBEWithSHA1AndDESede and - * PBEWithSHA1AndRC2_40 + * @bug 4893959 6383200 + * @summary basic test for PBEWithSHA1AndDESede, PBEWithSHA1AndRC2_40/128 + * and PBEWithSHA1AndRC4_40/128 * @author Valerie Peng */ @@ -87,6 +87,9 @@ System.out.println("Testing provider " + p.getName() + "..."); runTest("PBEWithSHA1AndDESede", input, PASSWD, p); runTest("PBEWithSHA1AndRC2_40", input, PASSWD, p); + runTest("PBEWithSHA1AndRC2_128", input, PASSWD, p); + runTest("PBEWithSHA1AndRC4_40", input, PASSWD, p); + runTest("PBEWithSHA1AndRC4_128", input, PASSWD, p); System.out.println("All tests passed"); long stop = System.currentTimeMillis(); System.out.println("Done (" + (stop - start) + " ms)."); diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java --- a/jdk/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,9 +23,9 @@ /** * @test - * @bug 4898810 - * @summary ensure PBEWithSHA1AndDESede and PBEWithSHA1AndRC2_40 - * is registered under correct OID. + * @bug 4898810 6383200 + * @summary ensure PBEWithSHA1AndDESede, PBEWithSHA1AndRC2_40/128 + * and PBEWithSHA1AndRC4_40/128 are registered under correct OID. * @author Valerie Peng */ @@ -37,12 +37,20 @@ import javax.crypto.interfaces.PBEKey; public class PKCS12Oid { - private static String OID_PBEWithSHAAnd40BitRC2CBC = "1.2.840.113549.1.12.1.6"; - private static String OID_PBEWithSHAAnd3KeyTripleDESCBC = "1.2.840.113549.1.12.1.3"; + private static String OID_PKCS12 = "1.2.840.113549.1.12.1."; + private static String OID_PBEWithSHAAnd128BitRC4 = OID_PKCS12 + "1"; + private static String OID_PBEWithSHAAnd40BitRC4 = OID_PKCS12 + "2"; + private static String OID_PBEWithSHAAnd3KeyTripleDESCBC = OID_PKCS12 + "3"; + private static String OID_PBEWithSHAAnd128BitRC2CBC = OID_PKCS12 + "5"; + private static String OID_PBEWithSHAAnd40BitRC2CBC = OID_PKCS12 + "6"; public static void main(String[] argv) throws Exception { Cipher c = Cipher.getInstance(OID_PBEWithSHAAnd40BitRC2CBC, "SunJCE"); c = Cipher.getInstance(OID_PBEWithSHAAnd3KeyTripleDESCBC, "SunJCE"); + + c = Cipher.getInstance(OID_PBEWithSHAAnd128BitRC4, "SunJCE"); + c = Cipher.getInstance(OID_PBEWithSHAAnd40BitRC4, "SunJCE"); + c = Cipher.getInstance(OID_PBEWithSHAAnd128BitRC2CBC, "SunJCE"); System.out.println("All tests passed"); } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Mac/HmacPBESHA1.java --- a/jdk/test/com/sun/crypto/provider/Mac/HmacPBESHA1.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/com/sun/crypto/provider/Mac/HmacPBESHA1.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,34 +36,45 @@ import javax.crypto.spec.*; public class HmacPBESHA1 { - private static final String MAC_ALGO = "HmacPBESHA1"; + private static final String[] MAC_ALGOS = { + "HmacPBESHA1", + "PBEWithHmacSHA1", + "PBEWithHmacSHA224", + "PBEWithHmacSHA256", + "PBEWithHmacSHA384", + "PBEWithHmacSHA512" + }; + private static final int[] MAC_LENGTHS = { 20, 20, 28, 32, 48, 64 }; private static final String KEY_ALGO = "PBE"; private static final String PROVIDER = "SunJCE"; - private SecretKey key = null; + private static SecretKey key = null; public static void main(String argv[]) throws Exception { - HmacPBESHA1 test = new HmacPBESHA1(); - test.run(); - System.out.println("Test Passed"); + for (int i = 0; i < MAC_ALGOS.length; i++) { + runtest(MAC_ALGOS[i], MAC_LENGTHS[i]); + } + System.out.println("\nTest Passed"); } - public void run() throws Exception { + private static void runtest(String algo, int length) throws Exception { + System.out.println("Testing: " + algo); if (key == null) { char[] password = { 't', 'e', 's', 't' }; PBEKeySpec keySpec = new PBEKeySpec(password); - SecretKeyFactory kf = SecretKeyFactory.getInstance(KEY_ALGO, PROVIDER); + SecretKeyFactory kf = + SecretKeyFactory.getInstance(KEY_ALGO, PROVIDER); key = kf.generateSecret(keySpec); } - Mac mac = Mac.getInstance(MAC_ALGO, PROVIDER); + Mac mac = Mac.getInstance(algo, PROVIDER); byte[] plainText = new byte[30]; mac.init(key); mac.update(plainText); byte[] value1 = mac.doFinal(); - if (value1.length != 20) { - throw new Exception("incorrect MAC output length, " + - "expected 20, got " + value1.length); + if (value1.length != length) { + throw new Exception("incorrect MAC output length, expected " + + length + ", got " + value1.length); } mac.update(plainText); byte[] value2 = mac.doFinal(); diff -r 0e685b019743 -r a7496bb56968 jdk/test/com/sun/crypto/provider/Mac/HmacSaltLengths.java --- a/jdk/test/com/sun/crypto/provider/Mac/HmacSaltLengths.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/com/sun/crypto/provider/Mac/HmacSaltLengths.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,6 +38,15 @@ public class HmacSaltLengths { + private static final String[] ALGOS = { + "HmacPBESHA1", + "PBEWithHmacSHA1", + "PBEWithHmacSHA224", + "PBEWithHmacSHA256", + "PBEWithHmacSHA384", + "PBEWithHmacSHA512" + }; + private static void runTest(String alg, byte[] plaintext, char[] password, Provider p) throws Exception { @@ -81,7 +90,9 @@ long start = System.currentTimeMillis(); Provider p = Security.getProvider("SunJCE"); System.out.println("Testing provider " + p.getName() + "..."); - runTest("HmacPBESHA1", input, PASSWD, p); + for (String algo : ALGOS) { + runTest(algo, input, PASSWD, p); + } System.out.println("All tests passed"); long stop = System.currentTimeMillis(); System.out.println("Done (" + (stop - start) + " ms)."); diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/Character/CheckProp.java --- a/jdk/test/java/lang/Character/CheckProp.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/Character/CheckProp.java Wed Jul 05 18:29:53 2017 +0200 @@ -24,7 +24,7 @@ /** * @test - * @bug 7037261 7070436 + * @bug 7037261 7070436 7198195 * @summary Check j.l.Character.isLowerCase/isUppercase/isAlphabetic/isIdeographic */ diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/Character/CheckScript.java --- a/jdk/test/java/lang/Character/CheckScript.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/Character/CheckScript.java Wed Jul 05 18:29:53 2017 +0200 @@ -24,7 +24,7 @@ /** * @test - * @bug 6945564 6959267 7033561 7070436 + * @bug 6945564 6959267 7033561 7070436 7198195 * @summary Check that the j.l.Character.UnicodeScript */ diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/Character/PropList.txt --- a/jdk/test/java/lang/Character/PropList.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/Character/PropList.txt Wed Jul 05 18:29:53 2017 +0200 @@ -1,8 +1,8 @@ -# PropList-6.1.0.txt -# Date: 2011-11-30, 01:49:54 GMT [MD] +# PropList-6.2.0.txt +# Date: 2012-05-23, 20:34:59 GMT [MD] # # Unicode Character Database -# Copyright (c) 1991-2011 Unicode, Inc. +# Copyright (c) 1991-2012 Unicode, Inc. # For terms of use, see http://www.unicode.org/terms_of_use.html # For documentation, see http://www.unicode.org/reports/tr44/ diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/Character/PropertyValueAliases.txt --- a/jdk/test/java/lang/Character/PropertyValueAliases.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/Character/PropertyValueAliases.txt Wed Jul 05 18:29:53 2017 +0200 @@ -1,8 +1,8 @@ -# PropertyValueAliases-6.1.0.txt -# Date: 2011-12-07, 23:40:57 GMT [MD] +# PropertyValueAliases-6.2.0.txt +# Date: 2012-08-14, 16:05:11 GMT [MD] # # Unicode Character Database -# Copyright (c) 1991-2011 Unicode, Inc. +# Copyright (c) 1991-2012 Unicode, Inc. # For terms of use, see http://www.unicode.org/terms_of_use.html # For documentation, see http://www.unicode.org/reports/tr44/ # @@ -73,6 +73,7 @@ age; 5.2 ; V5_2 age; 6.0 ; V6_0 age; 6.1 ; V6_1 +age; 6.2 ; V6_2 age; NA ; Unassigned # Alphabetic (Alpha) @@ -382,7 +383,8 @@ ccc; 122; CCC122 ; CCC122 ccc; 129; CCC129 ; CCC129 ccc; 130; CCC130 ; CCC130 -ccc; 132; CCC133 ; CCC133 +ccc; 132; CCC132 ; CCC132 +ccc; 133; CCC133 ; CCC133 # RESERVED ccc; 200; ATBL ; Attached_Below_Left ccc; 202; ATB ; Attached_Below ccc; 214; ATA ; Attached_Above @@ -592,6 +594,7 @@ GCB; LV ; LV GCB; LVT ; LVT GCB; PP ; Prepend +GCB; RI ; Regional_Indicator GCB; SM ; SpacingMark GCB; T ; T GCB; V ; V @@ -862,6 +865,7 @@ lb ; PO ; Postfix_Numeric lb ; PR ; Prefix_Numeric lb ; QU ; Quotation +lb ; RI ; Regional_Indicator lb ; SA ; Complex_Context lb ; SG ; Surrogate lb ; SP ; Space @@ -880,10 +884,6 @@ Lower; N ; No ; F ; False Lower; Y ; Yes ; T ; True -# Lowercase_Mapping (lc) - -# @missing: 0000..10FFFF; Lowercase_Mapping; - # Math (Math) Math; N ; No ; F ; False @@ -1159,10 +1159,6 @@ Term; N ; No ; F ; False Term; Y ; Yes ; T ; True -# Titlecase_Mapping (tc) - -# @missing: 0000..10FFFF; Titlecase_Mapping; - # Unicode_1_Name (na1) # @missing: 0000..10FFFF; Unicode_1_Name; @@ -1177,10 +1173,6 @@ Upper; N ; No ; F ; False Upper; Y ; Yes ; T ; True -# Uppercase_Mapping (uc) - -# @missing: 0000..10FFFF; Uppercase_Mapping; - # Variation_Selector (VS) VS ; N ; No ; F ; False @@ -1205,6 +1197,7 @@ WB ; MN ; MidNum WB ; NL ; Newline WB ; NU ; Numeric +WB ; RI ; Regional_Indicator WB ; XX ; Other # XID_Continue (XIDC) diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/Character/Scripts.txt --- a/jdk/test/java/lang/Character/Scripts.txt Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/Character/Scripts.txt Wed Jul 05 18:29:53 2017 +0200 @@ -1,8 +1,8 @@ -# Scripts-6.1.0.txt -# Date: 2011-11-27, 05:10:50 GMT [MD] +# Scripts-6.2.0.txt +# Date: 2012-06-04, 17:21:29 GMT [MD] # # Unicode Character Database -# Copyright (c) 1991-2011 Unicode, Inc. +# Copyright (c) 1991-2012 Unicode, Inc. # For terms of use, see http://www.unicode.org/terms_of_use.html # For documentation, see http://www.unicode.org/reports/tr44/ @@ -146,7 +146,7 @@ 208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN 208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS 208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS -20A0..20B9 ; Common # Sc [26] EURO-CURRENCY SIGN..INDIAN RUPEE SIGN +20A0..20BA ; Common # Sc [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN 2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT 2102 ; Common # L& DOUBLE-STRUCK CAPITAL C 2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA @@ -576,7 +576,7 @@ E0001 ; Common # Cf LANGUAGE TAG E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG -# Total code points: 6412 +# Total code points: 6413 # ================================================ @@ -760,7 +760,7 @@ 061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK 0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE 0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH -0656..065E ; Arabic # Mn [9] ARABIC SUBSCRIPT ALEF..ARABIC FATHA WITH TWO DOTS +0656..065F ; Arabic # Mn [10] ARABIC SUBSCRIPT ALEF..ARABIC WAVY HAMZA BELOW 066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR 066E..066F ; Arabic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF 0671..06D3 ; Arabic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE @@ -827,7 +827,7 @@ 1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL -# Total code points: 1234 +# Total code points: 1235 # ================================================ @@ -1477,7 +1477,6 @@ 0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X 0485..0486 ; Inherited # Mn [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA 064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW -065F ; Inherited # Mn ARABIC WAVY HAMZA BELOW 0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF 0951..0952 ; Inherited # Mn [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA 1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA @@ -1504,7 +1503,7 @@ 1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -# Total code points: 524 +# Total code points: 523 # ================================================ diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/Math/DivModTests.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/lang/Math/DivModTests.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,395 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * @test Test Math and StrictMath Floor Div / Modulo operations. + * @bug 6282196 + * @summary Basic tests for Floor division and modulo methods for both Math + * and StrictMath for int and long datatypes. + */ +public class DivModTests { + + /** + * The count of test errors. + */ + private static int errors = 0; + + /** + * @param args the command line arguments are unused + */ + public static void main(String[] args) { + errors = 0; + testIntFloorDivMod(); + testLongFloorDivMod(); + + if (errors > 0) { + throw new RuntimeException(errors + " errors found in DivMod methods."); + } + } + + /** + * Report a test failure and increment the error count. + * @param message the formatting string + * @param args the variable number of arguments for the message. + */ + static void fail(String message, Object... args) { + errors++; + System.out.printf(message, args); + } + + /** + * Test the integer floorDiv and floorMod methods. + * Math and StrictMath tested and the same results are expected for both. + */ + static void testIntFloorDivMod() { + testIntFloorDivMod(4, 0, new ArithmeticException("/ by zero"), new ArithmeticException("/ by zero")); // Should throw ArithmeticException + testIntFloorDivMod(4, 3, 1, 1); + testIntFloorDivMod(3, 3, 1, 0); + testIntFloorDivMod(2, 3, 0, 2); + testIntFloorDivMod(1, 3, 0, 1); + testIntFloorDivMod(0, 3, 0, 0); + testIntFloorDivMod(4, -3, -2, -2); + testIntFloorDivMod(3, -3, -1, 0); + testIntFloorDivMod(2, -3, -1, -1); + testIntFloorDivMod(1, -3, -1, -2); + testIntFloorDivMod(0, -3, 0, 0); + testIntFloorDivMod(-1, 3, -1, 2); + testIntFloorDivMod(-2, 3, -1, 1); + testIntFloorDivMod(-3, 3, -1, 0); + testIntFloorDivMod(-4, 3, -2, 2); + testIntFloorDivMod(-1, -3, 0, -1); + testIntFloorDivMod(-2, -3, 0, -2); + testIntFloorDivMod(-3, -3, 1, 0); + testIntFloorDivMod(-4, -3, 1, -1); + testIntFloorDivMod(Integer.MAX_VALUE, 1, Integer.MAX_VALUE, 0); + testIntFloorDivMod(Integer.MAX_VALUE, -1, -Integer.MAX_VALUE, 0); + testIntFloorDivMod(Integer.MAX_VALUE, 3, 715827882, 1); + testIntFloorDivMod(Integer.MAX_VALUE - 1, 3, 715827882, 0); + testIntFloorDivMod(Integer.MIN_VALUE, 3, -715827883, 1); + testIntFloorDivMod(Integer.MIN_VALUE + 1, 3, -715827883, 2); + testIntFloorDivMod(Integer.MIN_VALUE + 1, -1, Integer.MAX_VALUE, 0); + // Special case of integer overflow + testIntFloorDivMod(Integer.MIN_VALUE, -1, Integer.MIN_VALUE, 0); + } + + /** + * Test FloorDiv and then FloorMod with int data. + */ + static void testIntFloorDivMod(int x, int y, Object divExpected, Object modExpected) { + testIntFloorDiv(x, y, divExpected); + testIntFloorMod(x, y, modExpected); + } + + /** + * Test FloorDiv with int data. + */ + static void testIntFloorDiv(int x, int y, Object expected) { + Object result = doFloorDiv(x, y); + if (!resultEquals(result, expected)) { + fail("FAIL: Math.floorDiv(%d, %d) = %s; expected %s%n", x, y, result, expected); + } + + Object strict_result = doStrictFloorDiv(x, y); + if (!resultEquals(strict_result, expected)) { + fail("FAIL: StrictMath.floorDiv(%d, %d) = %s; expected %s%n", x, y, strict_result, expected); + } + } + + /** + * Test FloorMod with int data. + */ + static void testIntFloorMod(int x, int y, Object expected) { + Object result = doFloorMod(x, y); + if (!resultEquals(result, expected)) { + fail("FAIL: Math.floorMod(%d, %d) = %s; expected %s%n", x, y, result, expected); + } + + Object strict_result = doStrictFloorMod(x, y); + if (!resultEquals(strict_result, expected)) { + fail("FAIL: StrictMath.floorMod(%d, %d) = %s; expected %s%n", x, y, strict_result, expected); + } + + try { + // Verify result against double precision floor function + int tmp = x / y; // Force ArithmeticException for divide by zero + double ff = x - Math.floor((double)x / (double)y) * y; + int fr = (int)ff; + if (fr != result) { + fail("FAIL: Math.floorMod(%d, %d) = %s differs from Math.floor(x, y): %d%n", x, y, result, fr); + } + } catch (ArithmeticException ae) { + if (y != 0) { + fail("FAIL: Math.floorMod(%d, %d); unexpected %s%n", x, y, ae); + } + } + } + + /** + * Test the floorDiv and floorMod methods for primitive long. + */ + static void testLongFloorDivMod() { + testLongFloorDivMod(4L, 0L, new ArithmeticException("/ by zero"), new ArithmeticException("/ by zero")); // Should throw ArithmeticException + testLongFloorDivMod(4L, 3L, 1L, 1L); + testLongFloorDivMod(3L, 3L, 1L, 0L); + testLongFloorDivMod(2L, 3L, 0L, 2L); + testLongFloorDivMod(1L, 3L, 0L, 1L); + testLongFloorDivMod(0L, 3L, 0L, 0L); + testLongFloorDivMod(4L, -3L, -2L, -2L); + testLongFloorDivMod(3L, -3L, -1L, 0l); + testLongFloorDivMod(2L, -3L, -1L, -1L); + testLongFloorDivMod(1L, -3L, -1L, -2L); + testLongFloorDivMod(0L, -3L, 0L, 0L); + testLongFloorDivMod(-1L, 3L, -1L, 2L); + testLongFloorDivMod(-2L, 3L, -1L, 1L); + testLongFloorDivMod(-3L, 3L, -1L, 0L); + testLongFloorDivMod(-4L, 3L, -2L, 2L); + testLongFloorDivMod(-1L, -3L, 0L, -1L); + testLongFloorDivMod(-2L, -3L, 0L, -2L); + testLongFloorDivMod(-3L, -3L, 1L, 0L); + testLongFloorDivMod(-4L, -3L, 1L, -1L); + + testLongFloorDivMod(Long.MAX_VALUE, 1, Long.MAX_VALUE, 0L); + testLongFloorDivMod(Long.MAX_VALUE, -1, -Long.MAX_VALUE, 0L); + testLongFloorDivMod(Long.MAX_VALUE, 3L, Long.MAX_VALUE / 3L, 1L); + testLongFloorDivMod(Long.MAX_VALUE - 1L, 3L, (Long.MAX_VALUE - 1L) / 3L, 0L); + testLongFloorDivMod(Long.MIN_VALUE, 3L, Long.MIN_VALUE / 3L - 1L, 1L); + testLongFloorDivMod(Long.MIN_VALUE + 1L, 3L, Long.MIN_VALUE / 3L - 1L, 2L); + testLongFloorDivMod(Long.MIN_VALUE + 1, -1, Long.MAX_VALUE, 0L); + // Special case of integer overflow + testLongFloorDivMod(Long.MIN_VALUE, -1, Long.MIN_VALUE, 0L); + } + + /** + * Test the integer floorDiv and floorMod methods. + * Math and StrictMath are tested and the same results are expected for both. + */ + static void testLongFloorDivMod(long x, long y, Object divExpected, Object modExpected) { + testLongFloorDiv(x, y, divExpected); + testLongFloorMod(x, y, modExpected); + } + + /** + * Test FloorDiv with long arguments against expected value. + * The expected value is usually a Long but in some cases is + * an ArithmeticException. + * + * @param x dividend + * @param y modulus + * @param expected expected value, + */ + static void testLongFloorDiv(long x, long y, Object expected) { + Object result = doFloorDiv(x, y); + if (!resultEquals(result, expected)) { + fail("FAIL: long Math.floorDiv(%d, %d) = %s; expected %s%n", x, y, result, expected); + } + + Object strict_result = doStrictFloorDiv(x, y); + if (!resultEquals(strict_result, expected)) { + fail("FAIL: long StrictMath.floorDiv(%d, %d) = %s; expected %s%n", x, y, strict_result, expected); + } + } + + /** + * Test FloorMod of long arguments against expected value. + * The expected value is usually a Long but in some cases is + * an ArithmeticException. + * + * @param x dividend + * @param y modulus + * @param expected expected value + */ + static void testLongFloorMod(long x, long y, Object expected) { + Object result = doFloorMod(x, y); + if (!resultEquals(result, expected)) { + fail("FAIL: long Math.floorMod(%d, %d) = %s; expected %s%n", x, y, result, expected); + } + + Object strict_result = doStrictFloorMod(x, y); + if (!resultEquals(strict_result, expected)) { + fail("FAIL: long StrictMath.floorMod(%d, %d) = %s; expected %s%n", x, y, strict_result, expected); + } + + try { + // Verify the result against BigDecimal rounding mode. + BigDecimal xD = new BigDecimal(x); + BigDecimal yD = new BigDecimal(y); + BigDecimal resultD = xD.divide(yD, RoundingMode.FLOOR); + resultD = resultD.multiply(yD); + resultD = xD.subtract(resultD); + long fr = resultD.longValue(); + if (fr != result) { + fail("FAIL: Long.floorMod(%d, %d) = %d is different than BigDecimal result: %d%n",x, y, result, fr); + + } + } catch (ArithmeticException ae) { + if (y != 0) { + fail("FAIL: long Math.floorMod(%d, %d); unexpected ArithmeticException from bigdecimal"); + } + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doFloorDiv(int x, int y) { + try { + return Math.floorDiv(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doFloorDiv(long x, long y) { + try { + return Math.floorDiv(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doFloorMod(int x, int y) { + try { + return Math.floorMod(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doFloorMod(long x, long y) { + try { + return Math.floorMod(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doStrictFloorDiv(int x, int y) { + try { + return StrictMath.floorDiv(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doStrictFloorDiv(long x, long y) { + try { + return StrictMath.floorDiv(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doStrictFloorMod(int x, int y) { + try { + return StrictMath.floorMod(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Invoke floorDiv and return the result or any exception. + * @param x the x value + * @param y the y value + * @return the result Integer or an exception. + */ + static Object doStrictFloorMod(long x, long y) { + try { + return StrictMath.floorMod(x, y); + } catch (ArithmeticException ae) { + return ae; + } + } + + /** + * Returns a boolean by comparing the result and the expected value. + * The equals method is not defined for ArithmeticException but it is + * desirable to have equals return true if the expected and the result + * both threw the same exception (class and message.) + * + * @param result the result from testing the method + * @param expected the expected value + * @return true if the result is equal to the expected values; false otherwise. + */ + static boolean resultEquals(Object result, Object expected) { + if (result.getClass() != expected.getClass()) { + fail("FAIL: Result type mismatch, %s; expected: %s%n", + result.getClass().getName(), expected.getClass().getName()); + return false; + } + + if (result.equals(expected)) { + return true; + } + // Handle special case to compare ArithmeticExceptions + if (result instanceof ArithmeticException && expected instanceof ArithmeticException) { + ArithmeticException ae1 = (ArithmeticException)result; + ArithmeticException ae2 = (ArithmeticException)expected; + return ae1.getMessage().equals(ae2.getMessage()); + } + return false; + } + +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/invoke/BigArityTest.java --- a/jdk/test/java/lang/invoke/BigArityTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/invoke/BigArityTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -26,7 +26,7 @@ /* @test * @summary High arity invocations, up to the maximum of 255 arguments * @compile BigArityTest.java - * @run junit/othervm -DBigArityTest.ITERATION_COUNT=1 test.java.lang.invoke.BigArityTest + * @run junit/othervm/timeout=2500 -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies -esa -DBigArityTest.ITERATION_COUNT=1 test.java.lang.invoke.BigArityTest */ package test.java.lang.invoke; diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/invoke/CallSiteTest.java --- a/jdk/test/java/lang/invoke/CallSiteTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/invoke/CallSiteTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -28,7 +28,7 @@ * * @build indify.Indify * @compile CallSiteTest.java - * @run main/othervm + * @run main/othervm/timeout=3600 -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies * indify.Indify * --expand-properties --classpath ${test.classes} * --java test.java.lang.invoke.CallSiteTest diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/invoke/MethodHandlesTest.java --- a/jdk/test/java/lang/invoke/MethodHandlesTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/invoke/MethodHandlesTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -26,7 +26,7 @@ /* @test * @summary unit tests for java.lang.invoke.MethodHandles * @compile MethodHandlesTest.java remote/RemoteExample.java - * @run junit/othervm test.java.lang.invoke.MethodHandlesTest + * @run junit/othervm/timeout=2500 -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies -esa test.java.lang.invoke.MethodHandlesTest */ package test.java.lang.invoke; diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/lang/invoke/RicochetTest.java --- a/jdk/test/java/lang/invoke/RicochetTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/lang/invoke/RicochetTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -25,7 +25,7 @@ /* @test * @summary unit tests for recursive method handles - * @run junit/othervm -DRicochetTest.MAX_ARITY=50 test.java.lang.invoke.RicochetTest + * @run junit/othervm/timeout=3600 -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies -DRicochetTest.MAX_ARITY=10 test.java.lang.invoke.RicochetTest */ /* * @ignore The following test creates an unreasonable number of adapters in -Xcomp mode (7049122) diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java --- a/jdk/test/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,29 +27,16 @@ * @library .. */ -import java.io.*; import java.net.*; -import java.nio.*; import java.nio.channels.*; -import java.nio.charset.*; import java.util.*; public class AdaptDatagramSocket { static java.io.PrintStream out = System.out; - static Random rand = new Random(); - static final int ECHO_PORT = 7; - static final int DISCARD_PORT = 9; - static final String REMOTE_HOST = TestUtil.HOST; - - static final InetSocketAddress echoAddress - = new InetSocketAddress(REMOTE_HOST, ECHO_PORT); - static final InetSocketAddress discardAddress - = new InetSocketAddress(REMOTE_HOST, DISCARD_PORT); - static String toString(DatagramPacket dp) { return ("DatagramPacket[off=" + dp.getOffset() + ", len=" + dp.getLength() @@ -88,10 +75,11 @@ out.println("rtt: " + (System.currentTimeMillis() - start)); out.println("post op: " + toString(op) + " ip: " + toString(ip)); - for (int i = 0; i < ip.getLength(); i++) + for (int i = 0; i < ip.getLength(); i++) { if (ip.getData()[ip.getOffset() + i] != op.getData()[op.getOffset() + i]) throw new Exception("Incorrect data received"); + } if (!(ip.getSocketAddress().equals(dst))) { throw new Exception("Incorrect sender address, expected: " + dst @@ -130,8 +118,9 @@ ds.setSoTimeout(timeout); out.println("timeout: " + ds.getSoTimeout()); - for (int i = 0; i < 5; i++) + for (int i = 0; i < 5; i++) { test(ds, dst, shouldTimeout); + } // Leave the socket open so that we don't reuse the old src address //ds.close(); @@ -139,10 +128,23 @@ } public static void main(String[] args) throws Exception { - test(echoAddress, 0, false, false); - test(echoAddress, 0, false, true); - test(echoAddress, 5000, false, false); - test(discardAddress, 10, true, false); + // need an UDP echo server + try (TestServers.UdpEchoServer echoServer + = TestServers.UdpEchoServer.startNewServer(100)) { + final InetSocketAddress address + = new InetSocketAddress(echoServer.getAddress(), + echoServer.getPort()); + test(address, 0, false, false); + test(address, 0, false, true); + test(address, 5000, false, false); + } + try (TestServers.UdpDiscardServer discardServer + = TestServers.UdpDiscardServer.startNewServer()) { + final InetSocketAddress address + = new InetSocketAddress(discardServer.getAddress(), + discardServer.getPort()); + test(address, 10, true, false); + } } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/DatagramChannel/IsBound.java --- a/jdk/test/java/nio/channels/DatagramChannel/IsBound.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/DatagramChannel/IsBound.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,21 +34,25 @@ public class IsBound { public static void main(String argv[]) throws Exception { - InetSocketAddress isa = new InetSocketAddress( - InetAddress.getByName(TestUtil.HOST), 13); - ByteBuffer bb = ByteBuffer.allocateDirect(256); - bb.put("hello".getBytes()); - bb.flip(); + try (TestServers.UdpDayTimeServer daytimeServer + = TestServers.UdpDayTimeServer.startNewServer(100)) { + InetSocketAddress isa = new InetSocketAddress( + daytimeServer.getAddress(), + daytimeServer.getPort()); + ByteBuffer bb = ByteBuffer.allocateDirect(256); + bb.put("hello".getBytes()); + bb.flip(); - DatagramChannel dc = DatagramChannel.open(); - dc.send(bb, isa); - if(!dc.socket().isBound()) - throw new Exception("Test failed"); - dc.close(); + DatagramChannel dc = DatagramChannel.open(); + dc.send(bb, isa); + if(!dc.socket().isBound()) + throw new Exception("Test failed"); + dc.close(); - dc = DatagramChannel.open(); - if(dc.socket().isBound()) - throw new Exception("Test failed"); - dc.close(); + dc = DatagramChannel.open(); + if(dc.socket().isBound()) + throw new Exception("Test failed"); + dc.close(); + } } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/DatagramChannel/IsConnected.java --- a/jdk/test/java/nio/channels/DatagramChannel/IsConnected.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/DatagramChannel/IsConnected.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,21 +28,23 @@ */ import java.net.*; -import java.nio.*; import java.nio.channels.*; public class IsConnected { public static void main(String argv[]) throws Exception { - InetSocketAddress isa = new InetSocketAddress( - InetAddress.getByName(TestUtil.HOST), 13); - DatagramChannel dc = DatagramChannel.open(); - dc.configureBlocking(true); - dc.connect(isa); - if (!dc.isConnected()) - throw new RuntimeException("channel.isConnected inconsistent"); - if (!dc.socket().isConnected()) - throw new RuntimeException("socket.isConnected inconsistent"); - dc.close(); + try (TestServers.UdpDayTimeServer daytimeServer + = TestServers.UdpDayTimeServer.startNewServer(100)) { + InetSocketAddress isa = new InetSocketAddress( + daytimeServer.getAddress(), daytimeServer.getPort()); + DatagramChannel dc = DatagramChannel.open(); + dc.configureBlocking(true); + dc.connect(isa); + if (!dc.isConnected()) + throw new RuntimeException("channel.isConnected inconsistent"); + if (!dc.socket().isConnected()) + throw new RuntimeException("socket.isConnected inconsistent"); + dc.close(); + } } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/FileChannel/MapTest.java --- a/jdk/test/java/nio/channels/FileChannel/MapTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/FileChannel/MapTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,7 @@ */ /* @test + * @bug 4429043 8002180 * @summary Test file mapping with FileChannel * @run main/othervm MapTest */ @@ -29,7 +30,10 @@ import java.io.*; import java.nio.MappedByteBuffer; import java.nio.channels.*; -import java.nio.channels.FileChannel; +import java.nio.channels.FileChannel.MapMode; +import java.nio.file.Files; +import static java.nio.file.StandardOpenOption.*; +import static java.nio.charset.StandardCharsets.*; import java.util.Random; @@ -39,6 +43,7 @@ public class MapTest { + private static PrintStream out = System.out; private static PrintStream err = System.err; private static Random generator = new Random(); @@ -51,15 +56,21 @@ blah = File.createTempFile("blah", null); blah.deleteOnExit(); initTestFile(blah); - err.println("Test file " + blah + " initialized"); - testZero(); - err.println("Zero size: OK"); - testRead(); - err.println("Read: OK"); - testWrite(); - err.println("Write: OK"); - testHighOffset(); - err.println("High offset: OK"); + try { + out.println("Test file " + blah + " initialized"); + testZero(); + out.println("Zero size: OK"); + testRead(); + out.println("Read: OK"); + testWrite(); + out.println("Write: OK"); + testHighOffset(); + out.println("High offset: OK"); + testExceptions(); + out.println("Exceptions: OK"); + } finally { + blah.delete(); + } } /** @@ -77,30 +88,25 @@ * ability to index into a file of multiple pages is tested. */ private static void initTestFile(File blah) throws Exception { - FileOutputStream fos = new FileOutputStream(blah); - BufferedWriter awriter - = new BufferedWriter(new OutputStreamWriter(fos, "8859_1")); - - for(int i=0; i<4000; i++) { - String number = new Integer(i).toString(); - for (int h=0; h<4-number.length(); h++) - awriter.write("0"); - awriter.write(""+i); - awriter.newLine(); + try (BufferedWriter writer = Files.newBufferedWriter(blah.toPath(), ISO_8859_1)) { + for (int i=0; i<4000; i++) { + String number = new Integer(i).toString(); + for (int h=0; h<4-number.length(); h++) + writer.write("0"); + writer.write(""+i); + writer.newLine(); + } } - awriter.flush(); - awriter.close(); } /** * Tests zero size file mapping */ private static void testZero() throws Exception { - FileInputStream fis = new FileInputStream(blah); - FileChannel c = fis.getChannel(); - MappedByteBuffer b = c.map(FileChannel.MapMode.READ_ONLY, 0, 0); - c.close(); - fis.close(); + try (FileInputStream fis = new FileInputStream(blah)) { + FileChannel fc = fis.getChannel(); + MappedByteBuffer b = fc.map(MapMode.READ_ONLY, 0, 0); + } } /** @@ -108,33 +114,32 @@ * from the ByteBuffer gets the right line number */ private static void testRead() throws Exception { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.setLength(4); for (int x=0; x<1000; x++) { - FileInputStream fis = new FileInputStream(blah); - FileChannel c = fis.getChannel(); + try (FileInputStream fis = new FileInputStream(blah)) { + FileChannel fc = fis.getChannel(); - long offset = generator.nextInt(10000); - long expectedResult = offset / CHARS_PER_LINE; - offset = expectedResult * CHARS_PER_LINE; + long offset = generator.nextInt(10000); + long expectedResult = offset / CHARS_PER_LINE; + offset = expectedResult * CHARS_PER_LINE; - MappedByteBuffer b = c.map(FileChannel.MapMode.READ_ONLY, - offset, 100); + MappedByteBuffer b = fc.map(MapMode.READ_ONLY, + offset, 100); - for (int i=0; i<4; i++) { - byte aByte = b.get(i); - sb.setCharAt(i, (char)aByte); - } + for (int i=0; i<4; i++) { + byte aByte = b.get(i); + sb.setCharAt(i, (char)aByte); + } - int result = Integer.parseInt(sb.toString()); - if (result != expectedResult) { - err.println("I expected "+expectedResult); - err.println("I got "+result); - throw new Exception("Read test failed"); + int result = Integer.parseInt(sb.toString()); + if (result != expectedResult) { + err.println("I expected "+expectedResult); + err.println("I got "+result); + throw new Exception("Read test failed"); + } } - c.close(); - fis.close(); } } @@ -143,46 +148,159 @@ * written out to the file can be read back in */ private static void testWrite() throws Exception { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.setLength(4); for (int x=0; x<1000; x++) { - RandomAccessFile raf = new RandomAccessFile(blah, "rw"); - FileChannel c = raf.getChannel(); + try (RandomAccessFile raf = new RandomAccessFile(blah, "rw")) { + FileChannel fc = raf.getChannel(); + + long offset = generator.nextInt(1000); + MappedByteBuffer b = fc.map(MapMode.READ_WRITE, + offset, 100); - long offset = generator.nextInt(1000); - MappedByteBuffer b = c.map(FileChannel.MapMode.READ_WRITE, - offset, 100); + for (int i=0; i<4; i++) { + b.put(i, (byte)('0' + i)); + } - for (int i=0; i<4; i++) { - b.put(i, (byte)('0' + i)); + for (int i=0; i<4; i++) { + byte aByte = b.get(i); + sb.setCharAt(i, (char)aByte); + } + if (!sb.toString().equals("0123")) + throw new Exception("Write test failed"); } - - for (int i=0; i<4; i++) { - byte aByte = b.get(i); - sb.setCharAt(i, (char)aByte); - } - if (!sb.toString().equals("0123")) - throw new Exception("Write test failed"); - c.close(); - raf.close(); } } private static void testHighOffset() throws Exception { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.setLength(4); for (int x=0; x<1000; x++) { - RandomAccessFile raf = new RandomAccessFile(blah, "rw"); - FileChannel fc = raf.getChannel(); - long offset = 66000; - MappedByteBuffer b = fc.map(FileChannel.MapMode.READ_WRITE, - offset, 100); + try (RandomAccessFile raf = new RandomAccessFile(blah, "rw")) { + FileChannel fc = raf.getChannel(); + long offset = 66000; + MappedByteBuffer b = fc.map(MapMode.READ_WRITE, + offset, 100); + } + } + } + + /** + * Test exceptions specified by map method + */ + private static void testExceptions() throws Exception { + // check exceptions when channel opened for read access + try (FileChannel fc = FileChannel.open(blah.toPath(), READ)) { + testExceptions(fc); + + checkException(fc, MapMode.READ_WRITE, 0L, fc.size(), + NonWritableChannelException.class); + + checkException(fc, MapMode.READ_WRITE, -1L, fc.size(), + NonWritableChannelException.class, IllegalArgumentException.class); + + checkException(fc, MapMode.READ_WRITE, 0L, -1L, + NonWritableChannelException.class, IllegalArgumentException.class); + + checkException(fc, MapMode.PRIVATE, 0L, fc.size(), + NonWritableChannelException.class); - fc.close(); - raf.close(); + checkException(fc, MapMode.PRIVATE, -1L, fc.size(), + NonWritableChannelException.class, IllegalArgumentException.class); + + checkException(fc, MapMode.PRIVATE, 0L, -1L, + NonWritableChannelException.class, IllegalArgumentException.class); + } + + // check exceptions when channel opened for write access + try (FileChannel fc = FileChannel.open(blah.toPath(), WRITE)) { + testExceptions(fc); + + checkException(fc, MapMode.READ_ONLY, 0L, fc.size(), + NonReadableChannelException.class); + + checkException(fc, MapMode.READ_ONLY, -1L, fc.size(), + NonReadableChannelException.class, IllegalArgumentException.class); + + /* + * implementation/spec mismatch, these tests disabled for now + */ + //checkException(fc, MapMode.READ_WRITE, 0L, fc.size(), + // NonWritableChannelException.class); + //checkException(fc, MapMode.PRIVATE, 0L, fc.size(), + // NonWritableChannelException.class); + } + + // check exceptions when channel opened for read and write access + try (FileChannel fc = FileChannel.open(blah.toPath(), READ, WRITE)) { + testExceptions(fc); } } + private static void testExceptions(FileChannel fc) throws IOException { + checkException(fc, null, 0L, fc.size(), + NullPointerException.class); + + checkException(fc, MapMode.READ_ONLY, -1L, fc.size(), + IllegalArgumentException.class); + + checkException(fc, null, -1L, fc.size(), + IllegalArgumentException.class, NullPointerException.class); + + checkException(fc, MapMode.READ_ONLY, 0L, -1L, + IllegalArgumentException.class); + + checkException(fc, null, 0L, -1L, + IllegalArgumentException.class, NullPointerException.class); + + checkException(fc, MapMode.READ_ONLY, 0L, Integer.MAX_VALUE + 1L, + IllegalArgumentException.class); + + checkException(fc, null, 0L, Integer.MAX_VALUE + 1L, + IllegalArgumentException.class, NullPointerException.class); + + checkException(fc, MapMode.READ_ONLY, Long.MAX_VALUE, 1L, + IllegalArgumentException.class); + + checkException(fc, null, Long.MAX_VALUE, 1L, + IllegalArgumentException.class, NullPointerException.class); + + } + + /** + * Checks that FileChannel map throws one of the expected exceptions + * when invoked with the given inputs. + */ + private static void checkException(FileChannel fc, + MapMode mode, + long position, + long size, + Class... expected) + throws IOException + { + Exception exc = null; + try { + fc.map(mode, position, size); + } catch (Exception actual) { + exc = actual; + } + if (exc != null) { + for (Class clazz: expected) { + if (clazz.isInstance(exc)) { + return; + } + } + } + System.err.println("Expected one of"); + for (Class clazz: expected) { + System.out.println(clazz); + } + if (exc == null) { + throw new RuntimeException("No expection thrown"); + } else { + throw new RuntimeException("Unexpected exception thrown", exc); + } + } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/FileChannel/Truncate.java --- a/jdk/test/java/nio/channels/FileChannel/Truncate.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/FileChannel/Truncate.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,14 +22,16 @@ */ /* @test - * @bug 6191269 6709457 + * @bug 6191269 6709457 8000330 * @summary Test truncate method of FileChannel */ import java.io.*; import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; +import java.nio.channels.*; +import java.nio.file.Files; import static java.nio.file.StandardOpenOption.*; +import static java.nio.charset.StandardCharsets.*; import java.util.Random; @@ -46,6 +48,7 @@ try { basicTest(blah); appendTest(blah); + exceptionTests(blah); } finally { blah.delete(); } @@ -66,15 +69,22 @@ if (fc.size() != testSize) throw new RuntimeException("Size failed"); - long position = generator.nextInt((int)testSize); + long position = generator.nextInt((int)testSize*2); fc.position(position); - long newSize = generator.nextInt((int)testSize); + long newSize = generator.nextInt((int)testSize*2); fc.truncate(newSize); - if (fc.size() != newSize) - throw new RuntimeException("Truncate failed"); + // check new size + if (newSize > testSize) { + if (fc.size() != testSize) + throw new RuntimeException("Attempt to expand file changed size"); + } else { + if (fc.size() != newSize) + throw new RuntimeException("Unexpected size after truncate"); + } + // check new position if (position > newSize) { if (fc.position() != newSize) throw new RuntimeException("Position greater than size"); @@ -115,20 +125,90 @@ } /** + * Test exceptions specified by truncate method + */ + static void exceptionTests(File blah) throws Exception { + // check exceptions when channel opened for read access + try (FileChannel fc = FileChannel.open(blah.toPath(), READ)) { + long size = fc.size(); + + // open channel + checkException(fc, 0L, NonWritableChannelException.class); + + checkException(fc, -1L, NonWritableChannelException.class, + IllegalArgumentException.class); + + checkException(fc, size+1L, NonWritableChannelException.class); + + // closed channel + fc.close(); + + checkException(fc, 0L, ClosedChannelException.class); + + checkException(fc, -1L, ClosedChannelException.class, + IllegalArgumentException.class); + + checkException(fc, size+1L, ClosedChannelException.class); + } + + // check exceptions when channel opened for write access + try (FileChannel fc = FileChannel.open(blah.toPath(), WRITE)) { + long size = fc.size(); + + // open channel + checkException(fc, -1L, IllegalArgumentException.class); + + // closed channel + fc.close(); + + checkException(fc, 0L, ClosedChannelException.class); + + checkException(fc, -1L, ClosedChannelException.class, + IllegalArgumentException.class); + + checkException(fc, size+1L, ClosedChannelException.class); + } + } + + /** + * Checks that FileChannel truncate throws one of the expected exceptions + * when invoked with the given size. + */ + private static void checkException(FileChannel fc, long size, Class... expected) + throws IOException + { + Exception exc = null; + try { + fc.truncate(size); + } catch (Exception actual) { + exc = actual; + } + if (exc != null) { + for (Class clazz: expected) { + if (clazz.isInstance(exc)) { + return; + } + } + } + System.err.println("Expected one of"); + for (Class clazz: expected) { + System.err.println(clazz); + } + if (exc == null) { + throw new RuntimeException("No expection thrown"); + } else { + throw new RuntimeException("Unexpected exception thrown", exc); + } + } + + /** * Creates file blah of specified size in bytes. - * */ private static void initTestFile(File blah, long size) throws Exception { - if (blah.exists()) - blah.delete(); - FileOutputStream fos = new FileOutputStream(blah); - BufferedWriter awriter - = new BufferedWriter(new OutputStreamWriter(fos, "8859_1")); - - for(int i=0; i 0) { - Set readyKeys = connectSelector.selectedKeys(); - Iterator i = readyKeys.iterator(); - while (i.hasNext()) { - SelectionKey sk = (SelectionKey)i.next(); - i.remove(); - SocketChannel nextReady = (SocketChannel)sk.channel(); - result = nextReady.finishConnect(); - if (result) - sk.cancel(); + try (TestServers.EchoServer echoServer + = TestServers.EchoServer.startNewServer(100)) { + InetSocketAddress isa + = new InetSocketAddress(echoServer.getAddress(), + echoServer.getPort()); + SocketChannel sc = SocketChannel.open(); + sc.configureBlocking(false); + boolean result = sc.connect(isa); + if (result) { + System.out.println("Socket immediately connected on " + + System.getProperty("os.name") + + ": " + sc); + } + while (!result) { + SelectionKey connectKey = sc.register(connectSelector, + SelectionKey.OP_CONNECT); + int keysAdded = connectSelector.select(); + if (keysAdded > 0) { + Set readyKeys = connectSelector.selectedKeys(); + Iterator i = readyKeys.iterator(); + while (i.hasNext()) { + SelectionKey sk = (SelectionKey)i.next(); + i.remove(); + SocketChannel nextReady = (SocketChannel)sk.channel(); + result = nextReady.finishConnect(); + if (result) + sk.cancel(); + } } } - } - byte[] bs = new byte[] { (byte)0xca, (byte)0xfe, - (byte)0xba, (byte)0xbe }; - ByteBuffer bb = ByteBuffer.wrap(bs); - sc.configureBlocking(true); - sc.write(bb); - bb.rewind(); + byte[] bs = new byte[] { (byte)0xca, (byte)0xfe, + (byte)0xba, (byte)0xbe }; + ByteBuffer bb = ByteBuffer.wrap(bs); + sc.configureBlocking(true); + sc.write(bb); + bb.rewind(); - ByteBuffer bb2 = ByteBuffer.allocateDirect(100); - int n = sc.read(bb2); - bb2.flip(); + ByteBuffer bb2 = ByteBuffer.allocateDirect(100); + int n = sc.read(bb2); + bb2.flip(); - sc.close(); - connectSelector.close(); + sc.close(); + connectSelector.close(); - if (!bb.equals(bb2)) - throw new Exception("Echoed bytes incorrect: Sent " - + bb + ", got " + bb2); + if (!bb.equals(bb2)) + throw new Exception("Echoed bytes incorrect: Sent " + + bb + ", got " + bb2); + } } - } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/Selector/Connect.java --- a/jdk/test/java/nio/channels/Selector/Connect.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/Selector/Connect.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,12 +27,11 @@ * @library .. */ -import java.io.*; import java.net.*; import java.nio.*; import java.nio.channels.*; +import java.nio.channels.spi.SelectorProvider; import java.util.*; -import java.nio.channels.spi.SelectorProvider; public class Connect { @@ -40,12 +39,18 @@ static int LIMIT = 100; public static void main(String[] args) throws Exception { - scaleTest(); + try (TestServers.DayTimeServer daytimeServer + = TestServers.DayTimeServer.startNewServer(50)) { + scaleTest(daytimeServer); + } } - public static void scaleTest() throws Exception { - InetAddress myAddress=InetAddress.getByName(TestUtil.HOST); - InetSocketAddress isa = new InetSocketAddress(myAddress,13); + static void scaleTest(TestServers.DayTimeServer daytimeServer) + throws Exception + { + InetAddress myAddress = daytimeServer.getAddress(); + InetSocketAddress isa + = new InetSocketAddress(myAddress, daytimeServer.getPort()); for (int j=0; j> NONE = Collections.emptySet(); + + // make a set of expected exception. + static Collection> expectedExceptions(Class... expected) { + final Collection> exceptions; + if (expected.length == 0) { + exceptions = NONE; + } else if (expected.length == 1) { + assert expected[0] != null; + exceptions = Collections.>singleton(expected[0]); + } else { + exceptions = new HashSet<>(Arrays.asList(expected)); + } + return exceptions; + } static abstract class Test { @@ -76,37 +95,65 @@ check(!sc.isConnectionPending(), "!isConnectionPending"); check(sc.isOpen(), "isOpen"); break; + case ST_PENDING_OR_CONNECTED: + check(sc.isConnected() || sc.isConnectionPending(), + "isConnected || isConnectionPending"); + check(sc.isOpen(), "isOpen"); + break; } } - Test(String name, Class exception, int state) throws Exception { + Test(String name, Class exception, int state) throws Exception { + this(name, expectedExceptions(exception), state); + } + + // On some architecture we may need to accept several exceptions. + // For instance on Solaris, when using a server colocated on the + // machine we cannot guarantee that we will get a + // ConnectionPendingException when connecting twice on the same + // non-blocking socket. We may instead get a an + // AlreadyConnectedException, which is also valid: it simply means + // that the first connection has been immediately accepted. + Test(String name, Collection> exceptions, int state) + throws Exception { SocketChannel sc = SocketChannel.open(); - String note = null; + String note; try { try { note = go(sc); } catch (Exception x) { - if (exception != null) { + Class expectedExceptionClass = null; + for (Class exception : exceptions) { if (exception.isInstance(x)) { log.println(name + ": As expected: " + x); + expectedExceptionClass = exception; check(sc, state); - return; - } else { - throw new Exception(name + break; + } + } + if (expectedExceptionClass == null + && !exceptions.isEmpty()) { + // we had an exception, but it's not of the set of + // exceptions we expected. + throw new Exception(name + ": Incorrect exception", x); - } - } else { + } else if (exceptions.isEmpty()) { + // we didn't expect any exception throw new Exception(name + ": Unexpected exception", x); } + // if we reach here, we have our expected exception + assert expectedExceptionClass != null; + return; } - if (exception != null) + if (!exceptions.isEmpty()) { throw new Exception(name + ": Expected exception not thrown: " - + exception); + + exceptions.iterator().next()); + } check(sc, state); log.println(name + ": Returned normally" + ((note != null) ? ": " + note : "")); @@ -123,6 +170,7 @@ new Test("Read unconnected", NotYetConnectedException.class, ST_UNCONNECTED) { + @Override String go(SocketChannel sc) throws Exception { ByteBuffer b = ByteBuffer.allocateDirect(1024); sc.read(b); @@ -131,19 +179,22 @@ new Test("Write unconnected", NotYetConnectedException.class, ST_UNCONNECTED) { + @Override String go(SocketChannel sc) throws Exception { ByteBuffer b = ByteBuffer.allocateDirect(1024); sc.write(b); return null; }}; - new Test("Simple connect", null, ST_CONNECTED) { + new Test("Simple connect", NONE, ST_CONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.connect(remote); return null; }}; - new Test("Simple connect & finish", null, ST_CONNECTED) { + new Test("Simple connect & finish", NONE, ST_CONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.connect(remote); if (!sc.finishConnect()) @@ -153,6 +204,7 @@ new Test("Double connect", AlreadyConnectedException.class, ST_CONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.connect(remote); sc.connect(remote); @@ -161,12 +213,16 @@ new Test("Finish w/o start", NoConnectionPendingException.class, ST_UNCONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.finishConnect(); return null; }}; - new Test("NB simple connect", null, ST_CONNECTED) { + // Note: using our local EchoServer rather than echo on a distant + // host - we see that Tries to finish = 0 (instead of ~ 18). + new Test("NB simple connect", NONE, ST_CONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.configureBlocking(false); sc.connect(remote); @@ -179,8 +235,15 @@ return ("Tries to finish = " + n); }}; + // Note: using our local EchoServer rather than echo on a distant + // host - we cannot guarantee that this test will get a + // a ConnectionPendingException: it may get an + // AlreadyConnectedException, so we should allow for both. new Test("NB double connect", - ConnectionPendingException.class, ST_PENDING) { + expectedExceptions(ConnectionPendingException.class, + AlreadyConnectedException.class), + ST_PENDING_OR_CONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.configureBlocking(false); sc.connect(remote); @@ -190,13 +253,15 @@ new Test("NB finish w/o start", NoConnectionPendingException.class, ST_UNCONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.configureBlocking(false); sc.finishConnect(); return null; }}; - new Test("NB connect, B finish", null, ST_CONNECTED) { + new Test("NB connect, B finish", NONE, ST_CONNECTED) { + @Override String go(SocketChannel sc) throws Exception { sc.configureBlocking(false); sc.connect(remote); @@ -208,9 +273,12 @@ } public static void main(String[] args) throws Exception { - remote = new InetSocketAddress(InetAddress.getByName(REMOTE_HOST), - REMOTE_PORT); - tests(); + try (TestServers.EchoServer echoServer + = TestServers.EchoServer.startNewServer(500)) { + remote = new InetSocketAddress(echoServer.getAddress(), + echoServer.getPort()); + tests(); + } } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/SocketChannel/FinishConnect.java --- a/jdk/test/java/nio/channels/SocketChannel/FinishConnect.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/SocketChannel/FinishConnect.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,21 +36,25 @@ public class FinishConnect { - static final int DAYTIME_PORT = 13; - static final String DAYTIME_HOST = TestUtil.HOST; - public static void main(String[] args) throws Exception { - test1(true, true); - test1(true, false); - test1(false, true); - test1(false, false); - test2(); + try (TestServers.DayTimeServer dayTimeServer + = TestServers.DayTimeServer.startNewServer(100)) { + test1(dayTimeServer, true, true); + test1(dayTimeServer, true, false); + test1(dayTimeServer, false, true); + test1(dayTimeServer, false, false); + test2(dayTimeServer); + } } - static void test1(boolean select, boolean setBlocking) throws Exception { + static void test1(TestServers.DayTimeServer daytimeServer, + boolean select, + boolean setBlocking) + throws Exception + { InetSocketAddress isa - = new InetSocketAddress(InetAddress.getByName(DAYTIME_HOST), - DAYTIME_PORT); + = new InetSocketAddress(daytimeServer.getAddress(), + daytimeServer.getPort()); SocketChannel sc = SocketChannel.open(); sc.configureBlocking(false); boolean connected = sc.connect(isa); @@ -109,15 +113,27 @@ sc.close(); } - static void test2() throws Exception { + static void test2(TestServers.DayTimeServer daytimeServer) throws Exception { InetSocketAddress isa - = new InetSocketAddress(InetAddress.getByName(DAYTIME_HOST), - DAYTIME_PORT); + = new InetSocketAddress(daytimeServer.getAddress(), + daytimeServer.getPort()); boolean done = false; int globalAttempts = 0; + int connectSuccess = 0; while (!done) { - if (globalAttempts++ > 50) + // When using a local daytime server it is not always possible + // to get a pending connection, as sc.connect(isa) may always + // return true. + // So we're going to throw the exception only if there was + // at least 1 case where we did not manage to connect. + if (globalAttempts++ > 50) { + if (globalAttempts == connectSuccess + 1) { + System.out.println("Can't fully test on " + + System.getProperty("os.name")); + break; + } throw new RuntimeException("Failed to connect"); + } SocketChannel sc = SocketChannel.open(); sc.configureBlocking(false); boolean connected = sc.connect(isa); @@ -132,6 +148,9 @@ } Thread.sleep(10); } + if (connected) { + connectSuccess++; + } sc.close(); } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/SocketChannel/IsConnectable.java --- a/jdk/test/java/nio/channels/SocketChannel/IsConnectable.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/SocketChannel/IsConnectable.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,24 +28,19 @@ */ import java.net.*; -import java.io.*; -import java.nio.*; import java.nio.channels.*; import java.nio.channels.spi.SelectorProvider; import java.util.*; public class IsConnectable { - static final int DAYTIME_PORT = 13; - static final String DAYTIME_HOST = TestUtil.HOST; - - static void test() throws Exception { + static void test(TestServers.DayTimeServer daytimeServer) throws Exception { InetSocketAddress isa - = new InetSocketAddress(InetAddress.getByName(DAYTIME_HOST), - DAYTIME_PORT); + = new InetSocketAddress(daytimeServer.getAddress(), + daytimeServer.getPort()); SocketChannel sc = SocketChannel.open(); sc.configureBlocking(false); - sc.connect(isa); + final boolean immediatelyConnected = sc.connect(isa); Selector selector = SelectorProvider.provider().openSelector(); try { @@ -67,7 +62,12 @@ throw new Exception("Test failed: 4737146 detected"); } } else { - throw new Exception("Select failed"); + if (!immediatelyConnected) { + throw new Exception("Select failed"); + } else { + System.out.println("IsConnectable couldn't be fully tested for " + + System.getProperty("os.name")); + } } } finally { sc.close(); @@ -76,7 +76,10 @@ } public static void main(String[] args) throws Exception { - test(); + try (TestServers.DayTimeServer daytimeServer + = TestServers.DayTimeServer.startNewServer(100)) { + test(daytimeServer); + } } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/SocketChannel/LocalAddress.java --- a/jdk/test/java/nio/channels/SocketChannel/LocalAddress.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/SocketChannel/LocalAddress.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,18 +28,20 @@ */ import java.net.*; -import java.nio.*; import java.nio.channels.*; public class LocalAddress { public static void main(String[] args) throws Exception { - test1(); + try (TestServers.EchoServer echoServer + = TestServers.EchoServer.startNewServer()) { + test1(echoServer); + } } - static void test1() throws Exception { + static void test1(TestServers.AbstractServer server) throws Exception { InetAddress bogus = InetAddress.getByName("0.0.0.0"); InetSocketAddress saddr = new InetSocketAddress( - InetAddress.getByName(TestUtil.HOST), 23); + server.getAddress(), server.getPort()); //Test1: connect only SocketChannel sc = SocketChannel.open(); diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/SocketChannel/Stream.java --- a/jdk/test/java/nio/channels/SocketChannel/Stream.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/SocketChannel/Stream.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,22 +27,17 @@ * @library .. */ +import java.io.*; import java.net.*; -import java.io.*; -import java.nio.*; import java.nio.channels.*; -import java.nio.charset.*; public class Stream { - static final int DAYTIME_PORT = 13; - static final String DAYTIME_HOST = TestUtil.HOST; - - static void test() throws Exception { + static void test(TestServers.DayTimeServer daytimeServer) throws Exception { InetSocketAddress isa - = new InetSocketAddress(InetAddress.getByName(DAYTIME_HOST), - DAYTIME_PORT); + = new InetSocketAddress(daytimeServer.getAddress(), + daytimeServer.getPort()); SocketChannel sc = SocketChannel.open(); sc.connect(isa); sc.configureBlocking(false); @@ -58,7 +53,9 @@ } public static void main(String[] args) throws Exception { - test(); + try (TestServers.DayTimeServer dayTimeServer + = TestServers.DayTimeServer.startNewServer(100)) { + test(dayTimeServer); + } } - } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/SocketChannel/VectorParams.java --- a/jdk/test/java/nio/channels/SocketChannel/VectorParams.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/SocketChannel/VectorParams.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,31 +27,31 @@ * @library .. */ +import java.io.*; import java.net.*; -import java.io.*; import java.nio.*; import java.nio.channels.*; -import java.nio.charset.*; public class VectorParams { static java.io.PrintStream out = System.out; - static final int DAYTIME_PORT = 13; - static final String DAYTIME_HOST = TestUtil.HOST; static final int testSize = 10; static ByteBuffer[] bufs = null; static InetSocketAddress isa = null; public static void main(String[] args) throws Exception { - initBufs(); - testSocketChannelVectorParams(); - testDatagramChannelVectorParams(); - testPipeVectorParams(); - testFileVectorParams(); + try (TestServers.DayTimeServer daytimeServer + = TestServers.DayTimeServer.startNewServer(100)) { + initBufs(daytimeServer); + testSocketChannelVectorParams(); + testDatagramChannelVectorParams(); + testPipeVectorParams(); + testFileVectorParams(); + } } - static void initBufs() throws Exception { + static void initBufs(TestServers.DayTimeServer daytimeServer) throws Exception { bufs = new ByteBuffer[testSize]; for(int i=0; i connections = new ArrayList<>(); + private ServerSocket serverSocket; // the server socket + private boolean started = false; // whether the server is started + Throwable error = null; + + /** + * Creates a new abstract TCP server. + * + * @param linger the amount of time the server should wait before + * responding to requests. + */ + protected AbstractTcpServer(long linger) { + this.linger = linger; + } + + /** + * The local port to which the server is bound. + * + * @return The local port to which the server is bound. + * @exception IllegalStateException is thrown if the server is not + * started. + */ + @Override + public final synchronized int getPort() { + if (!started) { + throw new IllegalStateException("Not started"); + } + return serverSocket.getLocalPort(); + } + + /** + * The local address to which the server is bound. + * + * @return The local address to which the server is bound. + * @exception IllegalStateException is thrown if the server is not + * started. + */ + @Override + public final synchronized InetAddress getAddress() { + if (!started) { + throw new IllegalStateException("Not started"); + } + return serverSocket.getInetAddress(); + } + + /** + * Tells whether the server is started. + * + * @return true if the server is started. + */ + public final synchronized boolean isStarted() { + return started; + } + + /** + * Creates a new server socket. + * + * @param port local port to bind to. + * @param backlog requested maximum length of the queue of incoming + * connections. + * @param address local address to bind to. + * @return a new bound server socket ready to accept connections. + * @throws IOException if the socket cannot be created or bound. + */ + protected ServerSocket newServerSocket(int port, int backlog, + InetAddress address) + throws IOException { + return new ServerSocket(port, backlog, address); + } + + /** + * Starts listening for connections. + * + * @throws IOException if the server socket cannot be created or bound. + */ + public final synchronized void start() throws IOException { + if (started) { + return; + } + final ServerSocket socket = + newServerSocket(0, 100, InetAddress.getLocalHost()); + serverSocket = socket; + acceptThread = new Thread(this); + acceptThread.setDaemon(true); + acceptThread.start(); + started = true; + } + + /** + * Calls {@code Thread.sleep(linger);} + */ + protected final void lingerIfRequired() { + if (linger > 0) { + try { + Thread.sleep(linger); + } catch (InterruptedException x) { + Thread.interrupted(); + final ServerSocket socket = serverSocket(); + if (socket != null && !socket.isClosed()) { + System.err.println("Thread interrupted..."); + } + } + } + } + + final synchronized ServerSocket serverSocket() { + return this.serverSocket; + } + + /** + * The main accept loop. + */ + @Override + public final void run() { + final ServerSocket sSocket = serverSocket(); + try { + Socket s; + while (isStarted() && !Thread.interrupted() + && (s = sSocket.accept()) != null) { + lingerIfRequired(); + listen(s); + } + } catch (Exception x) { + error = x; + } finally { + synchronized (this) { + if (!sSocket.isClosed()) { + try { + sSocket.close(); + } catch (IOException x) { + System.err.println("Failed to close server socket"); + } + } + if (started && this.serverSocket == sSocket) { + started = false; + this.serverSocket = null; + this.acceptThread = null; + } + } + } + } + + /** + * Represents a connection accepted by the server. + */ + protected abstract class TcpConnectionThread extends Thread { + + protected final Socket socket; + + protected TcpConnectionThread(Socket socket) { + this.socket = socket; + this.setDaemon(true); + } + + public void close() throws IOException { + socket.close(); + interrupt(); + } + } + + /** + * Creates a new TcpConnnectionThread to handle the connection through + * an accepted socket. + * + * @param s the socket returned by {@code serverSocket.accept()}. + * @return a new TcpConnnectionThread to handle the connection through + * an accepted socket. + */ + protected abstract TcpConnectionThread createConnection(Socket s); + + /** + * Creates and starts a new TcpConnectionThread to handle the accepted + * socket. + * + * @param s the socket returned by {@code serverSocket.accept()}. + */ + private synchronized void listen(Socket s) { + TcpConnectionThread c = createConnection(s); + c.start(); + addConnection(c); + } + + /** + * Add the connection to the list of accepted connections. + * + * @param connection an accepted connection. + */ + protected synchronized void addConnection( + TcpConnectionThread connection) { + connections.add(connection); + } + + /** + * Remove the connection from the list of accepted connections. + * + * @param connection an accepted connection. + */ + protected synchronized void removeConnection( + TcpConnectionThread connection) { + connections.remove(connection); + } + + /** + * Close the server socket and all the connections present in the list + * of accepted connections. + * + * @throws IOException + */ + @Override + public synchronized void close() throws IOException { + if (serverSocket != null && !serverSocket.isClosed()) { + serverSocket.close(); + } + if (acceptThread != null) { + acceptThread.interrupt(); + } + int failed = 0; + for (TcpConnectionThread c : connections) { + try { + c.close(); + } catch (IOException x) { + // no matter - we're closing. + failed++; + } + } + connections.clear(); + if (failed > 0) { + throw new IOException("Failed to close some connections"); + } + } + } + + /** + * A small TCP Server that emulates the echo service for tests purposes. See + * http://en.wikipedia.org/wiki/Echo_Protocol This server uses an anonymous + * port - NOT the standard port 7. We don't guarantee that its behavior + * exactly matches the RFC - the only purpose of this server is to have + * something that responds to nio tests... + */ + static final class EchoServer extends AbstractTcpServer { + + public EchoServer() { + this(0L); + } + + public EchoServer(long linger) { + super(linger); + } + + @Override + protected TcpConnectionThread createConnection(Socket s) { + return new EchoConnection(s); + } + + private final class EchoConnection extends TcpConnectionThread { + + public EchoConnection(Socket socket) { + super(socket); + } + + @Override + public void run() { + try { + final InputStream is = socket.getInputStream(); + final OutputStream out = socket.getOutputStream(); + byte[] b = new byte[255]; + int n; + while ((n = is.read(b)) > 0) { + lingerIfRequired(); + out.write(b, 0, n); + } + } catch (IOException io) { + // fall through to finally + } finally { + if (!socket.isClosed()) { + try { + socket.close(); + } catch (IOException x) { + System.err.println( + "Failed to close echo connection socket"); + } + } + removeConnection(this); + } + } + } + + public static EchoServer startNewServer() throws IOException { + return startNewServer(0); + } + + public static EchoServer startNewServer(long linger) throws IOException { + final EchoServer echoServer = new EchoServer(linger); + echoServer.start(); + return echoServer; + } + } + + /** + * A small TCP server that emulates the Day & Time service for tests + * purposes. See http://en.wikipedia.org/wiki/Daytime_Protocol This server + * uses an anonymous port - NOT the standard port 13. We don't guarantee + * that its behavior exactly matches the RFC - the only purpose of this + * server is to have something that responds to nio tests... + */ + static final class DayTimeServer extends AbstractTcpServer { + + public DayTimeServer() { + this(0L); + } + + public DayTimeServer(long linger) { + super(linger); + } + + @Override + protected TcpConnectionThread createConnection(Socket s) { + return new DayTimeServerConnection(s); + } + + @Override + protected void addConnection(TcpConnectionThread connection) { + // do nothing - the connection just write the date and terminates. + } + + @Override + protected void removeConnection(TcpConnectionThread connection) { + // do nothing - we're not adding connections to the list... + } + + private final class DayTimeServerConnection extends TcpConnectionThread { + + public DayTimeServerConnection(Socket socket) { + super(socket); + } + + @Override + public void run() { + try { + final OutputStream out = socket.getOutputStream(); + lingerIfRequired(); + out.write(new Date(System.currentTimeMillis()) + .toString().getBytes("US-ASCII")); + out.flush(); + } catch (IOException io) { + // fall through to finally + } finally { + if (!socket.isClosed()) { + try { + socket.close(); + } catch (IOException x) { + System.err.println( + "Failed to close echo connection socket"); + } + } + } + } + } + + public static DayTimeServer startNewServer() + throws IOException { + return startNewServer(0); + } + + public static DayTimeServer startNewServer(long linger) + throws IOException { + final DayTimeServer daytimeServer = new DayTimeServer(linger); + daytimeServer.start(); + return daytimeServer; + } + } + + /** + * An abstract class for implementing small UDP Servers for the nio tests + * purposes. Disclaimer: This is a naive implementation that uses the old + * networking APIs (not those from {@code java.nio.*}) and shamelessly + * extends/creates Threads instead of using an executor service. + */ + static abstract class AbstractUdpServer extends AbstractServer + implements Runnable, Closeable { + + protected final long linger; // #of ms to wait before responding + private Thread acceptThread; // thread waiting for packets + private DatagramSocket serverSocket; // the server socket + private boolean started = false; // whether the server is started + Throwable error = null; + + /** + * Creates a new abstract UDP server. + * + * @param linger the amount of time the server should wait before + * responding to requests. + */ + protected AbstractUdpServer(long linger) { + this.linger = linger; + } + + /** + * The local port to which the server is bound. + * + * @return The local port to which the server is bound. + * @exception IllegalStateException is thrown if the server is not + * started. + */ + @Override + public final synchronized int getPort() { + if (!started) { + throw new IllegalStateException("Not started"); + } + return serverSocket.getLocalPort(); + } + + /** + * The local address to which the server is bound. + * + * @return The local address to which the server is bound. + * @exception IllegalStateException is thrown if the server is not + * started. + */ + @Override + public final synchronized InetAddress getAddress() { + if (!started) { + throw new IllegalStateException("Not started"); + } + return serverSocket.getLocalAddress(); + } + + /** + * Tells whether the server is started. + * + * @return true if the server is started. + */ + public final synchronized boolean isStarted() { + return started; + } + + /** + * Creates a new datagram socket. + * + * @param port local port to bind to. + * @param address local address to bind to. + * @return a new bound server socket ready to listen for packets. + * @throws IOException if the socket cannot be created or bound. + */ + protected DatagramSocket newDatagramSocket(int port, + InetAddress address) + throws IOException { + return new DatagramSocket(port, address); + } + + /** + * Starts listening for connections. + * + * @throws IOException if the server socket cannot be created or bound. + */ + public final synchronized void start() throws IOException { + if (started) { + return; + } + final DatagramSocket socket = + newDatagramSocket(0, InetAddress.getLocalHost()); + serverSocket = socket; + acceptThread = new Thread(this); + acceptThread.setDaemon(true); + acceptThread.start(); + started = true; + } + + /** + * Calls {@code Thread.sleep(linger);} + */ + protected final void lingerIfRequired() { + if (linger > 0) { + try { + Thread.sleep(linger); + } catch (InterruptedException x) { + Thread.interrupted(); + final DatagramSocket socket = serverSocket(); + if (socket != null && !socket.isClosed()) { + System.err.println("Thread interrupted..."); + } + } + } + } + + final synchronized DatagramSocket serverSocket() { + return this.serverSocket; + } + + final synchronized boolean send(DatagramSocket socket, + DatagramPacket response) throws IOException { + if (!socket.isClosed()) { + socket.send(response); + return true; + } else { + return false; + } + } + + /** + * The main receive loop. + */ + @Override + public final void run() { + final DatagramSocket sSocket = serverSocket(); + try { + final int size = Math.max(1024, sSocket.getReceiveBufferSize()); + if (size > sSocket.getReceiveBufferSize()) { + sSocket.setReceiveBufferSize(size); + } + while (isStarted() && !Thread.interrupted() && !sSocket.isClosed()) { + final byte[] buf = new byte[size]; + final DatagramPacket packet = + new DatagramPacket(buf, buf.length); + lingerIfRequired(); + sSocket.receive(packet); + //System.out.println("Received packet from: " + // + packet.getAddress()+":"+packet.getPort()); + handle(sSocket, packet); + } + } catch (Exception x) { + error = x; + } finally { + synchronized (this) { + if (!sSocket.isClosed()) { + sSocket.close(); + } + if (started && this.serverSocket == sSocket) { + started = false; + this.serverSocket = null; + this.acceptThread = null; + } + } + } + } + + /** + * Represents an UDP request received by the server. + */ + protected abstract class UdpRequestThread extends Thread { + + protected final DatagramPacket request; + protected final DatagramSocket socket; + + protected UdpRequestThread(DatagramSocket socket, DatagramPacket request) { + this.socket = socket; + this.request = request; + this.setDaemon(true); + } + } + + /** + * Creates a new UdpRequestThread to handle a DatagramPacket received + * through a DatagramSocket. + * + * @param socket the socket through which the request was received. + * @param request the datagram packet received through the socket. + * @return a new UdpRequestThread to handle the request received through + * a DatagramSocket. + */ + protected abstract UdpRequestThread createConnection(DatagramSocket socket, + DatagramPacket request); + + /** + * Creates and starts a new UdpRequestThread to handle the received + * datagram packet. + * + * @param socket the socket through which the request was received. + * @param request the datagram packet received through the socket. + */ + private synchronized void handle(DatagramSocket socket, + DatagramPacket request) { + UdpRequestThread c = createConnection(socket, request); + // c can be null if the request requires no response. + if (c != null) { + c.start(); + } + } + + /** + * Close the server socket. + * + * @throws IOException + */ + @Override + public synchronized void close() throws IOException { + if (serverSocket != null && !serverSocket.isClosed()) { + serverSocket.close(); + } + if (acceptThread != null) { + acceptThread.interrupt(); + } + } + } + + /** + * A small UDP Server that emulates the discard service for tests purposes. + * See http://en.wikipedia.org/wiki/Discard_Protocol This server uses an + * anonymous port - NOT the standard port 9. We don't guarantee that its + * behavior exactly matches the RFC - the only purpose of this server is to + * have something that responds to nio tests... + */ + static final class UdpDiscardServer extends AbstractUdpServer { + + public UdpDiscardServer() { + this(0L); + } + + public UdpDiscardServer(long linger) { + super(linger); + } + + @Override + protected UdpRequestThread createConnection(DatagramSocket socket, + DatagramPacket request) { + // no response required + return null; + } + + public static UdpDiscardServer startNewServer() throws IOException { + return startNewServer(0); + } + + public static UdpDiscardServer startNewServer(long linger) throws IOException { + final UdpDiscardServer discardServer = new UdpDiscardServer(linger); + discardServer.start(); + return discardServer; + } + } + + /** + * A small UDP Server that emulates the echo service for tests purposes. See + * http://en.wikipedia.org/wiki/Echo_Protocol This server uses an anonymous + * port - NOT the standard port 7. We don't guarantee that its behavior + * exactly matches the RFC - the only purpose of this server is to have + * something that responds to nio tests... + */ + static final class UdpEchoServer extends AbstractUdpServer { + + public UdpEchoServer() { + this(0L); + } + + public UdpEchoServer(long linger) { + super(linger); + } + + @Override + protected UdpEchoRequest createConnection(DatagramSocket socket, + DatagramPacket request) { + return new UdpEchoRequest(socket, request); + } + + private final class UdpEchoRequest extends UdpRequestThread { + + public UdpEchoRequest(DatagramSocket socket, DatagramPacket request) { + super(socket, request); + } + + @Override + public void run() { + try { + lingerIfRequired(); + final DatagramPacket response = + new DatagramPacket(request.getData(), + request.getOffset(), request.getLength(), + request.getAddress(), request.getPort()); + send(socket, response); + } catch (IOException io) { + System.err.println("Failed to send response: " + io); + io.printStackTrace(System.err); + } + } + } + + public static UdpEchoServer startNewServer() throws IOException { + return startNewServer(0); + } + + public static UdpEchoServer startNewServer(long linger) throws IOException { + final UdpEchoServer echoServer = new UdpEchoServer(linger); + echoServer.start(); + return echoServer; + } + } + + /** + * A small UDP server that emulates the Day & Time service for tests + * purposes. See http://en.wikipedia.org/wiki/Daytime_Protocol This server + * uses an anonymous port - NOT the standard port 13. We don't guarantee + * that its behavior exactly matches the RFC - the only purpose of this + * server is to have something that responds to nio tests... + */ + static final class UdpDayTimeServer extends AbstractUdpServer { + + public UdpDayTimeServer() { + this(0L); + } + + public UdpDayTimeServer(long linger) { + super(linger); + } + + @Override + protected UdpDayTimeRequestThread createConnection(DatagramSocket socket, + DatagramPacket request) { + return new UdpDayTimeRequestThread(socket, request); + } + + private final class UdpDayTimeRequestThread extends UdpRequestThread { + + public UdpDayTimeRequestThread(DatagramSocket socket, + DatagramPacket request) { + super(socket, request); + } + + @Override + public void run() { + try { + lingerIfRequired(); + final byte[] data = new Date(System.currentTimeMillis()) + .toString().getBytes("US-ASCII"); + final DatagramPacket response = + new DatagramPacket(data, 0, data.length, + request.getAddress(), request.getPort()); + send(socket, response); + } catch (IOException io) { + System.err.println("Failed to send response: " + io); + io.printStackTrace(System.err); + } + } + } + + public static UdpDayTimeServer startNewServer() throws IOException { + return startNewServer(0); + } + + public static UdpDayTimeServer startNewServer(long linger) + throws IOException { + final UdpDayTimeServer echoServer = new UdpDayTimeServer(linger); + echoServer.start(); + return echoServer; + } + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/nio/channels/TestUtil.java --- a/jdk/test/java/nio/channels/TestUtil.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/nio/channels/TestUtil.java Wed Jul 05 18:29:53 2017 +0200 @@ -27,7 +27,6 @@ import java.io.*; import java.net.*; -import java.nio.*; import java.nio.channels.*; import java.util.Random; @@ -36,9 +35,6 @@ // Test hosts used by the channels tests - change these when // executing in a different network. - public static final String HOST = "javaweb.sfbay.sun.com"; - public static final String REFUSING_HOST = "jano1.sfbay.sun.com"; - public static final String FAR_HOST = "irejano.ireland.sun.com"; public static final String UNRESOLVABLE_HOST = "blah-blah.blah-blah.blah"; private TestUtil() { } diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/security/cert/PKIXRevocationChecker/UnitTest.java --- a/jdk/test/java/security/cert/PKIXRevocationChecker/UnitTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/security/cert/PKIXRevocationChecker/UnitTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -23,7 +23,7 @@ /** * @test - * @bug 6854712 + * @bug 6854712 7171570 * @summary Basic unit test for PKIXRevocationChecker */ @@ -33,6 +33,7 @@ import java.io.OutputStream; import java.net.URI; import java.security.cert.CertificateFactory; +import java.security.cert.CertPathBuilder; import java.security.cert.CertPathChecker; import java.security.cert.CertPathValidator; import java.security.cert.Extension; @@ -58,8 +59,7 @@ requireNull(prc.getOCSPResponder(), "getOCSPResponder()"); requireNull(prc.getOCSPResponderCert(), "getOCSPResponderCert()"); requireEmpty(prc.getOCSPExtensions(), "getOCSPExtensions()"); - requireEmpty(prc.getOCSPStapledResponses(), - "getOCSPStapledResponses()"); + requireEmpty(prc.getOCSPResponses(), "getOCSPResponses()"); requireEmpty(prc.getOptions(), "getOptions()"); System.out.println("Testing that get methods return same parameters " + @@ -94,11 +94,24 @@ requireNull(prc.getOCSPResponderCert(), "getOCSPResponderCert()"); prc.setOCSPExtensions(null); requireEmpty(prc.getOCSPExtensions(), "getOCSPExtensions()"); - prc.setOCSPStapledResponses(null); - requireEmpty(prc.getOCSPStapledResponses(), - "getOCSPStapledResponses()"); + prc.setOCSPResponses(null); + requireEmpty(prc.getOCSPResponses(), "getOCSPResponses()"); prc.setOptions(null); requireEmpty(prc.getOptions(), "getOptions()"); + + System.out.println("Testing that getRevocationChecker returns new " + + "instance each time"); + CertPathChecker first = cpv.getRevocationChecker(); + CertPathChecker second = cpv.getRevocationChecker(); + if (first == second) { + throw new Exception("FAILED: CertPathCheckers not new instances"); + } + CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX"); + first = cpb.getRevocationChecker(); + second = cpb.getRevocationChecker(); + if (first == second) { + throw new Exception("FAILED: CertPathCheckers not new instances"); + } } static void requireNull(Object o, String msg) throws Exception { diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/Locale/Bug8001562.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/util/Locale/Bug8001562.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8001562 + * @summary Verify that getAvailableLocales() in locale sensitive services + * classes return compatible set of locales as in JDK7. + * @run main Bug8001562 + */ + +import java.text.*; +import java.util.*; + +public class Bug8001562 { + + static final String[] jdk7availTags = { + "ar", "ar-AE", "ar-BH", "ar-DZ", "ar-EG", "ar-IQ", "ar-JO", "ar-KW", + "ar-LB", "ar-LY", "ar-MA", "ar-OM", "ar-QA", "ar-SA", "ar-SD", "ar-SY", + "ar-TN", "ar-YE", "be", "be-BY", "bg", "bg-BG", "ca", "ca-ES", "cs", + "cs-CZ", "da", "da-DK", "de", "de-AT", "de-CH", "de-DE", "de-LU", "el", + "el-CY", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", + "en-MT", "en-NZ", "en-PH", "en-SG", "en-US", "en-ZA", "es", "es-AR", + "es-BO", "es-CL", "es-CO", "es-CR", "es-DO", "es-EC", "es-ES", "es-GT", + "es-HN", "es-MX", "es-NI", "es-PA", "es-PE", "es-PR", "es-PY", "es-SV", + "es-US", "es-UY", "es-VE", "et", "et-EE", "fi", "fi-FI", "fr", "fr-BE", + "fr-CA", "fr-CH", "fr-FR", "fr-LU", "ga", "ga-IE", "he", "he-IL", + "hi-IN", "hr", "hr-HR", "hu", "hu-HU", "id", "id-ID", "is", "is-IS", + "it", "it-CH", "it-IT", "ja", "ja-JP", + "ja-JP-u-ca-japanese-x-lvariant-JP", "ko", "ko-KR", "lt", "lt-LT", "lv", + "lv-LV", "mk", "mk-MK", "ms", "ms-MY", "mt", "mt-MT", "nl", "nl-BE", + "nl-NL", "no", "no-NO", "no-NO-x-lvariant-NY", "pl", "pl-PL", "pt", + "pt-BR", "pt-PT", "ro", "ro-RO", "ru", "ru-RU", "sk", "sk-SK", "sl", + "sl-SI", "sq", "sq-AL", "sr", "sr-BA", "sr-CS", "sr-Latn", "sr-Latn-BA", + "sr-Latn-ME", "sr-Latn-RS", "sr-ME", "sr-RS", "sv", "sv-SE", "th", + "th-TH", "th-TH-u-nu-thai-x-lvariant-TH", "tr", "tr-TR", "uk", "uk-UA", + "vi", "vi-VN", "zh", "zh-CN", "zh-HK", "zh-SG", "zh-TW", }; + static List jdk7availLocs = new ArrayList<>(); + static { + for (String locStr : jdk7availTags) { + jdk7availLocs.add(Locale.forLanguageTag(locStr)); + } + } + + public static void main(String[] args) { + List avail = Arrays.asList(BreakIterator.getAvailableLocales()); + diffLocale(BreakIterator.class, avail); + + avail = Arrays.asList(Collator.getAvailableLocales()); + diffLocale(Collator.class, avail); + + avail = Arrays.asList(DateFormat.getAvailableLocales()); + diffLocale(DateFormat.class, avail); + + avail = Arrays.asList(DateFormatSymbols.getAvailableLocales()); + diffLocale(DateFormatSymbols.class, avail); + + avail = Arrays.asList(DecimalFormatSymbols.getAvailableLocales()); + diffLocale(DecimalFormatSymbols.class, avail); + + avail = Arrays.asList(NumberFormat.getAvailableLocales()); + diffLocale(NumberFormat.class, avail); + + avail = Arrays.asList(Locale.getAvailableLocales()); + diffLocale(Locale.class, avail); + } + + static void diffLocale(Class c, List locs) { + String diff = ""; + + System.out.printf("Only in target locales (%s.getAvailableLocales()): ", c.getSimpleName()); + for (Locale l : locs) { + if (!jdk7availLocs.contains(l)) { + diff += "\""+l.toLanguageTag()+"\", "; + } + } + System.out.println(diff); + diff = ""; + + System.out.printf("Only in JDK7 (%s.getAvailableLocales()): ", c.getSimpleName()); + for (Locale l : jdk7availLocs) { + if (!locs.contains(l)) { + diff += "\""+l.toLanguageTag()+"\", "; + } + } + System.out.println(diff); + + if (diff.length() > 0) { + throw new RuntimeException("Above locale(s) were not included in the target available locales"); + } + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/PluggableLocale/BreakIteratorProviderTest.java --- a/jdk/test/java/util/PluggableLocale/BreakIteratorProviderTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/util/PluggableLocale/BreakIteratorProviderTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -53,9 +53,8 @@ } void availableLocalesTest() { - Set localesFromAPI = new HashSet(availloc); - Set localesExpected = new HashSet(jreimplloc); - localesExpected.remove(Locale.ROOT); + Set localesFromAPI = new HashSet<>(availloc); + Set localesExpected = new HashSet<>(jreloc); localesExpected.addAll(providerloc); if (localesFromAPI.equals(localesExpected)) { System.out.println("availableLocalesTest passed."); diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/PluggableLocale/CollatorProviderTest.java --- a/jdk/test/java/util/PluggableLocale/CollatorProviderTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/util/PluggableLocale/CollatorProviderTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -47,9 +47,8 @@ } void availableLocalesTest() { - Set localesFromAPI = new HashSet(availloc); - Set localesExpected = new HashSet(jreimplloc); - localesExpected.remove(Locale.ROOT); + Set localesFromAPI = new HashSet<>(availloc); + Set localesExpected = new HashSet<>(jreloc); localesExpected.addAll(providerloc); if (localesFromAPI.equals(localesExpected)) { System.out.println("availableLocalesTest passed."); diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/PluggableLocale/DateFormatProviderTest.java --- a/jdk/test/java/util/PluggableLocale/DateFormatProviderTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/util/PluggableLocale/DateFormatProviderTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -34,6 +34,7 @@ com.foo.DateFormatProviderImpl dfp = new com.foo.DateFormatProviderImpl(); List availloc = Arrays.asList(DateFormat.getAvailableLocales()); List providerloc = Arrays.asList(dfp.getAvailableLocales()); + List jreloc = Arrays.asList(LocaleProviderAdapter.forJRE().getAvailableLocales()); List jreimplloc = Arrays.asList(LocaleProviderAdapter.forJRE().getDateFormatProvider().getAvailableLocales()); public static void main(String[] s) { @@ -41,11 +42,23 @@ } DateFormatProviderTest() { + availableLocalesTest(); objectValidityTest(); extendedVariantTest(); messageFormatTest(); } + void availableLocalesTest() { + Set localesFromAPI = new HashSet<>(availloc); + Set localesExpected = new HashSet<>(jreloc); + localesExpected.addAll(providerloc); + if (localesFromAPI.equals(localesExpected)) { + System.out.println("availableLocalesTest passed."); + } else { + throw new RuntimeException("availableLocalesTest failed"); + } + } + void objectValidityTest() { for (Locale target: availloc) { diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.java --- a/jdk/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -48,9 +48,8 @@ } void availableLocalesTest() { - Set localesFromAPI = new HashSet(availloc); - Set localesExpected = new HashSet(jreimplloc); - localesExpected.remove(Locale.ROOT); + Set localesFromAPI = new HashSet<>(availloc); + Set localesExpected = new HashSet<>(jreloc); localesExpected.addAll(providerloc); if (localesFromAPI.equals(localesExpected)) { System.out.println("availableLocalesTest passed."); diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java --- a/jdk/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -47,9 +47,8 @@ } void availableLocalesTest() { - Set localesFromAPI = new HashSet(availloc); - Set localesExpected = new HashSet(jreimplloc); - localesExpected.remove(Locale.ROOT); + Set localesFromAPI = new HashSet<>(availloc); + Set localesExpected = new HashSet<>(jreloc); localesExpected.addAll(providerloc); if (localesFromAPI.equals(localesExpected)) { System.out.println("availableLocalesTest passed."); diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/PluggableLocale/GenericTest.java --- a/jdk/test/java/util/PluggableLocale/GenericTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/util/PluggableLocale/GenericTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -73,7 +73,6 @@ expected.addAll(Arrays.asList(localeNP.getAvailableLocales())); expected.addAll(Arrays.asList(tzNP.getAvailableLocales())); expected.addAll(Arrays.asList(calDataP.getAvailableLocales())); - expected.remove(Locale.ROOT); if (!result.equals(expected)) { throw new RuntimeException("Locale.getAvailableLocales() does not return the union of locales: diff=" + getDiff(result, expected)); diff -r 0e685b019743 -r a7496bb56968 jdk/test/java/util/PluggableLocale/NumberFormatProviderTest.java --- a/jdk/test/java/util/PluggableLocale/NumberFormatProviderTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/java/util/PluggableLocale/NumberFormatProviderTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -50,9 +50,8 @@ } void availableLocalesTest() { - Set localesFromAPI = new HashSet(availloc); - Set localesExpected = new HashSet(jreimplloc); - localesExpected.remove(Locale.ROOT); + Set localesFromAPI = new HashSet<>(availloc); + Set localesExpected = new HashSet<>(jreloc); localesExpected.addAll(providerloc); if (localesFromAPI.equals(localesExpected)) { System.out.println("availableLocalesTest passed."); diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/net/www/protocol/http/StackTraceTest.java --- a/jdk/test/sun/net/www/protocol/http/StackTraceTest.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/net/www/protocol/http/StackTraceTest.java Wed Jul 05 18:29:53 2017 +0200 @@ -32,26 +32,28 @@ import java.io.IOException; public class StackTraceTest { - public static void main(String[] args) { - try { - URL url = new URL("http://localhost:8080/"); - URLConnection uc = url.openConnection(); - System.out.println("key = "+uc.getHeaderFieldKey(20)); - uc.getInputStream(); - } catch (IOException ioe) { - ioe.printStackTrace(); + public static void main(String[] args) throws Exception { + URL url; + try (ServerSocket ss = new ServerSocket(0)) { // refusing socket + url = new URL("http://localhost:" + ss.getLocalPort() + "/"); + } + URLConnection uc = url.openConnection(); + + // Trigger implicit connection by trying to retrieve bogus + // response header, and force remembered exception + uc.getHeaderFieldKey(20); - if (!(ioe instanceof ConnectException)) { - throw new RuntimeException("Expect ConnectException, got "+ioe); - } - if (ioe.getMessage() == null) { + try { + uc.getInputStream(); // expect to throw + throw new RuntimeException("Expected getInputStream to throw"); + } catch (IOException ioe) { + if (!(ioe instanceof ConnectException)) + throw new RuntimeException("Expect ConnectException, got " + ioe); + if (ioe.getMessage() == null) throw new RuntimeException("Exception message is null"); - } - - // this exception should be a chained exception - if (ioe.getCause() == null) { - throw new RuntimeException("Excepting a chained exception, but got: ", ioe); - } + if (ioe.getCause() == null) + throw new RuntimeException("Excepting a chained exception, but got: ", + ioe); } } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/Basic.java --- a/jdk/test/sun/security/krb5/auto/Basic.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/krb5/auto/Basic.java Wed Jul 05 18:29:53 2017 +0200 @@ -38,11 +38,13 @@ new OneKDC(null).writeJAASConf(); - Context c, s; + Context c, s, s2, b; c = Context.fromJAAS("client"); s = Context.fromJAAS("server"); + b = Context.fromJAAS("backend"); c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID); + c.x().requestCredDeleg(true); s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID); Context.handshake(c, s); @@ -50,7 +52,13 @@ Context.transmit("i say high --", c, s); Context.transmit(" you say low", s, c); + s2 = s.delegated(); s.dispose(); c.dispose(); + + s2.startAsClient(OneKDC.BACKEND, GSSUtil.GSS_KRB5_MECH_OID); + b.startAsServer(GSSUtil.GSS_KRB5_MECH_OID); + + Context.handshake(s2, b); } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/Context.java --- a/jdk/test/sun/security/krb5/auto/Context.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/krb5/auto/Context.java Wed Jul 05 18:29:53 2017 +0200 @@ -42,9 +42,10 @@ import com.sun.security.jgss.ExtendedGSSContext; import com.sun.security.jgss.InquireType; import com.sun.security.jgss.AuthorizationDataEntry; +import com.sun.security.jgss.ExtendedGSSCredential; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import javax.security.auth.kerberos.KeyTab; +import java.security.Principal; /** * Context of a JGSS subject, encapsulating Subject and GSSContext. @@ -90,7 +91,21 @@ public Context delegated() throws Exception { Context out = new Context(); out.s = s; - out.cred = x.getDelegCred(); + try { + out.cred = Subject.doAs(s, new PrivilegedExceptionAction() { + @Override + public GSSCredential run() throws Exception { + GSSCredential cred = x.getDelegCred(); + if (cred == null && x.getCredDelegState() || + cred != null && !x.getCredDelegState()) { + throw new Exception("getCredDelegState not match"); + } + return cred; + } + }); + } catch (PrivilegedActionException pae) { + throw pae.getException(); + } out.name = name + " as " + out.cred.getName().toString(); return out; } @@ -212,28 +227,34 @@ * @throws java.lang.Exception */ public void startAsServer(final Oid mech) throws Exception { - startAsServer(null, mech); + startAsServer(null, mech, false); } + public void startAsServer(final String name, final Oid mech) throws Exception { + startAsServer(name, mech, false); + } /** * Starts as a server with the specified service name * @param name the service name * @param mech GSS mech * @throws java.lang.Exception */ - public void startAsServer(final String name, final Oid mech) throws Exception { + public void startAsServer(final String name, final Oid mech, final boolean asInitiator) throws Exception { doAs(new Action() { @Override public byte[] run(Context me, byte[] dummy) throws Exception { GSSManager m = GSSManager.getInstance(); - me.x = (ExtendedGSSContext)m.createContext(m.createCredential( + me.cred = m.createCredential( name == null ? null : (name.indexOf('@') < 0 ? m.createName(name, null) : m.createName(name, GSSName.NT_HOSTBASED_SERVICE)), GSSCredential.INDEFINITE_LIFETIME, mech, - GSSCredential.ACCEPT_ONLY)); + asInitiator? + GSSCredential.INITIATE_AND_ACCEPT: + GSSCredential.ACCEPT_ONLY); + me.x = (ExtendedGSSContext)m.createContext(me.cred); return null; } }, null); @@ -331,27 +352,38 @@ } catch (Exception e) { ;// Don't care } - System.out.println("====== Private Credentials Set ======"); - for (Object o : s.getPrivateCredentials()) { - System.out.println(" " + o.getClass()); - if (o instanceof KerberosTicket) { - KerberosTicket kt = (KerberosTicket) o; - System.out.println(" " + kt.getServer() + " for " + kt.getClient()); - } else if (o instanceof KerberosKey) { - KerberosKey kk = (KerberosKey) o; - System.out.print(" " + kk.getKeyType() + " " + kk.getVersionNumber() + " " + kk.getAlgorithm() + " "); - for (byte b : kk.getEncoded()) { - System.out.printf("%02X", b & 0xff); - } - System.out.println(); - } else if (o instanceof Map) { - Map map = (Map) o; - for (Object k : map.keySet()) { - System.out.println(" " + k + ": " + map.get(k)); - } - } else { + if (s != null) { + System.out.println("====== START SUBJECT CONTENT ====="); + for (Principal p: s.getPrincipals()) { + System.out.println(" Principal: " + p); + } + for (Object o : s.getPublicCredentials()) { + System.out.println(" " + o.getClass()); System.out.println(" " + o); } + System.out.println("====== Private Credentials Set ======"); + for (Object o : s.getPrivateCredentials()) { + System.out.println(" " + o.getClass()); + if (o instanceof KerberosTicket) { + KerberosTicket kt = (KerberosTicket) o; + System.out.println(" " + kt.getServer() + " for " + kt.getClient()); + } else if (o instanceof KerberosKey) { + KerberosKey kk = (KerberosKey) o; + System.out.print(" " + kk.getKeyType() + " " + kk.getVersionNumber() + " " + kk.getAlgorithm() + " "); + for (byte b : kk.getEncoded()) { + System.out.printf("%02X", b & 0xff); + } + System.out.println(); + } else if (o instanceof Map) { + Map map = (Map) o; + for (Object k : map.keySet()) { + System.out.println(" " + k + ": " + map.get(k)); + } + } else { + System.out.println(" " + o); + } + } + System.out.println("====== END SUBJECT CONTENT ====="); } if (x != null && x instanceof ExtendedGSSContext) { if (x.isEstablished()) { @@ -510,6 +542,29 @@ return sb.toString(); } + public Context impersonate(final String someone) throws Exception { + try { + GSSCredential creds = Subject.doAs(s, new PrivilegedExceptionAction() { + @Override + public GSSCredential run() throws Exception { + GSSManager m = GSSManager.getInstance(); + GSSName other = m.createName(someone, GSSName.NT_USER_NAME); + if (Context.this.cred == null) { + Context.this.cred = m.createCredential(GSSCredential.INITIATE_ONLY); + } + return ((ExtendedGSSCredential)Context.this.cred).impersonate(other); + } + }); + Context out = new Context(); + out.s = s; + out.cred = creds; + out.name = name + " as " + out.cred.getName().toString(); + return out; + } catch (PrivilegedActionException pae) { + throw pae.getException(); + } + } + public byte[] take(final byte[] in) throws Exception { return doAs(new Action() { @Override @@ -522,10 +577,11 @@ } return null; } else { - System.out.println(name + " call initSecContext"); if (me.x.isInitiator()) { + System.out.println(name + " call initSecContext"); return me.x.initSecContext(input, 0, input.length); } else { + System.out.println(name + " call acceptSecContext"); return me.x.acceptSecContext(input, 0, input.length); } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/CrossRealm.java --- a/jdk/test/sun/security/krb5/auto/CrossRealm.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/krb5/auto/CrossRealm.java Wed Jul 05 18:29:53 2017 +0200 @@ -24,6 +24,7 @@ /* * @test * @bug 6706974 + * @compile -XDignore.symbol.file CrossRealm.java * @run main/othervm CrossRealm * @summary Add krb5 test infrastructure */ diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/KDC.java --- a/jdk/test/sun/security/krb5/auto/KDC.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/krb5/auto/KDC.java Wed Jul 05 18:29:53 2017 +0200 @@ -178,6 +178,20 @@ * What backend server can be delegated to */ OK_AS_DELEGATE, + /** + * Allow S4U2self, List of middle servers. + * If not set, means KDC does not understand S4U2self at all, therefore + * would ignore any PA-FOR-USER request and send a ticket using the + * cname of teh requestor. If set, it returns FORWARDABLE tickets to + * a server with its name in the list + */ + ALLOW_S4U2SELF, + /** + * Allow S4U2proxy, Map> of middle servers to + * backends. If not set or a backend not in a server's list, + * Krb5.KDC_ERR_POLICY will be send for S4U2proxy request. + */ + ALLOW_S4U2PROXY, }; static { @@ -618,13 +632,18 @@ int e2 = eTypes[0]; // etype for outgoing session key int e3 = eTypes[0]; // etype for outgoing ticket - PAData[] pas = kDCReqDotPAData(tgsReq); + PAData[] pas = KDCReqDotPAData(tgsReq); Ticket tkt = null; EncTicketPart etp = null; + + PrincipalName cname = null; + boolean allowForwardable = true; + if (pas == null || pas.length == 0) { throw new KrbException(Krb5.KDC_ERR_PADATA_TYPE_NOSUPP); } else { + PrincipalName forUserCName = null; for (PAData pa: pas) { if (pa.getType() == Krb5.PA_TGS_REQ) { APReq apReq = new APReq(pa.getValue()); @@ -636,8 +655,31 @@ DerInputStream derIn = new DerInputStream(bb); DerValue der = derIn.getDerValue(); etp = new EncTicketPart(der.toByteArray()); + // Finally, cname will be overwritten by PA-FOR-USER + // if it exists. + cname = etp.cname; + System.out.println(realm + "> presenting a ticket of " + + etp.cname + " to " + tkt.sname); + } else if (pa.getType() == Krb5.PA_FOR_USER) { + if (options.containsKey(Option.ALLOW_S4U2SELF)) { + PAForUserEnc p4u = new PAForUserEnc( + new DerValue(pa.getValue()), null); + forUserCName = p4u.name; + System.out.println(realm + "> presenting a PA_FOR_USER " + + " in the name of " + p4u.name); + } } } + if (forUserCName != null) { + List names = (List)options.get(Option.ALLOW_S4U2SELF); + if (!names.contains(cname.toString())) { + // Mimic the normal KDC behavior. When a server is not + // allowed to send S4U2self, do not send an error. + // Instead, send a ticket which is useless later. + allowForwardable = false; + } + cname = forUserCName; + } if (tkt == null) { throw new KrbException(Krb5.KDC_ERR_PADATA_TYPE_NOSUPP); } @@ -658,7 +700,8 @@ } boolean[] bFlags = new boolean[Krb5.TKT_OPTS_MAX+1]; - if (body.kdcOptions.get(KDCOptions.FORWARDABLE)) { + if (body.kdcOptions.get(KDCOptions.FORWARDABLE) + && allowForwardable) { bFlags[Krb5.TKT_OPTS_FORWARDABLE] = true; } if (body.kdcOptions.get(KDCOptions.FORWARDED) || @@ -678,6 +721,37 @@ if (body.kdcOptions.get(KDCOptions.ALLOW_POSTDATE)) { bFlags[Krb5.TKT_OPTS_MAY_POSTDATE] = true; } + if (body.kdcOptions.get(KDCOptions.CNAME_IN_ADDL_TKT)) { + if (!options.containsKey(Option.ALLOW_S4U2PROXY)) { + // Don't understand CNAME_IN_ADDL_TKT + throw new KrbException(Krb5.KDC_ERR_BADOPTION); + } else { + Map> map = (Map>) + options.get(Option.ALLOW_S4U2PROXY); + Ticket second = KDCReqBodyDotFirstAdditionalTicket(body); + EncryptionKey key2 = keyForUser(second.sname, second.encPart.getEType(), true); + byte[] bb = second.encPart.decrypt(key2, KeyUsage.KU_TICKET); + DerInputStream derIn = new DerInputStream(bb); + DerValue der = derIn.getDerValue(); + EncTicketPart tktEncPart = new EncTicketPart(der.toByteArray()); + if (!tktEncPart.flags.get(Krb5.TKT_OPTS_FORWARDABLE)) { + //throw new KrbException(Krb5.KDC_ERR_BADOPTION); + } + PrincipalName client = tktEncPart.cname; + System.out.println(realm + "> and an additional ticket of " + + client + " to " + second.sname); + if (map.containsKey(cname.toString())) { + if (map.get(cname.toString()).contains(service.toString())) { + System.out.println(realm + "> S4U2proxy OK"); + } else { + throw new KrbException(Krb5.KDC_ERR_BADOPTION); + } + } else { + throw new KrbException(Krb5.KDC_ERR_BADOPTION); + } + cname = client; + } + } String okAsDelegate = (String)options.get(Option.OK_AS_DELEGATE); if (okAsDelegate != null && ( @@ -691,7 +765,7 @@ EncTicketPart enc = new EncTicketPart( tFlags, key, - etp.cname, + cname, new TransitedEncoding(1, new byte[0]), // TODO new KerberosTime(new Date()), body.from, @@ -729,7 +803,7 @@ ); EncryptedData edata = new EncryptedData(ckey, enc_part.asn1Encode(), KeyUsage.KU_ENC_TGS_REP_PART_SESSKEY); TGSRep tgsRep = new TGSRep(null, - etp.cname, + cname, t, edata); System.out.println(" Return " + tgsRep.cname @@ -942,7 +1016,7 @@ outPAs.add(new PAData(Krb5.PA_ETYPE_INFO, eid.toByteArray())); } - PAData[] inPAs = kDCReqDotPAData(asReq); + PAData[] inPAs = KDCReqDotPAData(asReq); if (inPAs == null || inPAs.length == 0) { Object preauth = options.get(Option.PREAUTH_REQUIRED); if (preauth == null || preauth.equals(Boolean.TRUE)) { @@ -1252,6 +1326,7 @@ private static final Field getEType; private static final Constructor ctorEncryptedData; private static final Method stringToKey; + private static final Field getAddlTkt; static { try { @@ -1265,6 +1340,8 @@ "stringToKey", char[].class, String.class, byte[].class, Integer.TYPE); stringToKey.setAccessible(true); + getAddlTkt = KDCReqBody.class.getDeclaredField("additionalTickets"); + getAddlTkt.setAccessible(true); } catch (NoSuchFieldException nsfe) { throw new AssertionError(nsfe); } catch (NoSuchMethodException nsme) { @@ -1278,7 +1355,7 @@ throw new AssertionError(e); } } - private static PAData[] kDCReqDotPAData(KDCReq req) { + private static PAData[] KDCReqDotPAData(KDCReq req) { try { return (PAData[])getPADataField.get(req); } catch (Exception e) { @@ -1303,4 +1380,11 @@ throw new AssertionError(e); } } + private static Ticket KDCReqBodyDotFirstAdditionalTicket(KDCReqBody body) { + try { + return ((Ticket[])getAddlTkt.get(body))[0]; + } catch (Exception e) { + throw new AssertionError(e); + } + } } diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/OkAsDelegate.java --- a/jdk/test/sun/security/krb5/auto/OkAsDelegate.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/krb5/auto/OkAsDelegate.java Wed Jul 05 18:29:53 2017 +0200 @@ -91,7 +91,7 @@ Context c, s; c = Context.fromJAAS("client"); - s = Context.fromJAAS("server"); + s = Context.fromJAAS("com.sun.security.jgss.krb5.accept"); Oid mech = GSSUtil.GSS_KRB5_MECH_OID; if (System.getProperty("test.spnego") != null) { diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/S4U2proxy.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/security/krb5/auto/S4U2proxy.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6355584 + * @summary Introduce constrained Kerberos delegation + * @compile -XDignore.symbol.file S4U2proxy.java + * @run main/othervm S4U2proxy krb5 + * @run main/othervm S4U2proxy spnego + */ + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.ietf.jgss.Oid; +import sun.security.jgss.GSSUtil; + +public class S4U2proxy { + + public static void main(String[] args) throws Exception { + Oid mech; + if (args[0].equals("spnego")) { + mech = GSSUtil.GSS_SPNEGO_MECH_OID; + } else if (args[0].contains("krb5")) { + mech = GSSUtil.GSS_KRB5_MECH_OID; + } else { + throw new Exception("Unknown mech"); + } + + OneKDC kdc = new OneKDC(null); + kdc.writeJAASConf(); + kdc.setOption(KDC.Option.PREAUTH_REQUIRED, false); + Map> map = new HashMap<>(); + map.put(OneKDC.SERVER + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.BACKEND + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + + Context c, s, b; + c = Context.fromJAAS("client"); + s = Context.fromJAAS("server"); + b = Context.fromJAAS("backend"); + + c.startAsClient(OneKDC.SERVER, mech); + s.startAsServer(null, mech, false); + + Context.handshake(c, s); + Context p = s.delegated(); + + p.startAsClient(OneKDC.BACKEND, mech); + b.startAsServer(mech); + Context.handshake(p, b); + + p.startAsClient(OneKDC.BACKEND, mech); + b.startAsServer(mech); + Context.handshake(p, b); + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/S4U2proxyGSS.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/security/krb5/auto/S4U2proxyGSS.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6355584 + * @summary Introduce constrained Kerberos delegation + * @compile -XDignore.symbol.file S4U2proxyGSS.java + * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2proxyGSS krb5 + * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2proxyGSS spnego + */ + +import java.io.File; +import java.io.FileOutputStream; +import java.security.Security; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.ietf.jgss.Oid; +import sun.security.jgss.GSSUtil; + +public class S4U2proxyGSS { + + public static void main(String[] args) throws Exception { + Oid mech; + if (args[0].equals("spnego")) { + mech = GSSUtil.GSS_SPNEGO_MECH_OID; + } else if (args[0].contains("krb5")) { + mech = GSSUtil.GSS_KRB5_MECH_OID; + } else { + throw new Exception("Unknown mech"); + } + + OneKDC kdc = new OneKDC(null); + kdc.writeJAASConf(); + kdc.setOption(KDC.Option.PREAUTH_REQUIRED, false); + Map> map = new HashMap<>(); + map.put(OneKDC.SERVER + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.SERVER + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + + Context c, s, b; + System.setProperty("javax.security.auth.useSubjectCredsOnly", "false"); + System.setProperty("java.security.auth.login.config", OneKDC.JAAS_CONF); + File f = new File(OneKDC.JAAS_CONF); + FileOutputStream fos = new FileOutputStream(f); + fos.write(( + "com.sun.security.jgss.krb5.initiate {\n" + + " com.sun.security.auth.module.Krb5LoginModule required;\n};\n" + + "com.sun.security.jgss.krb5.accept {\n" + + " com.sun.security.auth.module.Krb5LoginModule required\n" + + " principal=\"" + OneKDC.SERVER + "\"\n" + + " useKeyTab=true\n" + + " storeKey=true;\n};\n" + ).getBytes()); + fos.close(); + Security.setProperty("auth.login.defaultCallbackHandler", "OneKDC$CallbackForClient"); + c = Context.fromThinAir(); + s = Context.fromThinAir(); + b = Context.fromThinAir(); + c.startAsClient(OneKDC.SERVER, mech); + c.x().requestCredDeleg(false); + s.startAsServer(mech); + + Context.handshake(c, s); + Context p = s.delegated(); + p.startAsClient(OneKDC.SERVER, mech); + b.startAsServer(mech); + Context.handshake(p, b); + + String n1 = p.x().getSrcName().toString().split("@")[0]; + String n2 = b.x().getSrcName().toString().split("@")[0]; + if (!n1.equals(OneKDC.USER) || !n2.equals(OneKDC.USER)) { + throw new Exception("Delegation failed"); + } + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/S4U2self.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/security/krb5/auto/S4U2self.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6355584 + * @summary Introduce constrained Kerberos delegation + * @compile -XDignore.symbol.file S4U2self.java + * @run main/othervm -Dsun.security.krb5.debug=false S4U2self krb5 0 + * @run main/othervm/fail -Dsun.security.krb5.debug=false S4U2self krb5 1 + * @run main/othervm/fail -Dsun.security.krb5.debug=false S4U2self krb5 2 + * @run main/othervm/fail -Dsun.security.krb5.debug=false S4U2self krb5 3 + * @run main/othervm/fail -Dsun.security.krb5.debug=false S4U2self krb5 4 + * @run main/othervm/fail -Dsun.security.krb5.debug=false S4U2self krb5 5 + * @run main/othervm -Dsun.security.krb5.debug=false S4U2self spnego + */ + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.ietf.jgss.Oid; +import sun.security.jgss.GSSUtil; + +public class S4U2self { + + public static void main(String[] args) throws Exception { + // Test case, different policy settings in KDC: + // | ALLOW_S4U2SELF on + // | USER USER2 none + // ALLOW_S4U2PORXY |------------------------- + // USER to BACKEND | 0 1 2 + // USER2 to BACKEND | 3 + // USER to SERVER | 4 + // none | 5 + // + // 0 should succeed, all other fail + int test = 0; + Oid mech; + if (args[0].equals("spnego")) { + mech = GSSUtil.GSS_SPNEGO_MECH_OID; + } else if (args[0].contains("krb5")) { + mech = GSSUtil.GSS_KRB5_MECH_OID; + test = Integer.parseInt(args[1]); + } else { + throw new Exception("Unknown mech"); + } + + OneKDC kdc = new OneKDC(null); + kdc.writeJAASConf(); + + switch (test) { + case 1: + kdc.setOption(KDC.Option.ALLOW_S4U2SELF, Arrays.asList( + new String[]{OneKDC.USER2 + "@" + OneKDC.REALM})); + break; + case 2: + // No S4U2self + break; + default: + kdc.setOption(KDC.Option.ALLOW_S4U2SELF, Arrays.asList( + new String[]{OneKDC.USER + "@" + OneKDC.REALM})); + break; + } + + Map> map = new HashMap<>(); + switch (test) { + case 3: + map.put(OneKDC.USER2 + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.BACKEND + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + break; + case 4: + map.put(OneKDC.USER + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.SERVER + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + break; + case 5: + // No S4U2proxy set + break; + default: + map.put(OneKDC.USER + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.BACKEND + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + break; + } + + Context c, s; + c = Context.fromJAAS("client"); + + c = c.impersonate(OneKDC.USER2); + c.status(); + + c.startAsClient(OneKDC.BACKEND, mech); + + s = Context.fromJAAS("backend"); + s.startAsServer(mech); + + Context.handshake(c, s); + + Context.transmit("i say high --", c, s); + Context.transmit(" you say low", s, c); + + c.status(); + s.status(); + + String n1 = c.x().getSrcName().toString().split("@")[0]; + String n2 = s.x().getSrcName().toString().split("@")[0]; + if (!n1.equals(OneKDC.USER2) || !n2.equals(OneKDC.USER2)) { + throw new Exception("Impersonate failed"); + } + + s.dispose(); + c.dispose(); + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/S4U2selfAsServer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/security/krb5/auto/S4U2selfAsServer.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6355584 + * @summary Introduce constrained Kerberos delegation + * @compile -XDignore.symbol.file S4U2selfAsServer.java + * @run main/othervm S4U2selfAsServer krb5 + * @run main/othervm S4U2selfAsServer spnego + */ + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.ietf.jgss.Oid; +import sun.security.jgss.GSSUtil; + +public class S4U2selfAsServer { + + public static void main(String[] args) throws Exception { + Oid mech; + if (args[0].equals("spnego")) { + mech = GSSUtil.GSS_SPNEGO_MECH_OID; + } else if (args[0].contains("krb5")) { + mech = GSSUtil.GSS_KRB5_MECH_OID; + } else { + throw new Exception("Unknown mech"); + } + + OneKDC kdc = new OneKDC(null); + kdc.writeJAASConf(); + kdc.setOption(KDC.Option.PREAUTH_REQUIRED, false); + Map> map = new HashMap<>(); + map.put(OneKDC.SERVER + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.BACKEND + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + kdc.setOption(KDC.Option.ALLOW_S4U2SELF, Arrays.asList( + new String[]{OneKDC.SERVER + "@" + OneKDC.REALM})); + + Context s, b; + s = Context.fromJAAS("server"); + b = Context.fromJAAS("backend"); + + s.startAsServer(null, mech, false); + + Context p = s.impersonate(OneKDC.USER); + + p.startAsClient(OneKDC.BACKEND, mech); + b.startAsServer(mech); + Context.handshake(p, b); + + p.startAsClient(OneKDC.BACKEND, mech); + b.startAsServer(mech); + Context.handshake(p, b); + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/S4U2selfAsServerGSS.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/security/krb5/auto/S4U2selfAsServerGSS.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6355584 + * @summary Introduce constrained Kerberos delegation + * @compile -XDignore.symbol.file S4U2selfAsServerGSS.java + * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2selfAsServerGSS krb5 + * @run main/othervm -Djavax.security.auth.useSubjectCredsOnly=false S4U2selfAsServerGSS spnego + */ + +import java.io.File; +import java.io.FileOutputStream; +import java.security.Security; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.ietf.jgss.Oid; +import sun.security.jgss.GSSUtil; + +public class S4U2selfAsServerGSS { + + public static void main(String[] args) throws Exception { + Oid mech; + if (args[0].equals("spnego")) { + mech = GSSUtil.GSS_SPNEGO_MECH_OID; + } else if (args[0].contains("krb5")) { + mech = GSSUtil.GSS_KRB5_MECH_OID; + } else { + throw new Exception("Unknown mech"); + } + + OneKDC kdc = new OneKDC(null); + kdc.writeJAASConf(); + kdc.setOption(KDC.Option.PREAUTH_REQUIRED, false); + Map> map = new HashMap<>(); + map.put(OneKDC.SERVER + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.SERVER + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + kdc.setOption(KDC.Option.ALLOW_S4U2SELF, Arrays.asList( + new String[]{OneKDC.SERVER + "@" + OneKDC.REALM})); + + Context s, b; + System.setProperty("javax.security.auth.useSubjectCredsOnly", "false"); + System.setProperty("java.security.auth.login.config", OneKDC.JAAS_CONF); + File f = new File(OneKDC.JAAS_CONF); + FileOutputStream fos = new FileOutputStream(f); + fos.write(( + "com.sun.security.jgss.krb5.accept {\n" + + " com.sun.security.auth.module.Krb5LoginModule required\n" + + " principal=\"" + OneKDC.SERVER + "\"\n" + + " useKeyTab=true\n" + + " storeKey=true;\n};\n" + ).getBytes()); + fos.close(); + Security.setProperty("auth.login.defaultCallbackHandler", "OneKDC$CallbackForClient"); + s = Context.fromThinAir(); + b = Context.fromThinAir(); + s.startAsServer(mech); + + Context p = s.impersonate(OneKDC.USER); + + p.startAsClient(OneKDC.SERVER, mech); + b.startAsServer(mech); + Context.handshake(p, b); + + String n1 = p.x().getSrcName().toString().split("@")[0]; + String n2 = b.x().getSrcName().toString().split("@")[0]; + if (!n1.equals(OneKDC.USER) || !n2.equals(OneKDC.USER)) { + throw new Exception("Delegation failed"); + } + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/krb5/auto/S4U2selfGSS.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/security/krb5/auto/S4U2selfGSS.java Wed Jul 05 18:29:53 2017 +0200 @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6355584 + * @summary Introduce constrained Kerberos delegation + * @compile -XDignore.symbol.file S4U2selfGSS.java + * @run main/othervm -Dsun.security.krb5.debug=false S4U2selfGSS krb5 + * @run main/othervm -Dsun.security.krb5.debug=false S4U2selfGSS spnego + */ + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.ietf.jgss.Oid; +import sun.security.jgss.GSSUtil; + +public class S4U2selfGSS { + + public static void main(String[] args) throws Exception { + Oid mech; + if (args[0].equals("spnego")) { + mech = GSSUtil.GSS_SPNEGO_MECH_OID; + } else if (args[0].contains("krb5")) { + mech = GSSUtil.GSS_KRB5_MECH_OID; + } else { + throw new Exception("Unknown mech"); + } + + OneKDC kdc = new OneKDC(null); + kdc.writeJAASConf(); + kdc.setOption(KDC.Option.ALLOW_S4U2SELF, Arrays.asList( + new String[]{OneKDC.USER + "@" + OneKDC.REALM})); + Map> map = new HashMap<>(); + map.put(OneKDC.USER + "@" + OneKDC.REALM, Arrays.asList( + new String[]{OneKDC.SERVER + "@" + OneKDC.REALM})); + kdc.setOption(KDC.Option.ALLOW_S4U2PROXY, map); + + Context c, s; + System.setProperty("javax.security.auth.useSubjectCredsOnly", "false"); + c = Context.fromThinAir(); + s = Context.fromThinAir(); + + c = c.impersonate(OneKDC.USER2); + + c.startAsClient(OneKDC.SERVER, mech); + s.startAsServer(mech); + + Context.handshake(c, s); + + String n1 = c.x().getSrcName().toString().split("@")[0]; + String n2 = s.x().getSrcName().toString().split("@")[0]; + if (!n1.equals(OneKDC.USER2) || !n2.equals(OneKDC.USER2)) { + throw new Exception("Impersonate failed"); + } + + s.dispose(); + c.dispose(); + } +} diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/pkcs11/rsa/GenKeyStore.java --- a/jdk/test/sun/security/pkcs11/rsa/GenKeyStore.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/pkcs11/rsa/GenKeyStore.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,8 +54,8 @@ certInfo.set(X509CertInfo.VERSION, new CertificateVersion(CertificateVersion.V1)); certInfo.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber(1)); certInfo.set(X509CertInfo.ALGORITHM_ID, new CertificateAlgorithmId(algID)); - certInfo.set(X509CertInfo.SUBJECT, new CertificateSubjectName(name)); - certInfo.set(X509CertInfo.ISSUER, new CertificateIssuerName(name)); + certInfo.set(X509CertInfo.SUBJECT, name); + certInfo.set(X509CertInfo.ISSUER, name); certInfo.set(X509CertInfo.KEY, new CertificateX509Key(publicKey)); certInfo.set(X509CertInfo.VALIDITY, new CertificateValidity(date, date)); diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/provider/X509Factory/BigCRL.java --- a/jdk/test/sun/security/provider/X509Factory/BigCRL.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/provider/X509Factory/BigCRL.java Wed Jul 05 18:29:53 2017 +0200 @@ -57,7 +57,7 @@ X509CertInfo signerCertInfo = (X509CertInfo)signerCertImpl.get( X509CertImpl.NAME + "." + X509CertImpl.INFO); X500Name owner = (X500Name)signerCertInfo.get(X509CertInfo.SUBJECT + "." - + CertificateSubjectName.DN_NAME); + + X509CertInfo.DN_NAME); Date date = new Date(); PrivateKey privateKey = (PrivateKey) diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/rsa/GenKeyStore.java --- a/jdk/test/sun/security/rsa/GenKeyStore.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/rsa/GenKeyStore.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,8 +54,8 @@ certInfo.set(X509CertInfo.VERSION, new CertificateVersion(CertificateVersion.V1)); certInfo.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber(1)); certInfo.set(X509CertInfo.ALGORITHM_ID, new CertificateAlgorithmId(algID)); - certInfo.set(X509CertInfo.SUBJECT, new CertificateSubjectName(name)); - certInfo.set(X509CertInfo.ISSUER, new CertificateIssuerName(name)); + certInfo.set(X509CertInfo.SUBJECT, name); + certInfo.set(X509CertInfo.ISSUER, name); certInfo.set(X509CertInfo.KEY, new CertificateX509Key(publicKey)); certInfo.set(X509CertInfo.VALIDITY, new CertificateValidity(date, date)); diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java --- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,15 @@ * questions. */ +// +// SunJSSE does not support dynamic system properties, no way to re-use +// system properties in samevm/agentvm mode. +// + /** * @test * @bug 4302026 * @run main/othervm GetPeerHost - * - * SunJSSE does not support dynamic system properties, no way to re-use - * system properties in samevm/agentvm mode. * @summary make sure the server side doesn't do DNS lookup. */ import javax.net.*; @@ -41,7 +43,8 @@ + "/../../../../../../../etc/truststore"); GetPeerHostServer server = new GetPeerHostServer(); server.start(); - GetPeerHostClient client = new GetPeerHostClient(); + GetPeerHostClient client = + new GetPeerHostClient(server.getServerPort()); client.start(); server.join (); if (!server.getPassStatus ()) { diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostClient.java --- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostClient.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostClient.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,13 +38,13 @@ SSLSocket s; String server; - public GetPeerHostClient () + public GetPeerHostClient (int serverPort) { try { SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory .getDefault(); server = InetAddress.getLocalHost().getHostName(); - s = (SSLSocket) factory.createSocket(server, 9999); + s = (SSLSocket) factory.createSocket(server, serverPort); System.out.println("CLIENT: connected to the server- " + server); } catch (Exception e) { System.err.println("Unexpected exceptions: " + e); diff -r 0e685b019743 -r a7496bb56968 jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostServer.java --- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostServer.java Fri Nov 09 14:47:22 2012 -0800 +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostServer.java Wed Jul 05 18:29:53 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,7 @@ private String host; ServerSocket ss; boolean isHostIPAddr = false; + int serverPort = 0; public GetPeerHostServer () { @@ -57,7 +58,8 @@ kmf.init(ks, passphrase); ctx.init(kmf.getKeyManagers(), null, null); ServerSocketFactory ssf = ctx.getServerSocketFactory(); - ss = ssf.createServerSocket(9999); + ss = ssf.createServerSocket(serverPort); + serverPort = ss.getLocalPort(); }catch (Exception e) { System.err.println("Unexpected exceptions: " + e); e.printStackTrace(); @@ -90,4 +92,8 @@ boolean getPassStatus () { return isHostIPAddr; } + + int getServerPort() { + return serverPort; + } }