Commit c58f2900 by David Daney

re PR libgcj/11801 (Problems with Process.waitFor() and exitValue())

2004-08-12  David Daney  <ddaney@avtrex.com>

	PR libgcj/11801
	* java/lang/PosixProcess.java: Rewrote.
	* java/lang/natPosixProcess.cc: Rewrote.
	* java/lang/Runtime.java (execInternal): Declare throws IOException.
	* gcj/javaprims.h (ConcreteProcess$ProcessManager): Declare.
	* posix-threads.cc (block_sigchld) New function.
	(_Jv_ThreadRegister) Use it.
	(_Jv_ThreadStart) Use it.
	* configure.in (PLATFORM_INNER_NAT_HDRS): New AC_SUBST() used in...
	* Makefile.am: ... to specify extra native headers.
	* configure: Regenerated.
	* include/config.h: Regenerated.
	* Makefile.in: Regenerated.
	* gcj/Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

From-SVN: r85880
parent db151e9d
...@@ -532,7 +532,8 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ ...@@ -532,7 +532,8 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
gnu/java/net/PlainSocketImpl$$SocketInputStream.h \ gnu/java/net/PlainSocketImpl$$SocketInputStream.h \
gnu/java/net/PlainSocketImpl$$SocketOutputStream.h \ gnu/java/net/PlainSocketImpl$$SocketOutputStream.h \
gnu/java/nio/PipeImpl$$SinkChannelImpl.h \ gnu/java/nio/PipeImpl$$SinkChannelImpl.h \
gnu/java/nio/PipeImpl$$SourceChannelImpl.h gnu/java/nio/PipeImpl$$SourceChannelImpl.h \
$(PLATFORM_INNER_NAT_HDRS)
nat_headers = $(ordinary_nat_headers) $(inner_nat_headers) nat_headers = $(ordinary_nat_headers) $(inner_nat_headers)
nat_headers_install = $(ordinary_nat_headers) nat_headers_install = $(ordinary_nat_headers)
...@@ -642,6 +643,11 @@ gnu/java/nio/PipeImpl$$SourceChannelImpl.h: gnu/java/nio/PipeImpl.class ...@@ -642,6 +643,11 @@ gnu/java/nio/PipeImpl$$SourceChannelImpl.h: gnu/java/nio/PipeImpl.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \ $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
'gnu/java/nio/PipeImpl$$SourceChannelImpl' 'gnu/java/nio/PipeImpl$$SourceChannelImpl'
## Only used by PosixProcess.java
java/lang/ConcreteProcess$$ProcessManager.h: java/lang/ConcreteProcess.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
'java/lang/ConcreteProcess$$ProcessManager'
## Headers we maintain by hand and which we want to install. ## Headers we maintain by hand and which we want to install.
extra_headers = java/lang/Object.h java/lang/Class.h extra_headers = java/lang/Object.h java/lang/Class.h
......
...@@ -125,6 +125,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ ...@@ -125,6 +125,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
PERL = @PERL@ PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@ PLATFORMOBJS = @PLATFORMOBJS@
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
STRIP = @STRIP@ STRIP = @STRIP@
SYSDEP_SOURCES = @SYSDEP_SOURCES@ SYSDEP_SOURCES = @SYSDEP_SOURCES@
...@@ -506,7 +507,8 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ ...@@ -506,7 +507,8 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
gnu/java/net/PlainSocketImpl$$SocketInputStream.h \ gnu/java/net/PlainSocketImpl$$SocketInputStream.h \
gnu/java/net/PlainSocketImpl$$SocketOutputStream.h \ gnu/java/net/PlainSocketImpl$$SocketOutputStream.h \
gnu/java/nio/PipeImpl$$SinkChannelImpl.h \ gnu/java/nio/PipeImpl$$SinkChannelImpl.h \
gnu/java/nio/PipeImpl$$SourceChannelImpl.h gnu/java/nio/PipeImpl$$SourceChannelImpl.h \
$(PLATFORM_INNER_NAT_HDRS)
nat_headers = $(ordinary_nat_headers) $(inner_nat_headers) nat_headers = $(ordinary_nat_headers) $(inner_nat_headers)
...@@ -5662,6 +5664,10 @@ gnu/java/nio/PipeImpl$$SourceChannelImpl.h: gnu/java/nio/PipeImpl.class ...@@ -5662,6 +5664,10 @@ gnu/java/nio/PipeImpl$$SourceChannelImpl.h: gnu/java/nio/PipeImpl.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \ $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
'gnu/java/nio/PipeImpl$$SourceChannelImpl' 'gnu/java/nio/PipeImpl$$SourceChannelImpl'
java/lang/ConcreteProcess$$ProcessManager.h: java/lang/ConcreteProcess.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
'java/lang/ConcreteProcess$$ProcessManager'
$(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h: $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
@: @:
......
...@@ -310,7 +310,7 @@ ac_includes_default="\ ...@@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h> # include <unistd.h>
#endif" #endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcj_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS INCLTDL LIBLTDL DIRLTDL STRIP ac_ct_STRIP LIBTOOL CXXCPP CPPFLAGS subdirs COMPPATH TESTSUBDIR_TRUE TESTSUBDIR_FALSE ONESTEP_TRUE ONESTEP_FALSE LIBGCJDEBUG INTERPRETER LIBFFI LIBFFIINCS EXTRA_CC_FILES PLATFORMOBJS CPP EGREP SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE GTK_AWT_TRUE GTK_AWT_FALSE GTK_CAIRO_TRUE GTK_CAIRO_FALSE PKG_CONFIG CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS GCLIBS GCINCS GCDEPS GCOBJS GCSPEC JC1GCSPEC GCTESTSPEC THREADLIBS THREADINCS THREADDEPS THREADOBJS THREADSPEC THREADLDFLAGS THREADCXXFLAGS HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE tool_include_dir gcc_version LIBICONV GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS GCJH ZIP GCJ ac_ct_GCJ GCJFLAGS ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION ALLOCA PERL BACKTRACESPEC SYSDEP_SOURCES here LIBOBJS LTLIBOBJS' ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcj_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS INCLTDL LIBLTDL DIRLTDL STRIP ac_ct_STRIP LIBTOOL CXXCPP CPPFLAGS subdirs COMPPATH TESTSUBDIR_TRUE TESTSUBDIR_FALSE ONESTEP_TRUE ONESTEP_FALSE LIBGCJDEBUG INTERPRETER LIBFFI LIBFFIINCS EXTRA_CC_FILES PLATFORMOBJS PLATFORM_INNER_NAT_HDRS CPP EGREP SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE GTK_AWT_TRUE GTK_AWT_FALSE GTK_CAIRO_TRUE GTK_CAIRO_FALSE PKG_CONFIG CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS GCLIBS GCINCS GCDEPS GCOBJS GCSPEC JC1GCSPEC GCTESTSPEC THREADLIBS THREADINCS THREADDEPS THREADOBJS THREADSPEC THREADLDFLAGS THREADCXXFLAGS HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE tool_include_dir gcc_version LIBICONV GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS GCJH ZIP GCJ ac_ct_GCJ GCJFLAGS ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION ALLOCA PERL BACKTRACESPEC SYSDEP_SOURCES here LIBOBJS LTLIBOBJS'
ac_subst_files='' ac_subst_files=''
# Initialize some variables set by options. # Initialize some variables set by options.
...@@ -994,7 +994,7 @@ esac ...@@ -994,7 +994,7 @@ esac
else else
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi fi
cd "$ac_popdir" cd $ac_popdir
done done
fi fi
...@@ -2215,7 +2215,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2215,7 +2215,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2273,7 +2274,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2273,7 +2274,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2389,7 +2391,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2389,7 +2391,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2443,7 +2446,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2443,7 +2446,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2488,7 +2492,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2488,7 +2492,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2532,7 +2537,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2532,7 +2537,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2716,7 +2722,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2716,7 +2722,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_cxx_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2774,7 +2781,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2774,7 +2781,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_cxx_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2845,7 +2853,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2845,7 +2853,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_cxx_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -2889,7 +2898,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -2889,7 +2898,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_cxx_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -4324,7 +4334,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" ...@@ -4324,7 +4334,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in case $host in
*-*-irix6*) *-*-irix6*)
# Find out which ABI we are using. # Find out which ABI we are using.
echo '#line 4327 "configure"' > conftest.$ac_ext echo '#line 4337 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
...@@ -4471,7 +4481,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -4471,7 +4481,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -5053,7 +5064,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then ...@@ -5053,7 +5064,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
: :
else else
cat > conftest.$ac_ext << EOF cat > conftest.$ac_ext << EOF
#line 5056 "configure" #line 5067 "configure"
struct S { ~S(); }; struct S { ~S(); };
void bar(); void bar();
void foo() void foo()
...@@ -5187,6 +5198,7 @@ EXTRA_CC_FILES= ...@@ -5187,6 +5198,7 @@ EXTRA_CC_FILES=
PLATFORMOBJS= PLATFORMOBJS=
PLATFORM_INNER_NAT_HDRS=
case "$TARGET_ECOS" in case "$TARGET_ECOS" in
no) case "$host" in no) case "$host" in
*mingw*) *mingw*)
...@@ -5228,6 +5240,7 @@ fi ...@@ -5228,6 +5240,7 @@ fi
PLATFORMNET=Posix PLATFORMNET=Posix
PLATFORMOBJS=posix.lo PLATFORMOBJS=posix.lo
PLATFORMH=posix.h PLATFORMH=posix.h
PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h'
;; ;;
esac esac
;; ;;
...@@ -5244,6 +5257,7 @@ _ACEOF ...@@ -5244,6 +5257,7 @@ _ACEOF
;; ;;
esac esac
ac_config_links="$ac_config_links include/platform.h:include/$PLATFORMH" ac_config_links="$ac_config_links include/platform.h:include/$PLATFORMH"
...@@ -5683,12 +5697,9 @@ ZLIBSPEC= ...@@ -5683,12 +5697,9 @@ ZLIBSPEC=
ZLIBTESTSPEC= ZLIBTESTSPEC=
echo "$as_me:$LINENO: checking for X" >&5
if test "x$ac_path_x_has_been_run" != xyes; then
echo "$as_me:$LINENO: checking for X" >&5
echo $ECHO_N "checking for X... $ECHO_C" >&6 echo $ECHO_N "checking for X... $ECHO_C" >&6
ac_path_x_has_been_run=yes
# Check whether --with-x or --without-x was given. # Check whether --with-x or --without-x was given.
if test "${with_x+set}" = set; then if test "${with_x+set}" = set; then
...@@ -5781,7 +5792,7 @@ ac_x_header_dirs=' ...@@ -5781,7 +5792,7 @@ ac_x_header_dirs='
/usr/openwin/share/include' /usr/openwin/share/include'
if test "$ac_x_includes" = no; then if test "$ac_x_includes" = no; then
# Guess where to find include files, by looking for a specified header file. # Guess where to find include files, by looking for Intrinsic.h.
# First, try using that file with no special directory specified. # First, try using that file with no special directory specified.
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */ /* confdefs.h. */
...@@ -5860,7 +5871,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -5860,7 +5871,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -5920,15 +5932,10 @@ else ...@@ -5920,15 +5932,10 @@ else
# Update the cache value to reflect the command line values. # Update the cache value to reflect the command line values.
ac_cv_have_x="have_x=yes \ ac_cv_have_x="have_x=yes \
ac_x_includes=$x_includes ac_x_libraries=$x_libraries" ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
# It might be that x_includes is empty (headers are found in the echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
# standard search path. Then output the corresponding message echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
ac_out_x_includes=$x_includes
test "x$x_includes" = x && ac_out_x_includes="in standard search path"
echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5
echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6
fi fi
fi
if test "$no_x" = yes; then if test "$no_x" = yes; then
# Not all programs may use this symbol, but it does not hurt to define it. # Not all programs may use this symbol, but it does not hurt to define it.
...@@ -5981,7 +5988,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -5981,7 +5988,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6037,7 +6045,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6037,7 +6045,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6118,7 +6127,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6118,7 +6127,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6178,7 +6188,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6178,7 +6188,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6251,7 +6262,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6251,7 +6262,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6364,7 +6376,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6364,7 +6376,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6433,7 +6446,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6433,7 +6446,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6506,7 +6520,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6506,7 +6520,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6615,7 +6630,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6615,7 +6630,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6684,7 +6700,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6684,7 +6700,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6786,7 +6803,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6786,7 +6803,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6855,7 +6873,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6855,7 +6873,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -6957,7 +6976,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -6957,7 +6976,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -7026,7 +7046,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -7026,7 +7046,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -7110,7 +7131,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -7110,7 +7131,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -7803,7 +7825,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -7803,7 +7825,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -7913,7 +7936,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -7913,7 +7936,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8027,7 +8051,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -8027,7 +8051,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8134,7 +8159,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -8134,7 +8159,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8241,7 +8267,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -8241,7 +8267,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8349,7 +8376,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -8349,7 +8376,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8459,7 +8487,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -8459,7 +8487,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8524,7 +8553,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -8524,7 +8553,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8694,7 +8724,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -8694,7 +8724,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8763,7 +8794,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -8763,7 +8794,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -8948,7 +8980,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -8948,7 +8980,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9056,7 +9089,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -9056,7 +9089,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9195,7 +9229,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -9195,7 +9229,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9250,7 +9285,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -9250,7 +9285,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9325,7 +9361,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -9325,7 +9361,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9399,7 +9436,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -9399,7 +9436,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9549,7 +9587,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -9549,7 +9587,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9612,7 +9651,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -9612,7 +9651,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9677,7 +9717,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -9677,7 +9717,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9723,7 +9764,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -9723,7 +9764,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9802,7 +9844,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -9802,7 +9844,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -9911,7 +9954,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -9911,7 +9954,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10009,7 +10053,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -10009,7 +10053,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_cxx_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10052,7 +10097,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -10052,7 +10097,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_cxx_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10129,7 +10175,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -10129,7 +10175,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10255,7 +10302,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -10255,7 +10302,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10393,7 +10441,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -10393,7 +10441,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10525,7 +10574,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -10525,7 +10574,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10660,7 +10710,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -10660,7 +10710,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10769,7 +10820,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -10769,7 +10820,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10843,7 +10895,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -10843,7 +10895,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10921,7 +10974,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -10921,7 +10974,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -10991,7 +11045,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -10991,7 +11045,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11039,7 +11094,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -11039,7 +11094,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11144,7 +11200,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11144,7 +11200,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11256,7 +11313,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11256,7 +11313,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11365,7 +11423,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11365,7 +11423,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11446,7 +11505,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11446,7 +11505,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11578,7 +11638,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11578,7 +11638,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11647,7 +11708,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11647,7 +11708,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11753,7 +11815,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11753,7 +11815,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11858,7 +11921,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11858,7 +11921,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -11922,7 +11986,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -11922,7 +11986,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -12005,7 +12070,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -12005,7 +12070,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -12384,7 +12450,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -12384,7 +12450,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -12662,7 +12729,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -12662,7 +12729,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -12838,7 +12906,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -12838,7 +12906,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -12989,7 +13058,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -12989,7 +13058,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13138,7 +13208,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13138,7 +13208,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13303,7 +13374,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13303,7 +13374,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13367,7 +13439,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13367,7 +13439,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13434,7 +13507,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13434,7 +13507,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13488,7 +13562,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13488,7 +13562,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13542,7 +13617,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13542,7 +13617,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13596,7 +13672,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13596,7 +13672,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13652,7 +13729,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13652,7 +13729,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13706,7 +13784,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13706,7 +13784,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13757,7 +13836,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13757,7 +13836,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13808,7 +13888,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -13808,7 +13888,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13876,7 +13957,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -13876,7 +13957,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -13962,7 +14044,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -13962,7 +14044,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -14108,7 +14191,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -14108,7 +14191,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -14252,7 +14336,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ...@@ -14252,7 +14336,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -14441,7 +14526,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ...@@ -14441,7 +14526,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
...@@ -15516,6 +15602,7 @@ s,@LIBFFI@,$LIBFFI,;t t ...@@ -15516,6 +15602,7 @@ s,@LIBFFI@,$LIBFFI,;t t
s,@LIBFFIINCS@,$LIBFFIINCS,;t t s,@LIBFFIINCS@,$LIBFFIINCS,;t t
s,@EXTRA_CC_FILES@,$EXTRA_CC_FILES,;t t s,@EXTRA_CC_FILES@,$EXTRA_CC_FILES,;t t
s,@PLATFORMOBJS@,$PLATFORMOBJS,;t t s,@PLATFORMOBJS@,$PLATFORMOBJS,;t t
s,@PLATFORM_INNER_NAT_HDRS@,$PLATFORM_INNER_NAT_HDRS,;t t
s,@CPP@,$CPP,;t t s,@CPP@,$CPP,;t t
s,@EGREP@,$EGREP,;t t s,@EGREP@,$EGREP,;t t
s,@SYSTEMSPEC@,$SYSTEMSPEC,;t t s,@SYSTEMSPEC@,$SYSTEMSPEC,;t t
...@@ -15758,6 +15845,11 @@ esac ...@@ -15758,6 +15845,11 @@ esac
*) ac_INSTALL=$ac_top_builddir$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
esac esac
if test x"$ac_file" != x-; then
{ echo "$as_me:$LINENO: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
# Let's still pretend it is `configure' which instantiates (i.e., don't # Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read: # use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */ # /* config.h. Generated by config.status. */
...@@ -15796,12 +15888,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;} ...@@ -15796,12 +15888,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
fi;; fi;;
esac esac
done` || { (exit 1); exit 1; } done` || { (exit 1); exit 1; }
if test x"$ac_file" != x-; then
{ echo "$as_me:$LINENO: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF cat >>$CONFIG_STATUS <<_ACEOF
sed "$ac_vpsub sed "$ac_vpsub
...@@ -16548,7 +16634,7 @@ echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;} ...@@ -16548,7 +16634,7 @@ echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
fi fi
cd "$ac_popdir" cd $ac_popdir
done done
fi fi
...@@ -386,6 +386,7 @@ EXTRA_CC_FILES= ...@@ -386,6 +386,7 @@ EXTRA_CC_FILES=
AC_SUBST(EXTRA_CC_FILES) AC_SUBST(EXTRA_CC_FILES)
PLATFORMOBJS= PLATFORMOBJS=
PLATFORM_INNER_NAT_HDRS=
case "$TARGET_ECOS" in case "$TARGET_ECOS" in
no) case "$host" in no) case "$host" in
*mingw*) *mingw*)
...@@ -400,6 +401,7 @@ case "$TARGET_ECOS" in ...@@ -400,6 +401,7 @@ case "$TARGET_ECOS" in
PLATFORMNET=Posix PLATFORMNET=Posix
PLATFORMOBJS=posix.lo PLATFORMOBJS=posix.lo
PLATFORMH=posix.h PLATFORMH=posix.h
PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h'
;; ;;
esac esac
;; ;;
...@@ -412,6 +414,7 @@ case "$TARGET_ECOS" in ...@@ -412,6 +414,7 @@ case "$TARGET_ECOS" in
;; ;;
esac esac
AC_SUBST(PLATFORMOBJS) AC_SUBST(PLATFORMOBJS)
AC_SUBST(PLATFORM_INNER_NAT_HDRS)
AC_CONFIG_LINKS(include/platform.h:include/$PLATFORMH) AC_CONFIG_LINKS(include/platform.h:include/$PLATFORMH)
AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1,
......
...@@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ ...@@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
PERL = @PERL@ PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@ PLATFORMOBJS = @PLATFORMOBJS@
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
STRIP = @STRIP@ STRIP = @STRIP@
SYSDEP_SOURCES = @SYSDEP_SOURCES@ SYSDEP_SOURCES = @SYSDEP_SOURCES@
......
// javaprims.h - Main external header file for libgcj. -*- c++ -*- // javaprims.h - Main external header file for libgcj. -*- c++ -*-
/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation /* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -150,6 +151,7 @@ extern "Java" ...@@ -150,6 +151,7 @@ extern "Java"
class Comparable; class Comparable;
class Compiler; class Compiler;
class ConcreteProcess; class ConcreteProcess;
class ConcreteProcess$ProcessManager;
class Double; class Double;
class Error; class Error;
class Exception; class Exception;
......
...@@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ ...@@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
PERL = @PERL@ PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@ PLATFORMOBJS = @PLATFORMOBJS@
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
STRIP = @STRIP@ STRIP = @STRIP@
SYSDEP_SOURCES = @SYSDEP_SOURCES@ SYSDEP_SOURCES = @SYSDEP_SOURCES@
......
/* include/config.h.in. Generated automatically from configure.in by autoheader. */ /* include/config.h.in. Generated from configure.in by autoheader. */
/* Define if using alloca.c. */ /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
#undef CRAY_STACKSEG_END
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA #undef C_ALLOCA
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. /* Define this if you want runtime debugging enabled. */
This function is required for alloca.c support on those systems. */ #undef DEBUG
#undef CRAY_STACKSEG_END
/* Define if you have alloca, as a function or macro. */ /* Define if system properties shouldn't be read from
#undef HAVE_ALLOCA getenv("GCJ_PROPERTIES"). */
#undef DISABLE_GETENV_PROPERTIES
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ /* Define if java.net native functions should be stubbed out. */
#undef HAVE_ALLOCA_H #undef DISABLE_JAVA_NET
/* Define if you have a working `mmap' system call. */ /* Define if we should ignore arguments to main(). */
#undef HAVE_MMAP #undef DISABLE_MAIN_ARGS
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */ /* Define if you're running eCos. */
#undef HAVE_SYS_WAIT_H #undef ECOS
/* Define if your struct tm has tm_zone. */ /* Define if you are using JVMPI. */
#undef HAVE_TM_ZONE #undef ENABLE_JVMPI
/* Define if you don't have tm_zone but do have the external array /* Short GCJ version ID */
tzname. */ #undef GCJVERSION
#undef HAVE_TZNAME
/* If using the C implementation of alloca, define if you know the /* Define if gethostbyaddr_r returns 'int'. */
direction of stack growth for your system; otherwise it will be #undef GETHOSTBYADDR_R_RETURNS_INT
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses /* Define if gethostbyname_r returns 'int'. */
STACK_DIRECTION < 0 => grows toward lower addresses #undef GETHOSTBYNAME_R_RETURNS_INT
STACK_DIRECTION = 0 => direction of growth unknown
/* Define to 1 if you have the `access' function. */
#undef HAVE_ACCESS
/* Define to 1 if you have `alloca', as a function or macro. */
#undef HAVE_ALLOCA
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/ */
#undef STACK_DIRECTION #undef HAVE_ALLOCA_H
/* Define if you have the ANSI C header files. */ /* Define to 1 if you have the <arpa/inet.h> header file. */
#undef STDC_HEADERS #undef HAVE_ARPA_INET_H
/* Define if your <sys/time.h> declares struct tm. */ /* Define if your platform has a working backtrace() function. */
#undef TM_IN_SYS_TIME #undef HAVE_BACKTRACE
/* Define if the X Window System is missing or not being used. */ /* Define if Boehm GC in use. */
#undef X_DISPLAY_MISSING #undef HAVE_BOEHM_GC
/* Define to `int' if `ssize_t' is not defined. */ /* Define if you have u_int32_t */
#undef ssize_t #undef HAVE_BSD_INT32_DEFINED
/* Define if you have the access function. */ /* Define to 1 if you have the <bstring.h> header file. */
#undef HAVE_ACCESS #undef HAVE_BSTRING_H
/* Define if you have the chmod function. */ /* Define to 1 if you have the `chmod' function. */
#undef HAVE_CHMOD #undef HAVE_CHMOD
/* Define if you have the execvp function. */ /* Define to 1 if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define if you have dladdr() */
#undef HAVE_DLADDR
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define if dlopen is available */
#undef HAVE_DLOPEN
/* Define to 1 if you have the <execinfo.h> header file. */
#undef HAVE_EXECINFO_H
/* Define to 1 if you have the `execvp' function. */
#undef HAVE_EXECVP #undef HAVE_EXECVP
/* Define if you have the fork function. */ /* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK #undef HAVE_FORK
/* Define if you have the fstat function. */ /* Define to 1 if you have the `fstat' function. */
#undef HAVE_FSTAT #undef HAVE_FSTAT
/* Define if you have the fsync function. */ /* Define to 1 if you have the `fsync' function. */
#undef HAVE_FSYNC #undef HAVE_FSYNC
/* Define if you have the ftime function. */ /* Define to 1 if you have the `ftime' function. */
#undef HAVE_FTIME #undef HAVE_FTIME
/* Define if you have the ftruncate function. */ /* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE #undef HAVE_FTRUNCATE
/* Define if you have the getcwd function. */ /* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD #undef HAVE_GETCWD
/* Define if you have the gethostbyaddr_r function. */ /* Define if you have the 'gethostbyaddr_r' function. */
#undef HAVE_GETHOSTBYADDR_R #undef HAVE_GETHOSTBYADDR_R
/* Define if you have the gethostbyname_r function. */ /* Define if you have the 'gethostbyname_r' function. */
#undef HAVE_GETHOSTBYNAME_R #undef HAVE_GETHOSTBYNAME_R
/* Define if you have the gethostname function. */ /* Define if you have the 'gethostname' function. */
#undef HAVE_GETHOSTNAME #undef HAVE_GETHOSTNAME
/* Define if you have the getpagesize function. */ /* Define if gethostname is declared in <unistd.h>. */
#undef HAVE_GETHOSTNAME_DECL
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE #undef HAVE_GETPAGESIZE
/* Define if you have the getpwuid_r function. */ /* Define to 1 if you have the `getpwuid_r' function. */
#undef HAVE_GETPWUID_R #undef HAVE_GETPWUID_R
/* Define if you have the gettimeofday function. */ /* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY #undef HAVE_GETTIMEOFDAY
/* Define if you have the gmtime_r function. */ /* Define to 1 if you have the `gmtime_r' function. */
#undef HAVE_GMTIME_R #undef HAVE_GMTIME_R
/* Define if you have the inet_addr function. */ /* Define if you have the iconv() function. */
#undef HAVE_ICONV
/* Define if inet6 structures are defined in netinet/in.h. */
#undef HAVE_INET6
/* Define to 1 if you have the `inet_addr' function. */
#undef HAVE_INET_ADDR #undef HAVE_INET_ADDR
/* Define if you have the inet_aton function. */ /* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON #undef HAVE_INET_ATON
/* Define if you have the inet_ntoa function. */ /* Define to 1 if you have the `inet_ntoa' function. */
#undef HAVE_INET_NTOA #undef HAVE_INET_NTOA
/* Define if you have the inet_pton function. */ /* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON #undef HAVE_INET_PTON
/* Define if you have the ioctl function. */ /* Define if you have int32_t and uint32_t. */
#undef HAVE_INT32_DEFINED
/* Define if <inttypes.h> is available */
#undef HAVE_INTTYPES_H
/* Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h. */
#undef HAVE_IN_ADDR_T
/* Define to 1 if you have the `ioctl' function. */
#undef HAVE_IOCTL #undef HAVE_IOCTL
/* Define if you have the localtime_r function. */ /* Define to 1 if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H
/* Define if your <locale.h> file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* Define is you have 'localtime' in <time.h> */
#undef HAVE_LOCALTIME
/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R #undef HAVE_LOCALTIME_R
/* Define if you have the memcpy function. */ /* Define to 1 if you have the `memcpy' function. */
#undef HAVE_MEMCPY #undef HAVE_MEMCPY
/* Define if you have the memmove function. */ /* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE #undef HAVE_MEMMOVE
/* Define if you have the mkdir function. */ /* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR #undef HAVE_MKDIR
/* Define if you have the nl_langinfo function. */ /* Define is you have 'mktime' in <time.h> */
#undef HAVE_MKTIME
/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define to 1 if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* Define to 1 if you have the <net/if.h> header file. */
#undef HAVE_NET_IF_H
/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO #undef HAVE_NL_LANGINFO
/* Define if you have the open function. */ /* Define to 1 if you have the `open' function. */
#undef HAVE_OPEN #undef HAVE_OPEN
/* Define if you have the opendir function. */ /* Define to 1 if you have the `opendir' function. */
#undef HAVE_OPENDIR #undef HAVE_OPENDIR
/* Define if you have the pipe function. */ /* Define to 1 if you have the `pipe' function. */
#undef HAVE_PIPE #undef HAVE_PIPE
/* Define if you have the pthread_mutexattr_setkind_np function. */ /* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE
/* Define if using POSIX threads that have the mutexattr functions. */
#undef HAVE_PTHREAD_MUTEXATTR_INIT
/* Define to 1 if you have the `pthread_mutexattr_setkind_np' function. */
#undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP #undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP
/* Define if you have the pthread_mutexattr_settype function. */ /* Define to 1 if you have the `pthread_mutexattr_settype' function. */
#undef HAVE_PTHREAD_MUTEXATTR_SETTYPE #undef HAVE_PTHREAD_MUTEXATTR_SETTYPE
/* Define if you have the readdir_r function. */ /* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
/* Define to 1 if you have the `readdir_r' function. */
#undef HAVE_READDIR_R #undef HAVE_READDIR_R
/* Define if you have the realpath function. */ /* Define to 1 if you have the `realpath' function. */
#undef HAVE_REALPATH #undef HAVE_REALPATH
/* Define if you have the rename function. */ /* Define to 1 if you have the `rename' function. */
#undef HAVE_RENAME #undef HAVE_RENAME
/* Define if you have the rmdir function. */ /* Define to 1 if you have the `rmdir' function. */
#undef HAVE_RMDIR #undef HAVE_RMDIR
/* Define if you have the sched_yield function. */ /* Define to 1 if you have the `sched_yield' function. */
#undef HAVE_SCHED_YIELD #undef HAVE_SCHED_YIELD
/* Define if you have the select function. */ /* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT #undef HAVE_SELECT
/* Define if you have the setlocale function. */ /* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE #undef HAVE_SETLOCALE
/* Define if you have the sigaction function. */ /* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION #undef HAVE_SIGACTION
/* Define if you have the sleep function. */ /* Define to 1 if you have the `sleep' function. */
#undef HAVE_SLEEP #undef HAVE_SLEEP
/* Define if you have the stat function. */ /* Define it socklen_t typedef is in sys/socket.h. */
#undef HAVE_STAT #undef HAVE_SOCKLEN_T
/* Define if you have the strerror function. */
#undef HAVE_STRERROR
/* Define if you have the time function. */
#undef HAVE_TIME
/* Define if you have the uname function. */
#undef HAVE_UNAME
/* Define if you have the unlink function. */
#undef HAVE_UNLINK
/* Define if you have the usleep function. */
#undef HAVE_USLEEP
/* Define if you have the utime function. */
#undef HAVE_UTIME
/* Define if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
/* Define if you have the <bstring.h> header file. */
#undef HAVE_BSTRING_H
/* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define if you have the <execinfo.h> header file. */ /* Define to 1 if you have the `stat' function. */
#undef HAVE_EXECINFO_H #undef HAVE_STAT
/* Define if you have the <fcntl.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_FCNTL_H #undef HAVE_STDINT_H
/* Define if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_STDLIB_H
/* Define if you have the <langinfo.h> header file. */ /* Define to 1 if you have the `strerror' function. */
#undef HAVE_LANGINFO_H #undef HAVE_STRERROR
/* Define if you have the <locale.h> header file. */ /* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_LOCALE_H #undef HAVE_STRINGS_H
/* Define if you have the <net/if.h> header file. */ /* Define to 1 if you have the <string.h> header file. */
#undef HAVE_NET_IF_H #undef HAVE_STRING_H
/* Define if you have the <netdb.h> header file. */ /* Define if struct hostent_data is defined in netdb.h */
#undef HAVE_NETDB_H #undef HAVE_STRUCT_HOSTENT_DATA
/* Define if you have the <netinet/in.h> header file. */ /* Define if struct ipv6_mreq is defined in netinet/in.h. */
#undef HAVE_NETINET_IN_H #undef HAVE_STRUCT_IPV6_MREQ
/* Define if you have the <pwd.h> header file. */ /* Define if struct ip_mreq is defined in netinet/in.h. */
#undef HAVE_PWD_H #undef HAVE_STRUCT_IP_MREQ
/* Define if you have the <stdint.h> header file. */ /* Define to 1 if `tm_zone' is member of `struct tm'. */
#undef HAVE_STDINT_H #undef HAVE_STRUCT_TM_TM_ZONE
/* Define if you have the <sys/config.h> header file. */ /* Define to 1 if you have the <sys/config.h> header file. */
#undef HAVE_SYS_CONFIG_H #undef HAVE_SYS_CONFIG_H
/* Define if you have the <sys/filio.h> header file. */ /* Define to 1 if you have the <sys/filio.h> header file. */
#undef HAVE_SYS_FILIO_H #undef HAVE_SYS_FILIO_H
/* Define if you have the <sys/ioctl.h> header file. */ /* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H #undef HAVE_SYS_IOCTL_H
/* Define if you have the <sys/select.h> header file. */ /* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H #undef HAVE_SYS_SELECT_H
/* Define if you have the <sys/socket.h> header file. */ /* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H #undef HAVE_SYS_SOCKET_H
/* Define if you have the <sys/stat.h> header file. */ /* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H #undef HAVE_SYS_STAT_H
/* Define if you have the <sys/time.h> header file. */ /* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H #undef HAVE_SYS_TIME_H
/* Define if you have the <sys/types.h> header file. */ /* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H #undef HAVE_SYS_TYPES_H
/* Define if you have the <unistd.h> header file. */ /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_UNISTD_H #undef HAVE_SYS_WAIT_H
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION
/* Define if libltdl is in use. */
#undef USE_LTDL
/* Define if system properties shouldn't be read from getenv(GCJ_PROPERTIES). */
#undef DISABLE_GETENV_PROPERTIES
/* Define if we should ignore arguments to main(). */
#undef DISABLE_MAIN_ARGS
/* Define if MinGW libgcj uses the Windows UNICODE OS API. */
#undef MINGW_LIBGCJ_UNICODE
/* Define if if the synchronization code should try to avoid pthread_self calls by caching thread IDs in a hashtable. */
#undef SLOW_PTHREAD_SELF
/* Define this if you want runtime debugging enabled. */
#undef DEBUG
/* Define if you want a bytecode interpreter. */
#undef INTERPRETER
/* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef SJLJ_EXCEPTIONS
/* Define if java.net native functions should be stubbed out. */
#undef DISABLE_JAVA_NET
/* Define if we're to use libffi. */
#undef USE_LIBFFI
/* Define if you are using JVMPI. */ /* Define to 1 if you have the `time' function. */
#undef ENABLE_JVMPI #undef HAVE_TIME
/* Indicate that linker is not able to 8-byte align static data */ /* Define if global 'timezone' exists. */
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS #undef HAVE_TIMEZONE
/* Define if you're running eCos. */ /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
#undef ECOS `HAVE_STRUCT_TM_TM_ZONE' instead. */
#undef HAVE_TM_ZONE
/* Define if you have int32_t and uint32_t. */ /* Define to 1 if you don't have `tm_zone' but do have the external array
#undef HAVE_INT32_DEFINED `tzname'. */
#undef HAVE_TZNAME
/* Define if you have int32_t and uint32_t. */ /* Define to 1 if you have the `uname' function. */
#undef HAVE_INT32_DEFINED #undef HAVE_UNAME
/* Define if you have u_int32_t */ /* Define if your platform has the global _timezone variable. */
#undef HAVE_BSD_INT32_DEFINED #undef HAVE_UNDERSCORE_TIMEZONE
/* Define if you have u_int32_t */ /* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_BSD_INT32_DEFINED #undef HAVE_UNISTD_H
/* Define is you have 'mktime' in <time.h> */ /* Define to 1 if you have the `unlink' function. */
#undef HAVE_MKTIME #undef HAVE_UNLINK
/* Define is you have 'localtime' in <time.h> */ /* Define to 1 if you have the `usleep' function. */
#undef HAVE_LOCALTIME #undef HAVE_USLEEP
/* Define if Boehm GC in use. */ /* Define if usleep is declared in <unistd.h>. */
#undef HAVE_BOEHM_GC #undef HAVE_USLEEP_DECL
/* Define if using POSIX threads on Linux. */ /* Define to 1 if you have the `utime' function. */
#undef LINUX_THREADS #undef HAVE_UTIME
/* Define if using POSIX threads that have the mutexattr functions. */ /* Define to 1 if you have the file `AC_File'. */
#undef HAVE_PTHREAD_MUTEXATTR_INIT #undef HAVE__PROC_SELF_EXE
/* Required define if using POSIX threads */ /* Define as const if the declaration of iconv() needs const. */
#undef _REENTRANT #undef ICONV_CONST
/* Required define if using POSIX threads */ /* Define if you want a bytecode interpreter. */
#undef _POSIX_PTHREAD_SEMANTICS #undef INTERPRETER
/* Define if hash synchronization is in use */ /* Define if hash synchronization is in use */
#undef JV_HASH_SYNCHRONIZATION #undef JV_HASH_SYNCHRONIZATION
/* Define if you have memmove. */ /* Define if <inttypes.h> is available */
#undef HAVE_MEMMOVE #undef JV_HAVE_INTTYPES_H
/* Define if you have memcpy. */
#undef HAVE_MEMCPY
/* Define if you have strerror. */
#undef HAVE_STRERROR
/* Define if you have time. */
#undef HAVE_TIME
/* Define if you have the 'gmtime_r' function */
#undef HAVE_GMTIME_R
/* Define if you have the 'localtime_r' function. */ /* Indicate that linker is not able to 8-byte align static data */
#undef HAVE_LOCALTIME_R #undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
/* Define if usleep is declared in <unistd.h>. */ /* Define if using POSIX threads on Linux. */
#undef HAVE_USLEEP_DECL #undef LINUX_THREADS
/* Define if using POSIX threads that have the mutexattr functions. */ /* Define if MinGW libgcj uses the Windows UNICODE OS API. */
#undef HAVE_PTHREAD_MUTEXATTR_INIT #undef MINGW_LIBGCJ_UNICODE
/* Define if getuid() and friends are missing. */ /* Define if getuid() and friends are missing. */
#undef NO_GETUID #undef NO_GETUID
/* Define if your platform has a working backtrace() function. */ /* Name of package */
#undef HAVE_BACKTRACE #undef PACKAGE
/* Define if your platform has a working backtrace() function. */
#undef HAVE_BACKTRACE
/* Define if your platform has a working backtrace() function. */
#undef HAVE_BACKTRACE
/* Define if you have dladdr() */
#undef HAVE_DLADDR
/* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE
/* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE
/* Define if you have the iconv() function. */
#undef HAVE_ICONV
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
/* Define if your <locale.h> file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
/* Define if you have the 'gethostbyname_r' function. */
#undef HAVE_GETHOSTBYNAME_R
/* Define if gethostbyname_r returns 'int'. */
#undef GETHOSTBYNAME_R_RETURNS_INT
/* Required define if using POSIX threads */
#undef _REENTRANT
/* Define if struct hostent_data is defined in netdb.h */ /* Define to the address where bug reports for this package should be sent. */
#undef HAVE_STRUCT_HOSTENT_DATA #undef PACKAGE_BUGREPORT
/* Define if you have the 'gethostbyaddr_r' function. */ /* Define to the full name of this package. */
#undef HAVE_GETHOSTBYADDR_R #undef PACKAGE_NAME
/* Define if gethostbyaddr_r returns 'int'. */ /* Define to the full name and version of this package. */
#undef GETHOSTBYADDR_R_RETURNS_INT #undef PACKAGE_STRING
/* Define if you have the 'gethostname' function. */ /* Define to the one symbol short name of this package. */
#undef HAVE_GETHOSTNAME #undef PACKAGE_TARNAME
/* Define if gethostname is declared in <unistd.h>. */ /* Define to the version of this package. */
#undef HAVE_GETHOSTNAME_DECL #undef PACKAGE_VERSION
/* Define if usleep is declared in <unistd.h>. */
#undef HAVE_USLEEP_DECL
/* Define if pthread_mutex_t has m_count member. */ /* Define if pthread_mutex_t has m_count member. */
#undef PTHREAD_MUTEX_HAVE_M_COUNT #undef PTHREAD_MUTEX_HAVE_M_COUNT
...@@ -425,42 +399,50 @@ ...@@ -425,42 +399,50 @@
/* Define if pthread_mutex_t has __m_count member. */ /* Define if pthread_mutex_t has __m_count member. */
#undef PTHREAD_MUTEX_HAVE___M_COUNT #undef PTHREAD_MUTEX_HAVE___M_COUNT
/* Define if dlopen is available */
#undef HAVE_DLOPEN
/* The number of bytes in type void * */ /* The number of bytes in type void * */
#undef SIZEOF_VOID_P #undef SIZEOF_VOID_P
/* Short GCJ version ID */ /* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef GCJVERSION #undef SJLJ_EXCEPTIONS
/* Define if <inttypes.h> is available */ /* Define if if the synchronization code should try to avoid pthread_self
#undef HAVE_INTTYPES_H calls by caching thread IDs in a hashtable. */
#undef SLOW_PTHREAD_SELF
/* Define if <inttypes.h> is available */ /* If using the C implementation of alloca, define if you know the
#undef JV_HAVE_INTTYPES_H direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h. */ /* Define to 1 if you have the ANSI C header files. */
#undef HAVE_IN_ADDR_T #undef STDC_HEADERS
/* Define if struct ip_mreq is defined in netinet/in.h. */ /* Define if struct tm has tm_gmtoff field. */
#undef HAVE_STRUCT_IP_MREQ #undef STRUCT_TM_HAS_GMTOFF
/* Define if struct ipv6_mreq is defined in netinet/in.h. */ /* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef HAVE_STRUCT_IPV6_MREQ #undef TM_IN_SYS_TIME
/* Define if inet6 structures are defined in netinet/in.h. */ /* Define if we're to use libffi. */
#undef HAVE_INET6 #undef USE_LIBFFI
/* Define it socklen_t typedef is in sys/socket.h. */ /* Define if libltdl is in use. */
#undef HAVE_SOCKLEN_T #undef USE_LTDL
/* Define if struct tm has tm_gmtoff field. */ /* Version number of package */
#undef STRUCT_TM_HAS_GMTOFF #undef VERSION
/* Define if global 'timezone' exists. */ /* Define to 1 if the X Window System is missing or not being used. */
#undef HAVE_TIMEZONE #undef X_DISPLAY_MISSING
/* Define if your platform has the global _timezone variable. */ /* Required define if using POSIX threads */
#undef HAVE_UNDERSCORE_TIMEZONE #undef _POSIX_PTHREAD_SEMANTICS
/* Required define if using POSIX threads */
#undef _REENTRANT
/* Define to `int' if <sys/types.h> does not define. */
#undef ssize_t
// PosixProcess.java - Subclass of Process for POSIX systems. // PosixProcess.java - Subclass of Process for POSIX systems.
/* Copyright (C) 1998, 1999, 2004 Free Software Foundation
/* Copyright (C) 1998, 1999 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -11,76 +10,466 @@ details. */ ...@@ -11,76 +10,466 @@ details. */
package java.lang; package java.lang;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.IOException; import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/** /**
* @author Tom Tromey <tromey@cygnus.com> * @author Tom Tromey <tromey@cygnus.com>
* @date May 3, 1999 * @date May 3, 1999
* @author David Daney <ddaney@avtrex.com> Rewrote using
* ProcessManager
*/ */
// This is entirely internal to our implementation. // This is entirely internal to our implementation.
// This file is copied to `ConcreteProcess.java' before compilation. // This file is copied to `ConcreteProcess.java' before compilation.
// Hence the class name apparently does not match the file name. // Hence the class name apparently does not match the file name.
final class ConcreteProcess extends Process final class ConcreteProcess extends Process
{ {
public native void destroy (); static class ProcessManager extends Thread
{
/**
* A list of {@link ConcreteProcess ConcreteProcesses} to be
* started. The queueLock object is used as the lock Object
* for all process related operations. To avoid dead lock
* ensure queueLock is obtained before ConcreteProcess.
*/
List queue = new LinkedList();
private Map pidToProcess = new HashMap();
private boolean ready = false;
private long reaperPID;
ProcessManager()
{
super("ProcessManager");
// Don't keep the (main) process from exiting on our account.
this.setDaemon(true);
}
/**
* Get the ConcreteProcess object with the given pid and
* remove it from the map. This method is called from the
* native code for {@link #reap()). The mapping is removed so
* the ConcreteProcesses can be GCed after they terminate.
*
* @param p The pid of the process.
*/
private ConcreteProcess removeProcessFromMap(long p)
{
return (ConcreteProcess) pidToProcess.remove(new Long(p));
}
/**
* Put the given ConcreteProcess in the map using the Long
* value of its pid as the key.
*
* @param p The ConcreteProcess.
*/
void addProcessToMap(ConcreteProcess p)
{
pidToProcess.put(new Long(p.pid), p);
}
/**
* Queue up the ConcreteProcess and awake the ProcessManager.
* The ProcessManager will start the ConcreteProcess from its
* thread so it can be reaped when it terminates.
*
* @param p The ConcreteProcess.
*/
void startExecuting(ConcreteProcess p)
{
synchronized (queueLock)
{
queue.add(p);
signalReaper(); // If blocked in waitForSignal().
queueLock.notifyAll(); // If blocked in wait();
}
}
/**
* Block until the ProcessManager thread is ready to accept
* commands.
*/
void waitUntilReady()
{
synchronized (this)
{
try
{
while (! ready)
wait();
}
catch (InterruptedException ie)
{
// Ignore.
}
}
}
/**
* Main Process starting/reaping loop.
*/
public void run()
{
init();
// Now ready to accept requests.
synchronized (this)
{
ready = true;
this.notifyAll();
}
public int exitValue () for (;;)
{ {
if (! hasExited) try
{
synchronized (queueLock)
{
boolean haveMoreChildren = reap();
if (! haveMoreChildren && queue.size() == 0)
{
// This reaper thread could exit, but we
// keep it alive for a while in case
// someone wants to start more Processes.
try
{
queueLock.wait(1000L);
if (queue.size() == 0)
{
processManager = null;
return; // Timed out.
}
}
catch (InterruptedException ie)
{
// Ignore and exit the thread.
return;
}
}
while (queue.size() > 0)
{
ConcreteProcess p = (ConcreteProcess) queue.remove(0);
p.spawn(this);
}
}
// Wait for a SIGCHLD from either an exiting
// process or the startExecuting() method. This
// is done outside of the synchronized block to
// allow other threads to enter and submit more
// jobs.
waitForSignal();
}
catch (Exception ex)
{
ex.printStackTrace(System.err);
}
}
}
/**
* Setup native signal handlers and other housekeeping things.
*
*/
private native void init();
/**
* Block waiting for SIGCHLD.
*
*/
private native void waitForSignal();
/**
* Try to reap as many children as possible without blocking.
*
* @return true if more live children exist.
*
*/
private native boolean reap();
/**
* Send SIGCHLD to the reaper thread.
*/
private native void signalReaper();
}
public void destroy()
{
// Synchronized on the queueLock. This ensures that the reaper
// thread cannot be doing a wait() on the child.
// Otherwise there would be a race where the OS could
// create a process with the same pid between the wait()
// and the update of the state which would cause a kill to
// the wrong process.
synchronized (queueLock)
{
synchronized (this)
{
// If there is no ProcessManager we cannot kill.
if (state != STATE_TERMINATED)
{
if (processManager == null)
throw new InternalError();
nativeDestroy();
}
}
}
}
private native void nativeDestroy();
public int exitValue()
{
synchronized (this)
{
if (state != STATE_TERMINATED)
throw new IllegalThreadStateException("Process has not exited"); throw new IllegalThreadStateException("Process has not exited");
}
return status; return status;
} }
public InputStream getErrorStream () /**
* Called by native code when process exits.
*
* Already synchronized (this). Close any streams that we can to
* conserve file descriptors.
*
* The outputStream can be closed as any future writes will
* generate an IOException due to EPIPE.
*
* The inputStream and errorStream can only be closed if the user
* has not obtained a reference to them AND they have no bytes
* available. Since the process has terminated they will never have
* any more data available and can safely be replaced by
* EOFInputStreams.
*/
void processTerminationCleanup()
{
try
{
outputStream.close();
}
catch (IOException ioe)
{
// Ignore.
}
try
{
if (returnedErrorStream == null && errorStream.available() == 0)
{ {
return errorStream; errorStream.close();
errorStream = null;
}
}
catch (IOException ioe)
{
// Ignore.
}
try
{
if (returnedInputStream == null && inputStream.available() == 0)
{
inputStream.close();
inputStream = null;
}
}
catch (IOException ioe)
{
// Ignore.
}
} }
public InputStream getInputStream () public synchronized InputStream getErrorStream()
{ {
return inputStream; if (returnedErrorStream != null)
return returnedErrorStream;
if (errorStream == null)
returnedErrorStream = EOFInputStream.instance;
else
returnedErrorStream = errorStream;
return returnedErrorStream;
}
public synchronized InputStream getInputStream()
{
if (returnedInputStream != null)
return returnedInputStream;
if (inputStream == null)
returnedInputStream = EOFInputStream.instance;
else
returnedInputStream = inputStream;
return returnedInputStream;
} }
public OutputStream getOutputStream () public OutputStream getOutputStream()
{ {
return outputStream; return outputStream;
} }
public native int waitFor () throws InterruptedException; public int waitFor() throws InterruptedException
{
synchronized (this)
{
while (state != STATE_TERMINATED)
wait();
}
return status;
}
// This is used for actual initialization, as we can't write a /**
// native constructor. * Start this process running. This should only be called by the
public native void startProcess (String[] progarray, * ProcessManager.
String[] envp, *
File dir) * @param pm The ProcessManager that made the call.
throws IOException; */
void spawn(ProcessManager pm)
{
synchronized (this)
{
// Do the fork/exec magic.
nativeSpawn();
// There is no race with reap() in the pidToProcess map
// because this is always called from the same thread
// doing the reaping.
pm.addProcessToMap(this);
state = STATE_RUNNING;
// Notify anybody waiting on state change.
this.notifyAll();
}
}
/**
* Do the fork and exec.
*/
private native void nativeSpawn();
// This file is copied to `ConcreteProcess.java' before // This file is copied to `ConcreteProcess.java' before
// compilation. Hence the constructor name apparently does not // compilation. Hence the constructor name apparently does not
// match the file name. // match the file name.
public ConcreteProcess (String[] progarray, ConcreteProcess(String[] progarray, String[] envp, File dir)
String[] envp,
File dir)
throws IOException throws IOException
{ {
startProcess (progarray, envp, dir); // Check to ensure there is something to run, and avoid
// dereferencing null pointers in native code.
if (progarray[0] == null)
throw new NullPointerException();
this.progarray = progarray;
this.envp = envp;
this.dir = dir;
// Start a ProcessManager if there is not one already running.
synchronized (queueLock)
{
if (processManager == null)
{
processManager = new ProcessManager();
processManager.start();
processManager.waitUntilReady();
}
// Queue this ConcreteProcess for starting by the ProcessManager.
processManager.startExecuting(this);
}
// Wait until ProcessManager has started us.
synchronized (this)
{
while (state == STATE_WAITING_TO_START)
{
try
{
wait();
}
catch (InterruptedException ie)
{
// FIXME: What to do when interrupted while blocking in a constructor?
// Ignore.
}
}
}
// If there was a problem, re-throw it.
if (exception != null)
{
if (exception instanceof IOException)
{
IOException ioe = new IOException(exception.toString());
ioe.initCause(exception);
throw ioe;
} }
// The process id. This is cast to a pid_t on the native side. // Not an IOException. Something bad happened.
InternalError ie = new InternalError(exception.toString());
ie.initCause(exception);
throw ie;
}
// If we get here, all is well, the Process has started.
}
private String[] progarray;
private String[] envp;
private File dir;
/** Set by the ProcessManager on problems starting. */
private Throwable exception;
/** The process id. This is cast to a pid_t on the native side. */
private long pid; private long pid;
// True when child has exited. // FIXME: Why doesn't the friend declaration in ConcreteProcess.h
private boolean hasExited; // allow ConcreteProcess$ProcessManager native code access these
// when they are private?
/** Before the process is forked. */
static final int STATE_WAITING_TO_START = 0;
/** After the fork. */
static final int STATE_RUNNING = 1;
/** After exit code has been collected. */
static final int STATE_TERMINATED = 2;
/** One of STATE_WAITING_TO_START, STATE_RUNNING, STATE_TERMINATED. */
int state;
// The exit status, if the child has exited. /** The exit status, if the child has exited. */
private int status; int status;
// The streams. /** The streams. */
private InputStream errorStream; private InputStream errorStream;
private InputStream inputStream; private InputStream inputStream;
private OutputStream outputStream; private OutputStream outputStream;
/** InputStreams obtained by the user. Not null indicates that the
* user has obtained the stream.
*/
private InputStream returnedErrorStream;
private InputStream returnedInputStream;
/**
* Lock Object for all processManager related locking.
*/
private static Object queueLock = new Object();
private static ProcessManager processManager;
static class EOFInputStream extends InputStream
{
static EOFInputStream instance = new EOFInputStream();
public int read()
{
return -1;
}
}
} }
/* Runtime.java -- access to the VM process /* Runtime.java -- access to the VM process
Copyright (C) 1998, 2002, 2003 Free Software Foundation Copyright (C) 1998, 2002, 2003, 2004 Free Software Foundation
This file is part of GNU Classpath. This file is part of GNU Classpath.
...@@ -734,8 +734,11 @@ public class Runtime ...@@ -734,8 +734,11 @@ public class Runtime
* @param dir the directory to use, may be null * @param dir the directory to use, may be null
* @return the newly created process * @return the newly created process
* @throws NullPointerException if cmd or env have null elements * @throws NullPointerException if cmd or env have null elements
* @throws IOException if the exec fails
*/ */
native Process execInternal(String[] cmd, String[] env, File dir); native Process execInternal(String[] cmd, String[] env, File dir)
throws IOException;
/** /**
* Get the system properties. This is done here, instead of in System, * Get the system properties. This is done here, instead of in System,
......
...@@ -21,12 +21,16 @@ details. */ ...@@ -21,12 +21,16 @@ details. */
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <gcj/cni.h> #include <gcj/cni.h>
#include <jvm.h> #include <jvm.h>
#include <java/lang/ConcreteProcess$ProcessManager.h>
#include <java/lang/ConcreteProcess.h> #include <java/lang/ConcreteProcess.h>
#include <java/lang/IllegalThreadStateException.h> #include <java/lang/IllegalThreadStateException.h>
#include <java/lang/InternalError.h>
#include <java/lang/InterruptedException.h> #include <java/lang/InterruptedException.h>
#include <java/lang/NullPointerException.h> #include <java/lang/NullPointerException.h>
#include <java/lang/Thread.h> #include <java/lang/Thread.h>
...@@ -42,44 +46,6 @@ using gnu::java::nio::channels::FileChannelImpl; ...@@ -42,44 +46,6 @@ using gnu::java::nio::channels::FileChannelImpl;
extern char **environ; extern char **environ;
void
java::lang::ConcreteProcess::destroy (void)
{
if (! hasExited)
{
// Really kill it.
kill ((pid_t) pid, SIGKILL);
}
}
jint
java::lang::ConcreteProcess::waitFor (void)
{
if (! hasExited)
{
int wstat;
int r = waitpid ((pid_t) pid, &wstat, 0);
if (r == -1)
{
if (java::lang::Thread::interrupted())
throw new InterruptedException (JvNewStringLatin1 (strerror
(errno)));
}
else
{
hasExited = true;
if (WIFEXITED (wstat))
status = WEXITSTATUS (wstat);
else
status = -1;
}
}
return status;
}
static char * static char *
new_string (jstring string) new_string (jstring string)
{ {
...@@ -120,14 +86,134 @@ myclose (int &fd) ...@@ -120,14 +86,134 @@ myclose (int &fd)
fd = -1; fd = -1;
} }
// There has to be a signal handler in order to be able to
// sigwait() on SIGCHLD. The information passed is ignored as it
// will be recovered by the waitpid() call.
static void
sigchld_handler (int)
{
// Ignore.
}
// Get ready to enter the main reaper thread loop.
void void
java::lang::ConcreteProcess::startProcess (jstringArray progarray, java::lang::ConcreteProcess$ProcessManager::init ()
jstringArray envp,
java::io::File *dir)
{ {
using namespace java::io; using namespace java::lang;
// Remenber our PID so other threads can kill us.
reaperPID = (jlong) pthread_self ();
// SIGCHLD is blocked in all threads in posix-threads.cc.
// Setup the SIGCHLD handler.
struct sigaction sa;
memset (&sa, 0, sizeof (sa));
sa.sa_handler = sigchld_handler;
// We only want signals when the things exit.
sa.sa_flags = SA_NOCLDSTOP;
if (-1 == sigaction (SIGCHLD, &sa, NULL))
goto error;
// All OK.
return;
error:
throw new InternalError (JvNewStringUTF (strerror (errno)));
}
void
java::lang::ConcreteProcess$ProcessManager::waitForSignal ()
{
using namespace java::lang;
sigset_t mask;
// Wait for SIGCHLD
sigemptyset (&mask);
sigaddset (&mask, SIGCHLD);
int sig;
int c = sigwait (&mask, &sig);
if (c != 0)
goto error;
hasExited = false; // All OK.
return;
error:
throw new InternalError (JvNewStringUTF (strerror (c)));
}
jboolean java::lang::ConcreteProcess$ProcessManager::reap ()
{
using namespace java::lang;
pid_t pid;
for (;;)
{
// Get the return code from a dead child process.
int status;
pid = waitpid ((pid_t) - 1, &status, WNOHANG);
if (pid == -1)
{
if (errno == ECHILD)
return false;
else
goto error;
}
if (pid == 0)
return true; // No children to wait for.
// Look up the process in our pid map.
ConcreteProcess * process = removeProcessFromMap ((jlong) pid);
if (process)
{
JvSynchronize sync (process);
process->status = WIFEXITED (status) ? WEXITSTATUS (status) : -1;
process->state = ConcreteProcess::STATE_TERMINATED;
process->processTerminationCleanup();
process->notifyAll ();
}
else
{
// Unknown child. How did this happen?
fprintf (stderr, "Reaped unknown child pid = %ld\n", (long) pid);
}
}
error:
throw new InternalError (JvNewStringUTF (strerror (errno)));
}
void
java::lang::ConcreteProcess$ProcessManager::signalReaper ()
{
int c = pthread_kill ((pthread_t) reaperPID, SIGCHLD);
if (c == 0)
return;
// pthread_kill() failed.
throw new InternalError (JvNewStringUTF (strerror (c)));
}
void
java::lang::ConcreteProcess::nativeDestroy ()
{
int c = kill ((pid_t) pid, SIGKILL);
if (c == 0)
return;
// kill() failed.
throw new InternalError (JvNewStringUTF (strerror (errno)));
}
void
java::lang::ConcreteProcess::nativeSpawn ()
{
using namespace java::io;
// Initialize all locals here to make cleanup simpler. // Initialize all locals here to make cleanup simpler.
char **args = NULL; char **args = NULL;
...@@ -142,7 +228,6 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray, ...@@ -142,7 +228,6 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
errp[1] = -1; errp[1] = -1;
msgp[0] = -1; msgp[0] = -1;
msgp[1] = -1; msgp[1] = -1;
java::lang::Throwable *exc = NULL;
errorStream = NULL; errorStream = NULL;
inputStream = NULL; inputStream = NULL;
outputStream = NULL; outputStream = NULL;
...@@ -150,8 +235,7 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray, ...@@ -150,8 +235,7 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
try try
{ {
// Transform arrays to native form. // Transform arrays to native form.
args = (char **) _Jv_Malloc ((progarray->length + 1) args = (char **) _Jv_Malloc ((progarray->length + 1) * sizeof (char *));
* sizeof (char *));
// Initialize so we can gracefully recover. // Initialize so we can gracefully recover.
jstring *elts = elements (progarray); jstring *elts = elements (progarray);
...@@ -185,24 +269,32 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray, ...@@ -185,24 +269,32 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
// status. // status.
if (pipe (inp) || pipe (outp) || pipe (errp) || pipe (msgp) if (pipe (inp) || pipe (outp) || pipe (errp) || pipe (msgp)
|| fcntl (msgp[1], F_SETFD, FD_CLOEXEC)) || fcntl (msgp[1], F_SETFD, FD_CLOEXEC))
throw new IOException (JvNewStringLatin1 (strerror (errno))); throw new IOException (JvNewStringUTF (strerror (errno)));
// We create the streams before forking. Otherwise if we had an // We create the streams before forking. Otherwise if we had an
// error while creating the streams we would have run the child // error while creating the streams we would have run the child
// with no way to communicate with it. // with no way to communicate with it.
errorStream = new FileInputStream (new FileChannelImpl(errp[0], FileChannelImpl::READ)); errorStream =
inputStream = new FileInputStream (new FileChannelImpl(inp[0], FileChannelImpl::READ)); new FileInputStream (new
outputStream = new FileOutputStream (new FileChannelImpl(outp[1], FileChannelImpl::WRITE)); FileChannelImpl (errp[0], FileChannelImpl::READ));
inputStream =
new FileInputStream (new
FileChannelImpl (inp[0], FileChannelImpl::READ));
outputStream =
new FileOutputStream (new FileChannelImpl (outp[1],
FileChannelImpl::WRITE));
// We don't use vfork() because that would cause the local // We don't use vfork() because that would cause the local
// environment to be set by the child. // environment to be set by the child.
if ((pid = (jlong) fork ()) == -1)
throw new IOException (JvNewStringLatin1 (strerror (errno)));
if (pid == 0) // Use temporary for fork result to avoid dirtying an extra page.
pid_t pid_tmp;
if ((pid_tmp = fork ()) == -1)
throw new IOException (JvNewStringUTF (strerror (errno)));
if (pid_tmp == 0)
{ {
// Child process, so remap descriptors, chdir and exec. // Child process, so remap descriptors, chdir and exec.
if (envp) if (envp)
{ {
// Preserve PATH and LD_LIBRARY_PATH unless specified // Preserve PATH and LD_LIBRARY_PATH unless specified
...@@ -212,16 +304,16 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray, ...@@ -212,16 +304,16 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
environ = env; environ = env;
if (path_val && getenv ("PATH") == NULL) if (path_val && getenv ("PATH") == NULL)
{ {
char *path_env = (char *) _Jv_Malloc (strlen (path_val) char *path_env =
+ 5 + 1); (char *) _Jv_Malloc (strlen (path_val) + 5 + 1);
strcpy (path_env, "PATH="); strcpy (path_env, "PATH=");
strcat (path_env, path_val); strcat (path_env, path_val);
putenv (path_env); putenv (path_env);
} }
if (ld_path_val && getenv ("LD_LIBRARY_PATH") == NULL) if (ld_path_val && getenv ("LD_LIBRARY_PATH") == NULL)
{ {
char *ld_path_env char *ld_path_env =
= (char *) _Jv_Malloc (strlen (ld_path_val) + 16 + 1); (char *) _Jv_Malloc (strlen (ld_path_val) + 16 + 1);
strcpy (ld_path_env, "LD_LIBRARY_PATH="); strcpy (ld_path_env, "LD_LIBRARY_PATH=");
strcat (ld_path_env, ld_path_val); strcat (ld_path_env, ld_path_val);
putenv (ld_path_env); putenv (ld_path_env);
...@@ -264,6 +356,8 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray, ...@@ -264,6 +356,8 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
// Parent. Close extra file descriptors and mark ours as // Parent. Close extra file descriptors and mark ours as
// close-on-exec. // close-on-exec.
pid = (jlong) pid_tmp;
myclose (outp[0]); myclose (outp[0]);
myclose (inp[1]); myclose (inp[1]);
myclose (errp[1]); myclose (errp[1]);
...@@ -272,9 +366,9 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray, ...@@ -272,9 +366,9 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
char c; char c;
int r = read (msgp[0], &c, 1); int r = read (msgp[0], &c, 1);
if (r == -1) if (r == -1)
throw new IOException (JvNewStringLatin1 (strerror (errno))); throw new IOException (JvNewStringUTF (strerror (errno)));
else if (r != 0) else if (r != 0)
throw new IOException (JvNewStringLatin1 (strerror (c))); throw new IOException (JvNewStringUTF (strerror (c)));
} }
catch (java::lang::Throwable *thrown) catch (java::lang::Throwable *thrown)
{ {
...@@ -324,15 +418,13 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray, ...@@ -324,15 +418,13 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
myclose (errp[1]); myclose (errp[1]);
myclose (msgp[1]); myclose (msgp[1]);
exc = thrown; exception = thrown;
} }
myclose (msgp[0]); myclose (msgp[0]);
cleanup (args, env, path); cleanup (args, env, path);
if (exc != NULL) if (exception == NULL)
throw exc;
else
{ {
fcntl (outp[1], F_SETFD, FD_CLOEXEC); fcntl (outp[1], F_SETFD, FD_CLOEXEC);
fcntl (inp[0], F_SETFD, FD_CLOEXEC); fcntl (inp[0], F_SETFD, FD_CLOEXEC);
......
// posix-threads.cc - interface between libjava and POSIX threads. // posix-threads.cc - interface between libjava and POSIX threads.
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation /* Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -34,6 +34,7 @@ details. */ ...@@ -34,6 +34,7 @@ details. */
#include <java/lang/System.h> #include <java/lang/System.h>
#include <java/lang/Long.h> #include <java/lang/Long.h>
#include <java/lang/OutOfMemoryError.h> #include <java/lang/OutOfMemoryError.h>
#include <java/lang/InternalError.h>
// This is used to implement thread startup. // This is used to implement thread startup.
struct starter struct starter
...@@ -332,6 +333,17 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio) ...@@ -332,6 +333,17 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
#endif #endif
} }
static void
block_sigchld()
{
sigset_t mask;
sigemptyset (&mask);
sigaddset (&mask, SIGCHLD);
int c = pthread_sigmask (SIG_BLOCK, &mask, NULL);
if (c != 0)
throw new java::lang::InternalError (JvNewStringUTF (strerror (c)));
}
void void
_Jv_ThreadRegister (_Jv_Thread_t *data) _Jv_ThreadRegister (_Jv_Thread_t *data)
{ {
...@@ -358,6 +370,8 @@ _Jv_ThreadRegister (_Jv_Thread_t *data) ...@@ -358,6 +370,8 @@ _Jv_ThreadRegister (_Jv_Thread_t *data)
_Jv_self_cache[current_index].high_sp_bits = BAD_HIGH_SP_VALUE; _Jv_self_cache[current_index].high_sp_bits = BAD_HIGH_SP_VALUE;
} }
# endif # endif
// Block SIGCHLD which is used in natPosixProcess.cc.
block_sigchld();
} }
void void
...@@ -403,6 +417,10 @@ _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, ...@@ -403,6 +417,10 @@ _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
return; return;
data->flags |= FLAG_START; data->flags |= FLAG_START;
// Block SIGCHLD which is used in natPosixProcess.cc.
// The current mask is inherited by the child thread.
block_sigchld();
param.sched_priority = thread->getPriority(); param.sched_priority = thread->getPriority();
pthread_attr_init (&attr); pthread_attr_init (&attr);
......
...@@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ ...@@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
PERL = @PERL@ PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@ PLATFORMOBJS = @PLATFORMOBJS@
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
STRIP = @STRIP@ STRIP = @STRIP@
SYSDEP_SOURCES = @SYSDEP_SOURCES@ SYSDEP_SOURCES = @SYSDEP_SOURCES@
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment