mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-10 21:41:14 +08:00
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
This commit is contained in:
parent
db151e9d83
commit
c58f29001d
@ -532,7 +532,8 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
|
||||
gnu/java/net/PlainSocketImpl$$SocketInputStream.h \
|
||||
gnu/java/net/PlainSocketImpl$$SocketOutputStream.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_install = $(ordinary_nat_headers)
|
||||
@ -642,6 +643,11 @@ gnu/java/nio/PipeImpl$$SourceChannelImpl.h: gnu/java/nio/PipeImpl.class
|
||||
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
|
||||
'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.
|
||||
extra_headers = java/lang/Object.h java/lang/Class.h
|
||||
|
||||
|
@ -125,6 +125,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORMOBJS = @PLATFORMOBJS@
|
||||
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
|
||||
RANLIB = @RANLIB@
|
||||
STRIP = @STRIP@
|
||||
SYSDEP_SOURCES = @SYSDEP_SOURCES@
|
||||
@ -506,7 +507,8 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
|
||||
gnu/java/net/PlainSocketImpl$$SocketInputStream.h \
|
||||
gnu/java/net/PlainSocketImpl$$SocketOutputStream.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)
|
||||
@ -5662,6 +5664,10 @@ gnu/java/nio/PipeImpl$$SourceChannelImpl.h: gnu/java/nio/PipeImpl.class
|
||||
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
|
||||
'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:
|
||||
@:
|
||||
|
||||
|
314
libjava/configure
vendored
314
libjava/configure
vendored
@ -310,7 +310,7 @@ ac_includes_default="\
|
||||
# include <unistd.h>
|
||||
#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=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
@ -994,7 +994,7 @@ esac
|
||||
else
|
||||
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
|
||||
fi
|
||||
cd "$ac_popdir"
|
||||
cd $ac_popdir
|
||||
done
|
||||
fi
|
||||
|
||||
@ -2215,7 +2215,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2273,7 +2274,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2389,7 +2391,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2443,7 +2446,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2488,7 +2492,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2532,7 +2537,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2716,7 +2722,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2774,7 +2781,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2845,7 +2853,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -2889,7 +2898,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -4324,7 +4334,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
|
||||
case $host in
|
||||
*-*-irix6*)
|
||||
# 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
|
||||
(eval $ac_compile) 2>&5
|
||||
ac_status=$?
|
||||
@ -4471,7 +4481,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -5053,7 +5064,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
|
||||
:
|
||||
else
|
||||
cat > conftest.$ac_ext << EOF
|
||||
#line 5056 "configure"
|
||||
#line 5067 "configure"
|
||||
struct S { ~S(); };
|
||||
void bar();
|
||||
void foo()
|
||||
@ -5187,6 +5198,7 @@ EXTRA_CC_FILES=
|
||||
|
||||
|
||||
PLATFORMOBJS=
|
||||
PLATFORM_INNER_NAT_HDRS=
|
||||
case "$TARGET_ECOS" in
|
||||
no) case "$host" in
|
||||
*mingw*)
|
||||
@ -5228,6 +5240,7 @@ fi
|
||||
PLATFORMNET=Posix
|
||||
PLATFORMOBJS=posix.lo
|
||||
PLATFORMH=posix.h
|
||||
PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@ -5244,6 +5257,7 @@ _ACEOF
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
ac_config_links="$ac_config_links include/platform.h:include/$PLATFORMH"
|
||||
|
||||
|
||||
@ -5683,12 +5697,9 @@ ZLIBSPEC=
|
||||
ZLIBTESTSPEC=
|
||||
|
||||
|
||||
|
||||
if test "x$ac_path_x_has_been_run" != xyes; then
|
||||
echo "$as_me:$LINENO: checking for X" >&5
|
||||
echo "$as_me:$LINENO: checking for X" >&5
|
||||
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.
|
||||
if test "${with_x+set}" = set; then
|
||||
@ -5781,7 +5792,7 @@ ac_x_header_dirs='
|
||||
/usr/openwin/share/include'
|
||||
|
||||
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.
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
@ -5860,7 +5871,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -5920,15 +5932,10 @@ else
|
||||
# Update the cache value to reflect the command line values.
|
||||
ac_cv_have_x="have_x=yes \
|
||||
ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
|
||||
# It might be that x_includes is empty (headers are found in the
|
||||
# standard search path. Then output the corresponding message
|
||||
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
|
||||
echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
|
||||
echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
|
||||
fi
|
||||
|
||||
fi
|
||||
if test "$no_x" = yes; then
|
||||
# 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
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6037,7 +6045,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6118,7 +6127,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6178,7 +6188,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6251,7 +6262,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6364,7 +6376,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6433,7 +6446,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6506,7 +6520,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6615,7 +6630,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6684,7 +6700,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6786,7 +6803,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6855,7 +6873,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -6957,7 +6976,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -7026,7 +7046,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -7110,7 +7131,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -7803,7 +7825,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -7913,7 +7936,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8027,7 +8051,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8134,7 +8159,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8241,7 +8267,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8349,7 +8376,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8459,7 +8487,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8524,7 +8553,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8694,7 +8724,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8763,7 +8794,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -8948,7 +8980,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9056,7 +9089,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9195,7 +9229,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9250,7 +9285,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9325,7 +9361,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9399,7 +9436,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9549,7 +9587,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9612,7 +9651,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9677,7 +9717,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9723,7 +9764,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9802,7 +9844,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -9911,7 +9954,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10009,7 +10053,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10052,7 +10097,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10129,7 +10175,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10255,7 +10302,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10393,7 +10441,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10525,7 +10574,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10660,7 +10710,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10769,7 +10820,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10843,7 +10895,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10921,7 +10974,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -10991,7 +11045,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11039,7 +11094,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11144,7 +11200,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11256,7 +11313,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11365,7 +11423,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11446,7 +11505,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11578,7 +11638,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11647,7 +11708,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11753,7 +11815,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11858,7 +11921,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -11922,7 +11986,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -12005,7 +12070,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -12384,7 +12450,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -12662,7 +12729,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -12838,7 +12906,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -12989,7 +13058,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13138,7 +13208,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13303,7 +13374,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13367,7 +13439,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13434,7 +13507,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13488,7 +13562,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13542,7 +13617,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13596,7 +13672,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13652,7 +13729,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13706,7 +13784,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13757,7 +13836,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13808,7 +13888,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13876,7 +13957,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -13962,7 +14044,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -14108,7 +14191,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -14252,7 +14336,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -14441,7 +14526,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(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 $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
@ -15516,6 +15602,7 @@ s,@LIBFFI@,$LIBFFI,;t t
|
||||
s,@LIBFFIINCS@,$LIBFFIINCS,;t t
|
||||
s,@EXTRA_CC_FILES@,$EXTRA_CC_FILES,;t t
|
||||
s,@PLATFORMOBJS@,$PLATFORMOBJS,;t t
|
||||
s,@PLATFORM_INNER_NAT_HDRS@,$PLATFORM_INNER_NAT_HDRS,;t t
|
||||
s,@CPP@,$CPP,;t t
|
||||
s,@EGREP@,$EGREP,;t t
|
||||
s,@SYSTEMSPEC@,$SYSTEMSPEC,;t t
|
||||
@ -15758,6 +15845,11 @@ esac
|
||||
*) ac_INSTALL=$ac_top_builddir$INSTALL ;;
|
||||
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
|
||||
# use $as_me), people would be surprised to read:
|
||||
# /* config.h. Generated by config.status. */
|
||||
@ -15796,12 +15888,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
|
||||
fi;;
|
||||
esac
|
||||
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
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
sed "$ac_vpsub
|
||||
@ -16548,7 +16634,7 @@ echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
cd $ac_popdir
|
||||
done
|
||||
fi
|
||||
|
||||
|
@ -386,6 +386,7 @@ EXTRA_CC_FILES=
|
||||
AC_SUBST(EXTRA_CC_FILES)
|
||||
|
||||
PLATFORMOBJS=
|
||||
PLATFORM_INNER_NAT_HDRS=
|
||||
case "$TARGET_ECOS" in
|
||||
no) case "$host" in
|
||||
*mingw*)
|
||||
@ -400,6 +401,7 @@ case "$TARGET_ECOS" in
|
||||
PLATFORMNET=Posix
|
||||
PLATFORMOBJS=posix.lo
|
||||
PLATFORMH=posix.h
|
||||
PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@ -412,6 +414,7 @@ case "$TARGET_ECOS" in
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(PLATFORMOBJS)
|
||||
AC_SUBST(PLATFORM_INNER_NAT_HDRS)
|
||||
AC_CONFIG_LINKS(include/platform.h:include/$PLATFORMH)
|
||||
|
||||
AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1,
|
||||
|
@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORMOBJS = @PLATFORMOBJS@
|
||||
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
|
||||
RANLIB = @RANLIB@
|
||||
STRIP = @STRIP@
|
||||
SYSDEP_SOURCES = @SYSDEP_SOURCES@
|
||||
|
@ -1,6 +1,7 @@
|
||||
// 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.
|
||||
|
||||
@ -150,6 +151,7 @@ extern "Java"
|
||||
class Comparable;
|
||||
class Compiler;
|
||||
class ConcreteProcess;
|
||||
class ConcreteProcess$ProcessManager;
|
||||
class Double;
|
||||
class Error;
|
||||
class Exception;
|
||||
|
@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORMOBJS = @PLATFORMOBJS@
|
||||
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
|
||||
RANLIB = @RANLIB@
|
||||
STRIP = @STRIP@
|
||||
SYSDEP_SOURCES = @SYSDEP_SOURCES@
|
||||
|
@ -1,414 +1,113 @@
|
||||
/* 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. */
|
||||
#undef C_ALLOCA
|
||||
|
||||
/* 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. */
|
||||
/* 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 if you have alloca, as a function or macro. */
|
||||
#undef HAVE_ALLOCA
|
||||
|
||||
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
|
||||
#undef HAVE_ALLOCA_H
|
||||
|
||||
/* Define if you have a working `mmap' system call. */
|
||||
#undef HAVE_MMAP
|
||||
|
||||
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
|
||||
/* Define if your struct tm has tm_zone. */
|
||||
#undef HAVE_TM_ZONE
|
||||
|
||||
/* Define if you don't have tm_zone but do have the external array
|
||||
tzname. */
|
||||
#undef HAVE_TZNAME
|
||||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
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 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define if your <sys/time.h> declares struct tm. */
|
||||
#undef TM_IN_SYS_TIME
|
||||
|
||||
/* Define if the X Window System is missing or not being used. */
|
||||
#undef X_DISPLAY_MISSING
|
||||
|
||||
/* Define to `int' if `ssize_t' is not defined. */
|
||||
#undef ssize_t
|
||||
|
||||
/* Define if you have the access function. */
|
||||
#undef HAVE_ACCESS
|
||||
|
||||
/* Define if you have the chmod function. */
|
||||
#undef HAVE_CHMOD
|
||||
|
||||
/* Define if you have the execvp function. */
|
||||
#undef HAVE_EXECVP
|
||||
|
||||
/* Define if you have the fork function. */
|
||||
#undef HAVE_FORK
|
||||
|
||||
/* Define if you have the fstat function. */
|
||||
#undef HAVE_FSTAT
|
||||
|
||||
/* Define if you have the fsync function. */
|
||||
#undef HAVE_FSYNC
|
||||
|
||||
/* Define if you have the ftime function. */
|
||||
#undef HAVE_FTIME
|
||||
|
||||
/* Define if you have the ftruncate function. */
|
||||
#undef HAVE_FTRUNCATE
|
||||
|
||||
/* Define if you have the getcwd function. */
|
||||
#undef HAVE_GETCWD
|
||||
|
||||
/* Define if you have the gethostbyaddr_r function. */
|
||||
#undef HAVE_GETHOSTBYADDR_R
|
||||
|
||||
/* Define if you have the gethostbyname_r function. */
|
||||
#undef HAVE_GETHOSTBYNAME_R
|
||||
|
||||
/* Define if you have the gethostname function. */
|
||||
#undef HAVE_GETHOSTNAME
|
||||
|
||||
/* Define if you have the getpagesize function. */
|
||||
#undef HAVE_GETPAGESIZE
|
||||
|
||||
/* Define if you have the getpwuid_r function. */
|
||||
#undef HAVE_GETPWUID_R
|
||||
|
||||
/* Define if you have the gettimeofday function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define if you have the gmtime_r function. */
|
||||
#undef HAVE_GMTIME_R
|
||||
|
||||
/* Define if you have the inet_addr function. */
|
||||
#undef HAVE_INET_ADDR
|
||||
|
||||
/* Define if you have the inet_aton function. */
|
||||
#undef HAVE_INET_ATON
|
||||
|
||||
/* Define if you have the inet_ntoa function. */
|
||||
#undef HAVE_INET_NTOA
|
||||
|
||||
/* Define if you have the inet_pton function. */
|
||||
#undef HAVE_INET_PTON
|
||||
|
||||
/* Define if you have the ioctl function. */
|
||||
#undef HAVE_IOCTL
|
||||
|
||||
/* Define if you have the localtime_r function. */
|
||||
#undef HAVE_LOCALTIME_R
|
||||
|
||||
/* Define if you have the memcpy function. */
|
||||
#undef HAVE_MEMCPY
|
||||
|
||||
/* Define if you have the memmove function. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* Define if you have the mkdir function. */
|
||||
#undef HAVE_MKDIR
|
||||
|
||||
/* Define if you have the nl_langinfo function. */
|
||||
#undef HAVE_NL_LANGINFO
|
||||
|
||||
/* Define if you have the open function. */
|
||||
#undef HAVE_OPEN
|
||||
|
||||
/* Define if you have the opendir function. */
|
||||
#undef HAVE_OPENDIR
|
||||
|
||||
/* Define if you have the pipe function. */
|
||||
#undef HAVE_PIPE
|
||||
|
||||
/* Define if you have the pthread_mutexattr_setkind_np function. */
|
||||
#undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP
|
||||
|
||||
/* Define if you have the pthread_mutexattr_settype function. */
|
||||
#undef HAVE_PTHREAD_MUTEXATTR_SETTYPE
|
||||
|
||||
/* Define if you have the readdir_r function. */
|
||||
#undef HAVE_READDIR_R
|
||||
|
||||
/* Define if you have the realpath function. */
|
||||
#undef HAVE_REALPATH
|
||||
|
||||
/* Define if you have the rename function. */
|
||||
#undef HAVE_RENAME
|
||||
|
||||
/* Define if you have the rmdir function. */
|
||||
#undef HAVE_RMDIR
|
||||
|
||||
/* Define if you have the sched_yield function. */
|
||||
#undef HAVE_SCHED_YIELD
|
||||
|
||||
/* Define if you have the select function. */
|
||||
#undef HAVE_SELECT
|
||||
|
||||
/* Define if you have the setlocale function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
/* Define if you have the sigaction function. */
|
||||
#undef HAVE_SIGACTION
|
||||
|
||||
/* Define if you have the sleep function. */
|
||||
#undef HAVE_SLEEP
|
||||
|
||||
/* Define if you have the stat function. */
|
||||
#undef HAVE_STAT
|
||||
|
||||
/* 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. */
|
||||
#undef HAVE_EXECINFO_H
|
||||
|
||||
/* Define if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define if you have the <langinfo.h> header file. */
|
||||
#undef HAVE_LANGINFO_H
|
||||
|
||||
/* Define if you have the <locale.h> header file. */
|
||||
#undef HAVE_LOCALE_H
|
||||
|
||||
/* Define if you have the <net/if.h> header file. */
|
||||
#undef HAVE_NET_IF_H
|
||||
|
||||
/* Define if you have the <netdb.h> header file. */
|
||||
#undef HAVE_NETDB_H
|
||||
|
||||
/* Define if you have the <netinet/in.h> header file. */
|
||||
#undef HAVE_NETINET_IN_H
|
||||
|
||||
/* Define if you have the <pwd.h> header file. */
|
||||
#undef HAVE_PWD_H
|
||||
|
||||
/* Define if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define if you have the <sys/config.h> header file. */
|
||||
#undef HAVE_SYS_CONFIG_H
|
||||
|
||||
/* Define if you have the <sys/filio.h> header file. */
|
||||
#undef HAVE_SYS_FILIO_H
|
||||
|
||||
/* Define if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define if you have the <sys/select.h> header file. */
|
||||
#undef HAVE_SYS_SELECT_H
|
||||
|
||||
/* Define if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H
|
||||
|
||||
/* Define if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_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 to 1 if using `alloca.c'. */
|
||||
#undef C_ALLOCA
|
||||
|
||||
/* 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 system properties shouldn't be read from
|
||||
getenv("GCJ_PROPERTIES"). */
|
||||
#undef DISABLE_GETENV_PROPERTIES
|
||||
|
||||
/* 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. */
|
||||
#undef ENABLE_JVMPI
|
||||
|
||||
/* Indicate that linker is not able to 8-byte align static data */
|
||||
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
|
||||
/* Define if we should ignore arguments to main(). */
|
||||
#undef DISABLE_MAIN_ARGS
|
||||
|
||||
/* Define if you're running eCos. */
|
||||
#undef ECOS
|
||||
|
||||
/* Define if you have int32_t and uint32_t. */
|
||||
#undef HAVE_INT32_DEFINED
|
||||
/* Define if you are using JVMPI. */
|
||||
#undef ENABLE_JVMPI
|
||||
|
||||
/* Define if you have int32_t and uint32_t. */
|
||||
#undef HAVE_INT32_DEFINED
|
||||
/* Short GCJ version ID */
|
||||
#undef GCJVERSION
|
||||
|
||||
/* Define if you have u_int32_t */
|
||||
#undef HAVE_BSD_INT32_DEFINED
|
||||
|
||||
/* Define if you have u_int32_t */
|
||||
#undef HAVE_BSD_INT32_DEFINED
|
||||
|
||||
/* Define is you have 'mktime' in <time.h> */
|
||||
#undef HAVE_MKTIME
|
||||
|
||||
/* Define is you have 'localtime' in <time.h> */
|
||||
#undef HAVE_LOCALTIME
|
||||
|
||||
/* Define if Boehm GC in use. */
|
||||
#undef HAVE_BOEHM_GC
|
||||
|
||||
/* Define if using POSIX threads on Linux. */
|
||||
#undef LINUX_THREADS
|
||||
|
||||
/* Define if using POSIX threads that have the mutexattr functions. */
|
||||
#undef HAVE_PTHREAD_MUTEXATTR_INIT
|
||||
|
||||
/* Required define if using POSIX threads */
|
||||
#undef _REENTRANT
|
||||
|
||||
/* Required define if using POSIX threads */
|
||||
#undef _POSIX_PTHREAD_SEMANTICS
|
||||
|
||||
/* Define if hash synchronization is in use */
|
||||
#undef JV_HASH_SYNCHRONIZATION
|
||||
|
||||
/* Define if you have memmove. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* 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. */
|
||||
#undef HAVE_LOCALTIME_R
|
||||
|
||||
/* Define if usleep is declared in <unistd.h>. */
|
||||
#undef HAVE_USLEEP_DECL
|
||||
|
||||
/* Define if using POSIX threads that have the mutexattr functions. */
|
||||
#undef HAVE_PTHREAD_MUTEXATTR_INIT
|
||||
|
||||
/* Define if getuid() and friends are missing. */
|
||||
#undef NO_GETUID
|
||||
|
||||
/* 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 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 gethostbyaddr_r returns 'int'. */
|
||||
#undef GETHOSTBYADDR_R_RETURNS_INT
|
||||
|
||||
/* Define if gethostbyname_r returns 'int'. */
|
||||
#undef GETHOSTBYNAME_R_RETURNS_INT
|
||||
|
||||
/* Required define if using POSIX threads */
|
||||
#undef _REENTRANT
|
||||
/* Define to 1 if you have the `access' function. */
|
||||
#undef HAVE_ACCESS
|
||||
|
||||
/* Define if struct hostent_data is defined in netdb.h */
|
||||
#undef HAVE_STRUCT_HOSTENT_DATA
|
||||
/* 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 HAVE_ALLOCA_H
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#undef HAVE_ARPA_INET_H
|
||||
|
||||
/* Define if your platform has a working backtrace() function. */
|
||||
#undef HAVE_BACKTRACE
|
||||
|
||||
/* Define if Boehm GC in use. */
|
||||
#undef HAVE_BOEHM_GC
|
||||
|
||||
/* Define if you have u_int32_t */
|
||||
#undef HAVE_BSD_INT32_DEFINED
|
||||
|
||||
/* Define to 1 if you have the <bstring.h> header file. */
|
||||
#undef HAVE_BSTRING_H
|
||||
|
||||
/* Define to 1 if you have the `chmod' function. */
|
||||
#undef HAVE_CHMOD
|
||||
|
||||
/* 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
|
||||
|
||||
/* 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
|
||||
|
||||
/* Define to 1 if you have the `fstat' function. */
|
||||
#undef HAVE_FSTAT
|
||||
|
||||
/* Define to 1 if you have the `fsync' function. */
|
||||
#undef HAVE_FSYNC
|
||||
|
||||
/* Define to 1 if you have the `ftime' function. */
|
||||
#undef HAVE_FTIME
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#undef HAVE_FTRUNCATE
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#undef HAVE_GETCWD
|
||||
|
||||
/* Define if you have the 'gethostbyaddr_r' function. */
|
||||
#undef HAVE_GETHOSTBYADDR_R
|
||||
|
||||
/* Define if gethostbyaddr_r returns 'int'. */
|
||||
#undef GETHOSTBYADDR_R_RETURNS_INT
|
||||
/* Define if you have the 'gethostbyname_r' function. */
|
||||
#undef HAVE_GETHOSTBYNAME_R
|
||||
|
||||
/* Define if you have the 'gethostname' function. */
|
||||
#undef HAVE_GETHOSTNAME
|
||||
@ -416,51 +115,334 @@
|
||||
/* Define if gethostname is declared in <unistd.h>. */
|
||||
#undef HAVE_GETHOSTNAME_DECL
|
||||
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#undef HAVE_GETPAGESIZE
|
||||
|
||||
/* Define to 1 if you have the `getpwuid_r' function. */
|
||||
#undef HAVE_GETPWUID_R
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define to 1 if you have the `gmtime_r' function. */
|
||||
#undef HAVE_GMTIME_R
|
||||
|
||||
/* 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
|
||||
|
||||
/* Define to 1 if you have the `inet_aton' function. */
|
||||
#undef HAVE_INET_ATON
|
||||
|
||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
||||
#undef HAVE_INET_NTOA
|
||||
|
||||
/* Define to 1 if you have the `inet_pton' function. */
|
||||
#undef HAVE_INET_PTON
|
||||
|
||||
/* 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
|
||||
|
||||
/* 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
|
||||
|
||||
/* Define to 1 if you have the `memcpy' function. */
|
||||
#undef HAVE_MEMCPY
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* 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
|
||||
|
||||
/* 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
|
||||
|
||||
/* Define to 1 if you have the `open' function. */
|
||||
#undef HAVE_OPEN
|
||||
|
||||
/* Define to 1 if you have the `opendir' function. */
|
||||
#undef HAVE_OPENDIR
|
||||
|
||||
/* Define to 1 if you have the `pipe' function. */
|
||||
#undef HAVE_PIPE
|
||||
|
||||
/* 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
|
||||
|
||||
/* Define to 1 if you have the `pthread_mutexattr_settype' function. */
|
||||
#undef HAVE_PTHREAD_MUTEXATTR_SETTYPE
|
||||
|
||||
/* 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
|
||||
|
||||
/* Define to 1 if you have the `realpath' function. */
|
||||
#undef HAVE_REALPATH
|
||||
|
||||
/* Define to 1 if you have the `rename' function. */
|
||||
#undef HAVE_RENAME
|
||||
|
||||
/* Define to 1 if you have the `rmdir' function. */
|
||||
#undef HAVE_RMDIR
|
||||
|
||||
/* Define to 1 if you have the `sched_yield' function. */
|
||||
#undef HAVE_SCHED_YIELD
|
||||
|
||||
/* Define to 1 if you have the `select' function. */
|
||||
#undef HAVE_SELECT
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
/* Define to 1 if you have the `sigaction' function. */
|
||||
#undef HAVE_SIGACTION
|
||||
|
||||
/* Define to 1 if you have the `sleep' function. */
|
||||
#undef HAVE_SLEEP
|
||||
|
||||
/* Define it socklen_t typedef is in sys/socket.h. */
|
||||
#undef HAVE_SOCKLEN_T
|
||||
|
||||
/* Define to 1 if you have the `stat' function. */
|
||||
#undef HAVE_STAT
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define if struct hostent_data is defined in netdb.h */
|
||||
#undef HAVE_STRUCT_HOSTENT_DATA
|
||||
|
||||
/* Define if struct ipv6_mreq is defined in netinet/in.h. */
|
||||
#undef HAVE_STRUCT_IPV6_MREQ
|
||||
|
||||
/* Define if struct ip_mreq is defined in netinet/in.h. */
|
||||
#undef HAVE_STRUCT_IP_MREQ
|
||||
|
||||
/* Define to 1 if `tm_zone' is member of `struct tm'. */
|
||||
#undef HAVE_STRUCT_TM_TM_ZONE
|
||||
|
||||
/* Define to 1 if you have the <sys/config.h> header file. */
|
||||
#undef HAVE_SYS_CONFIG_H
|
||||
|
||||
/* Define to 1 if you have the <sys/filio.h> header file. */
|
||||
#undef HAVE_SYS_FILIO_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/select.h> header file. */
|
||||
#undef HAVE_SYS_SELECT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
|
||||
/* Define to 1 if you have the `time' function. */
|
||||
#undef HAVE_TIME
|
||||
|
||||
/* Define if global 'timezone' exists. */
|
||||
#undef HAVE_TIMEZONE
|
||||
|
||||
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
|
||||
`HAVE_STRUCT_TM_TM_ZONE' instead. */
|
||||
#undef HAVE_TM_ZONE
|
||||
|
||||
/* Define to 1 if you don't have `tm_zone' but do have the external array
|
||||
`tzname'. */
|
||||
#undef HAVE_TZNAME
|
||||
|
||||
/* Define to 1 if you have the `uname' function. */
|
||||
#undef HAVE_UNAME
|
||||
|
||||
/* Define if your platform has the global _timezone variable. */
|
||||
#undef HAVE_UNDERSCORE_TIMEZONE
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `unlink' function. */
|
||||
#undef HAVE_UNLINK
|
||||
|
||||
/* Define to 1 if you have the `usleep' function. */
|
||||
#undef HAVE_USLEEP
|
||||
|
||||
/* Define if usleep is declared in <unistd.h>. */
|
||||
#undef HAVE_USLEEP_DECL
|
||||
|
||||
/* Define to 1 if you have the `utime' function. */
|
||||
#undef HAVE_UTIME
|
||||
|
||||
/* Define to 1 if you have the file `AC_File'. */
|
||||
#undef HAVE__PROC_SELF_EXE
|
||||
|
||||
/* Define as const if the declaration of iconv() needs const. */
|
||||
#undef ICONV_CONST
|
||||
|
||||
/* Define if you want a bytecode interpreter. */
|
||||
#undef INTERPRETER
|
||||
|
||||
/* Define if hash synchronization is in use */
|
||||
#undef JV_HASH_SYNCHRONIZATION
|
||||
|
||||
/* Define if <inttypes.h> is available */
|
||||
#undef JV_HAVE_INTTYPES_H
|
||||
|
||||
/* Indicate that linker is not able to 8-byte align static data */
|
||||
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
|
||||
|
||||
/* Define if using POSIX threads on Linux. */
|
||||
#undef LINUX_THREADS
|
||||
|
||||
/* Define if MinGW libgcj uses the Windows UNICODE OS API. */
|
||||
#undef MINGW_LIBGCJ_UNICODE
|
||||
|
||||
/* Define if getuid() and friends are missing. */
|
||||
#undef NO_GETUID
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define if pthread_mutex_t has m_count member. */
|
||||
#undef PTHREAD_MUTEX_HAVE_M_COUNT
|
||||
|
||||
/* Define if pthread_mutex_t has __m_count member. */
|
||||
#undef PTHREAD_MUTEX_HAVE___M_COUNT
|
||||
|
||||
/* Define if dlopen is available */
|
||||
#undef HAVE_DLOPEN
|
||||
|
||||
/* The number of bytes in type void * */
|
||||
#undef SIZEOF_VOID_P
|
||||
|
||||
/* Short GCJ version ID */
|
||||
#undef GCJVERSION
|
||||
/* Define if the compiler is configured for setjmp/longjmp exceptions. */
|
||||
#undef SJLJ_EXCEPTIONS
|
||||
|
||||
/* Define if <inttypes.h> is available */
|
||||
#undef HAVE_INTTYPES_H
|
||||
/* 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 if <inttypes.h> is available */
|
||||
#undef JV_HAVE_INTTYPES_H
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
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. */
|
||||
#undef HAVE_IN_ADDR_T
|
||||
|
||||
/* Define if struct ip_mreq is defined in netinet/in.h. */
|
||||
#undef HAVE_STRUCT_IP_MREQ
|
||||
|
||||
/* Define if struct ipv6_mreq is defined in netinet/in.h. */
|
||||
#undef HAVE_STRUCT_IPV6_MREQ
|
||||
|
||||
/* Define if inet6 structures are defined in netinet/in.h. */
|
||||
#undef HAVE_INET6
|
||||
|
||||
/* Define it socklen_t typedef is in sys/socket.h. */
|
||||
#undef HAVE_SOCKLEN_T
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define if struct tm has tm_gmtoff field. */
|
||||
#undef STRUCT_TM_HAS_GMTOFF
|
||||
|
||||
/* Define if global 'timezone' exists. */
|
||||
#undef HAVE_TIMEZONE
|
||||
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||
#undef TM_IN_SYS_TIME
|
||||
|
||||
/* Define if your platform has the global _timezone variable. */
|
||||
#undef HAVE_UNDERSCORE_TIMEZONE
|
||||
/* Define if we're to use libffi. */
|
||||
#undef USE_LIBFFI
|
||||
|
||||
/* Define if libltdl is in use. */
|
||||
#undef USE_LTDL
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to 1 if the X Window System is missing or not being used. */
|
||||
#undef X_DISPLAY_MISSING
|
||||
|
||||
/* Required define if using POSIX threads */
|
||||
#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
|
||||
|
@ -1,6 +1,5 @@
|
||||
// PosixProcess.java - Subclass of Process for POSIX systems.
|
||||
|
||||
/* Copyright (C) 1998, 1999 Free Software Foundation
|
||||
/* Copyright (C) 1998, 1999, 2004 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@ -11,76 +10,466 @@ details. */
|
||||
package java.lang;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
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>
|
||||
* @date May 3, 1999
|
||||
* @author David Daney <ddaney@avtrex.com> Rewrote using
|
||||
* ProcessManager
|
||||
*/
|
||||
|
||||
// This is entirely internal to our implementation.
|
||||
|
||||
// This file is copied to `ConcreteProcess.java' before compilation.
|
||||
// Hence the class name apparently does not match the file name.
|
||||
final class ConcreteProcess extends Process
|
||||
{
|
||||
public native void destroy ();
|
||||
|
||||
public int exitValue ()
|
||||
static class ProcessManager extends Thread
|
||||
{
|
||||
if (! hasExited)
|
||||
throw new IllegalThreadStateException("Process has not exited");
|
||||
/**
|
||||
* 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();
|
||||
}
|
||||
|
||||
for (;;)
|
||||
{
|
||||
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");
|
||||
}
|
||||
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()
|
||||
{
|
||||
return errorStream;
|
||||
try
|
||||
{
|
||||
outputStream.close();
|
||||
}
|
||||
catch (IOException ioe)
|
||||
{
|
||||
// Ignore.
|
||||
}
|
||||
try
|
||||
{
|
||||
if (returnedErrorStream == null && errorStream.available() == 0)
|
||||
{
|
||||
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 OutputStream getOutputStream ()
|
||||
public synchronized InputStream getInputStream()
|
||||
{
|
||||
if (returnedInputStream != null)
|
||||
return returnedInputStream;
|
||||
|
||||
if (inputStream == null)
|
||||
returnedInputStream = EOFInputStream.instance;
|
||||
else
|
||||
returnedInputStream = inputStream;
|
||||
|
||||
return returnedInputStream;
|
||||
}
|
||||
|
||||
public OutputStream getOutputStream()
|
||||
{
|
||||
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.
|
||||
public native void startProcess (String[] progarray,
|
||||
String[] envp,
|
||||
File dir)
|
||||
throws IOException;
|
||||
/**
|
||||
* Start this process running. This should only be called by the
|
||||
* ProcessManager.
|
||||
*
|
||||
* @param pm The ProcessManager that made the call.
|
||||
*/
|
||||
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
|
||||
// compilation. Hence the constructor name apparently does not
|
||||
// match the file name.
|
||||
public ConcreteProcess (String[] progarray,
|
||||
String[] envp,
|
||||
File dir)
|
||||
throws IOException
|
||||
ConcreteProcess(String[] progarray, String[] envp, File dir)
|
||||
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;
|
||||
}
|
||||
|
||||
// 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.
|
||||
}
|
||||
|
||||
// The process id. This is cast to a pid_t on the native side.
|
||||
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;
|
||||
|
||||
// True when child has exited.
|
||||
private boolean hasExited;
|
||||
// FIXME: Why doesn't the friend declaration in ConcreteProcess.h
|
||||
// allow ConcreteProcess$ProcessManager native code access these
|
||||
// when they are private?
|
||||
|
||||
// The exit status, if the child has exited.
|
||||
private int status;
|
||||
/** Before the process is forked. */
|
||||
static final int STATE_WAITING_TO_START = 0;
|
||||
|
||||
// The streams.
|
||||
/** 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. */
|
||||
int status;
|
||||
|
||||
/** The streams. */
|
||||
private InputStream errorStream;
|
||||
private InputStream inputStream;
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
@ -734,8 +734,11 @@ public class Runtime
|
||||
* @param dir the directory to use, may be null
|
||||
* @return the newly created process
|
||||
* @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,
|
||||
|
@ -21,12 +21,16 @@ details. */
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include <gcj/cni.h>
|
||||
#include <jvm.h>
|
||||
|
||||
#include <java/lang/ConcreteProcess$ProcessManager.h>
|
||||
#include <java/lang/ConcreteProcess.h>
|
||||
#include <java/lang/IllegalThreadStateException.h>
|
||||
#include <java/lang/InternalError.h>
|
||||
#include <java/lang/InterruptedException.h>
|
||||
#include <java/lang/NullPointerException.h>
|
||||
#include <java/lang/Thread.h>
|
||||
@ -42,44 +46,6 @@ using gnu::java::nio::channels::FileChannelImpl;
|
||||
|
||||
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 *
|
||||
new_string (jstring string)
|
||||
{
|
||||
@ -120,15 +86,135 @@ myclose (int &fd)
|
||||
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
|
||||
java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
jstringArray envp,
|
||||
java::io::File *dir)
|
||||
java::lang::ConcreteProcess$ProcessManager::init ()
|
||||
{
|
||||
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;
|
||||
|
||||
// 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;
|
||||
|
||||
hasExited = false;
|
||||
|
||||
// Initialize all locals here to make cleanup simpler.
|
||||
char **args = NULL;
|
||||
char **env = NULL;
|
||||
@ -142,7 +228,6 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
errp[1] = -1;
|
||||
msgp[0] = -1;
|
||||
msgp[1] = -1;
|
||||
java::lang::Throwable *exc = NULL;
|
||||
errorStream = NULL;
|
||||
inputStream = NULL;
|
||||
outputStream = NULL;
|
||||
@ -150,8 +235,7 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
try
|
||||
{
|
||||
// Transform arrays to native form.
|
||||
args = (char **) _Jv_Malloc ((progarray->length + 1)
|
||||
* sizeof (char *));
|
||||
args = (char **) _Jv_Malloc ((progarray->length + 1) * sizeof (char *));
|
||||
|
||||
// Initialize so we can gracefully recover.
|
||||
jstring *elts = elements (progarray);
|
||||
@ -185,24 +269,32 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
// status.
|
||||
if (pipe (inp) || pipe (outp) || pipe (errp) || pipe (msgp)
|
||||
|| 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
|
||||
// error while creating the streams we would have run the child
|
||||
// with no way to communicate with it.
|
||||
errorStream = new FileInputStream (new FileChannelImpl(errp[0], FileChannelImpl::READ));
|
||||
inputStream = new FileInputStream (new FileChannelImpl(inp[0], FileChannelImpl::READ));
|
||||
outputStream = new FileOutputStream (new FileChannelImpl(outp[1], FileChannelImpl::WRITE));
|
||||
errorStream =
|
||||
new FileInputStream (new
|
||||
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
|
||||
// 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.
|
||||
|
||||
if (envp)
|
||||
{
|
||||
// Preserve PATH and LD_LIBRARY_PATH unless specified
|
||||
@ -212,16 +304,16 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
environ = env;
|
||||
if (path_val && getenv ("PATH") == NULL)
|
||||
{
|
||||
char *path_env = (char *) _Jv_Malloc (strlen (path_val)
|
||||
+ 5 + 1);
|
||||
char *path_env =
|
||||
(char *) _Jv_Malloc (strlen (path_val) + 5 + 1);
|
||||
strcpy (path_env, "PATH=");
|
||||
strcat (path_env, path_val);
|
||||
putenv (path_env);
|
||||
}
|
||||
if (ld_path_val && getenv ("LD_LIBRARY_PATH") == NULL)
|
||||
{
|
||||
char *ld_path_env
|
||||
= (char *) _Jv_Malloc (strlen (ld_path_val) + 16 + 1);
|
||||
char *ld_path_env =
|
||||
(char *) _Jv_Malloc (strlen (ld_path_val) + 16 + 1);
|
||||
strcpy (ld_path_env, "LD_LIBRARY_PATH=");
|
||||
strcat (ld_path_env, ld_path_val);
|
||||
putenv (ld_path_env);
|
||||
@ -264,6 +356,8 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
|
||||
// Parent. Close extra file descriptors and mark ours as
|
||||
// close-on-exec.
|
||||
pid = (jlong) pid_tmp;
|
||||
|
||||
myclose (outp[0]);
|
||||
myclose (inp[1]);
|
||||
myclose (errp[1]);
|
||||
@ -272,9 +366,9 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
char c;
|
||||
int r = read (msgp[0], &c, 1);
|
||||
if (r == -1)
|
||||
throw new IOException (JvNewStringLatin1 (strerror (errno)));
|
||||
throw new IOException (JvNewStringUTF (strerror (errno)));
|
||||
else if (r != 0)
|
||||
throw new IOException (JvNewStringLatin1 (strerror (c)));
|
||||
throw new IOException (JvNewStringUTF (strerror (c)));
|
||||
}
|
||||
catch (java::lang::Throwable *thrown)
|
||||
{
|
||||
@ -324,15 +418,13 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
|
||||
myclose (errp[1]);
|
||||
myclose (msgp[1]);
|
||||
|
||||
exc = thrown;
|
||||
exception = thrown;
|
||||
}
|
||||
|
||||
myclose (msgp[0]);
|
||||
cleanup (args, env, path);
|
||||
|
||||
if (exc != NULL)
|
||||
throw exc;
|
||||
else
|
||||
if (exception == NULL)
|
||||
{
|
||||
fcntl (outp[1], F_SETFD, FD_CLOEXEC);
|
||||
fcntl (inp[0], F_SETFD, FD_CLOEXEC);
|
||||
|
@ -1,6 +1,6 @@
|
||||
// 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.
|
||||
|
||||
@ -34,6 +34,7 @@ details. */
|
||||
#include <java/lang/System.h>
|
||||
#include <java/lang/Long.h>
|
||||
#include <java/lang/OutOfMemoryError.h>
|
||||
#include <java/lang/InternalError.h>
|
||||
|
||||
// This is used to implement thread startup.
|
||||
struct starter
|
||||
@ -332,6 +333,17 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
|
||||
#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
|
||||
_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;
|
||||
}
|
||||
# endif
|
||||
// Block SIGCHLD which is used in natPosixProcess.cc.
|
||||
block_sigchld();
|
||||
}
|
||||
|
||||
void
|
||||
@ -403,6 +417,10 @@ _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
|
||||
return;
|
||||
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();
|
||||
|
||||
pthread_attr_init (&attr);
|
||||
|
@ -128,6 +128,7 @@ PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORMOBJS = @PLATFORMOBJS@
|
||||
PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
|
||||
RANLIB = @RANLIB@
|
||||
STRIP = @STRIP@
|
||||
SYSDEP_SOURCES = @SYSDEP_SOURCES@
|
||||
|
Loading…
x
Reference in New Issue
Block a user