Commit 283a159f by Andrew Haley Committed by Andrew Haley

natThrowable.cc: New file.

2000-01-14  Andrew Haley  <aph@cygnus.com>

	* java/lang/natThrowable.cc: New file.

	* java/lang/Throwable.java (fillInStackTrace): Make native.
	(printStackTrace): Call native method to do this.
	(Throwable): Call fillInStackTrace.
	(stackTrace): New variable.

	* include/jvm.h: Add _Jv_ThisExecutable functions.

	* prims.cc: (_Jv_execName): New variable.
	(catch_segv): Call fillInStackTrace.
	(catch_fpe): Ditto.
	(_Jv_ThisExecutable): New functions.
	(JvRunMain): Set the name of this executable.

	* Makefile.am: Add java/lang/natThrowable.cc.
	Add name-finder.cc.
	* Makefile.in: Rebuilt.

	* acconfig.h: Add HAVE_PROC_SELF_EXE.

	* configure.in: Force link with __frame_state_for in
	FORCELIBGCCSPEC.  Add new checks for backtrace.
	* include/config.h.in: Rebuilt.

	* name-finder.cc: New file.
	* include/name-finder.h: New file.

From-SVN: r31460
parent 13536812
2000-01-14 Andrew Haley <aph@cygnus.com>
* java/lang/natThrowable.cc: New file.
* java/lang/Throwable.java (fillInStackTrace): Make native.
(printStackTrace): Call native method to do this.
(Throwable): Call fillInStackTrace.
(stackTrace): New variable.
* include/jvm.h: Add _Jv_ThisExecutable functions.
* prims.cc: (_Jv_execName): New variable.
(catch_segv): Call fillInStackTrace.
(catch_fpe): Ditto.
(_Jv_ThisExecutable): New functions.
(JvRunMain): Set the name of this executable.
* Makefile.am: Add java/lang/natThrowable.cc.
Add name-finder.cc.
* Makefile.in: Rebuilt.
* acconfig.h: Add HAVE_PROC_SELF_EXE.
* configure.in: Force link with __frame_state_for in
FORCELIBGCCSPEC. Add new checks for backtrace.
* include/config.h.in: Rebuilt.
* name-finder.cc: New file.
* include/name-finder.h: New file.
2000-01-16 Anthony Green <green@cygnus.com> 2000-01-16 Anthony Green <green@cygnus.com>
* java/lang/StringBuffer.java (StringBuffer): Don't special case * java/lang/StringBuffer.java (StringBuffer): Don't special case
......
...@@ -112,7 +112,7 @@ javao_files = $(java_source_files:.java=.lo) \ ...@@ -112,7 +112,7 @@ javao_files = $(java_source_files:.java=.lo) \
libffi_files = `$(AR) t ../libffi/.libs/libffi.a 2>/dev/null | sed 's/\.o/\.lo/g' | sed 's/^/..\/libffi\//g'` libffi_files = `$(AR) t ../libffi/.libs/libffi.a 2>/dev/null | sed 's/\.o/\.lo/g' | sed 's/^/..\/libffi\//g'`
libgcj_la_SOURCES = prims.cc jni.cc exception.cc \ libgcj_la_SOURCES = prims.cc jni.cc exception.cc \
resolve.cc defineclass.cc interpret.cc resolve.cc defineclass.cc interpret.cc name-finder.cc
EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \ EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
$(c_source_files) $(java_source_files) $(built_java_source_files) $(c_source_files) $(java_source_files) $(built_java_source_files)
libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \ libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \
...@@ -804,6 +804,7 @@ java/lang/natRuntime.cc \ ...@@ -804,6 +804,7 @@ java/lang/natRuntime.cc \
java/lang/natString.cc \ java/lang/natString.cc \
java/lang/natSystem.cc \ java/lang/natSystem.cc \
java/lang/natThread.cc \ java/lang/natThread.cc \
java/lang/natThrowable.cc \
java/lang/reflect/natArray.cc \ java/lang/reflect/natArray.cc \
java/lang/reflect/natConstructor.cc \ java/lang/reflect/natConstructor.cc \
java/lang/reflect/natField.cc \ java/lang/reflect/natField.cc \
......
...@@ -184,7 +184,7 @@ javao_files = $(java_source_files:.java=.lo) \ ...@@ -184,7 +184,7 @@ javao_files = $(java_source_files:.java=.lo) \
libffi_files = `$(AR) t ../libffi/.libs/libffi.a 2>/dev/null | sed 's/\.o/\.lo/g' | sed 's/^/..\/libffi\//g'` libffi_files = `$(AR) t ../libffi/.libs/libffi.a 2>/dev/null | sed 's/\.o/\.lo/g' | sed 's/^/..\/libffi\//g'`
libgcj_la_SOURCES = prims.cc jni.cc exception.cc \ libgcj_la_SOURCES = prims.cc jni.cc exception.cc \
resolve.cc defineclass.cc interpret.cc resolve.cc defineclass.cc interpret.cc name-finder.cc
EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \ EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
$(c_source_files) $(java_source_files) $(built_java_source_files) $(c_source_files) $(java_source_files) $(built_java_source_files)
...@@ -618,6 +618,7 @@ java/lang/natRuntime.cc \ ...@@ -618,6 +618,7 @@ java/lang/natRuntime.cc \
java/lang/natString.cc \ java/lang/natString.cc \
java/lang/natSystem.cc \ java/lang/natSystem.cc \
java/lang/natThread.cc \ java/lang/natThread.cc \
java/lang/natThrowable.cc \
java/lang/reflect/natArray.cc \ java/lang/reflect/natArray.cc \
java/lang/reflect/natConstructor.cc \ java/lang/reflect/natConstructor.cc \
java/lang/reflect/natField.cc \ java/lang/reflect/natField.cc \
...@@ -699,7 +700,7 @@ libgcjdata_a_LIBADD = ...@@ -699,7 +700,7 @@ libgcjdata_a_LIBADD =
LTLIBRARIES = $(toolexeclib_LTLIBRARIES) LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
libgcj_la_OBJECTS = prims.lo jni.lo exception.lo resolve.lo \ libgcj_la_OBJECTS = prims.lo jni.lo exception.lo resolve.lo \
defineclass.lo interpret.lo defineclass.lo interpret.lo name-finder.lo
@NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT) @NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT)
@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \ @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \
@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS$(EXEEXT) @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS$(EXEEXT)
...@@ -923,8 +924,8 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ ...@@ -923,8 +924,8 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/util/zip/ZipException.P .deps/java/util/zip/ZipFile.P \ .deps/java/util/zip/ZipException.P .deps/java/util/zip/ZipFile.P \
.deps/java/util/zip/ZipInputStream.P \ .deps/java/util/zip/ZipInputStream.P \
.deps/java/util/zip/ZipOutputStream.P .deps/jni.P .deps/libgcjdata.P \ .deps/java/util/zip/ZipOutputStream.P .deps/jni.P .deps/libgcjdata.P \
.deps/no-threads.P .deps/nogc.P .deps/posix-threads.P .deps/prims.P \ .deps/name-finder.P .deps/no-threads.P .deps/nogc.P \
.deps/resolve.P .deps/posix-threads.P .deps/prims.P .deps/resolve.P
SOURCES = $(libgcjdata_a_SOURCES) $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(EXTRA_gij_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES) SOURCES = $(libgcjdata_a_SOURCES) $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(EXTRA_gij_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES)
OBJECTS = $(libgcjdata_a_OBJECTS) $(libgcj_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(gen_from_JIS_OBJECTS) OBJECTS = $(libgcjdata_a_OBJECTS) $(libgcj_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(gen_from_JIS_OBJECTS)
......
...@@ -120,5 +120,8 @@ ...@@ -120,5 +120,8 @@
/* Define if using setjmp/longjmp exceptions. */ /* Define if using setjmp/longjmp exceptions. */
#undef SJLJ_EXCEPTIONS #undef SJLJ_EXCEPTIONS
/* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE
/* Define if getuid() and friends are missing. */ /* Define if getuid() and friends are missing. */
#undef NO_GETUID #undef NO_GETUID
...@@ -2456,7 +2456,7 @@ fi ...@@ -2456,7 +2456,7 @@ fi
FORCELIBGCCSPEC= FORCELIBGCCSPEC=
if test "$ac_cv_prog_gnu_ld" = yes; then if test "$ac_cv_prog_gnu_ld" = yes; then
FORCELIBGCCSPEC="-u __rethrow -lgcc" FORCELIBGCCSPEC="-u __rethrow -u __frame_state_for -lgcc"
fi fi
echo $ac_n "checking for data_start""... $ac_c" 1>&6 echo $ac_n "checking for data_start""... $ac_c" 1>&6
...@@ -3224,16 +3224,147 @@ else ...@@ -3224,16 +3224,147 @@ else
fi fi
done done
for ac_func in backtrace fork execvp pipe
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3231: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3236 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func();
int main() {
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
$ac_func();
#endif
; return 0; }
EOF
if { (eval echo configure:3259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
cat >> confdefs.h <<EOF
#define $ac_tr_func 1
EOF
else
echo "$ac_t""no" 1>&6
fi
done
for ac_hdr in execinfo.h unistd.h dlfcn.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3287: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3292 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
eval "ac_cv_header_$ac_safe=yes"
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
else
echo "$ac_t""no" 1>&6
fi
done
for ac_file in /proc/self/exe
do
ac_safe=`echo "$ac_file" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_file""... $ac_c" 1>&6
echo "configure:3328: checking for $ac_file" >&5
if eval "test \"`echo '$''{'ac_cv_file_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
{ echo "configure: error: Cannot check for file existence when cross compiling" 1>&2; exit 1; }
else
if test -r $ac_file; then
eval "ac_cv_file_$ac_safe=yes"
else
eval "ac_cv_file_$ac_safe=no"
fi
fi
fi
if eval "test \"`echo '$ac_cv_file_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_file=HAVE_`echo $ac_file | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
cat >> confdefs.h <<EOF
#define $ac_tr_file 1
EOF
cat >> confdefs.h <<\EOF
#define HAVE_PROC_SELF_EXE 1
EOF
else
echo "$ac_t""no" 1>&6
fi
done
for ac_func in gethostbyname_r for ac_func in gethostbyname_r
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3232: checking for $ac_func" >&5 echo "configure:3363: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3237 "configure" #line 3368 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3256,7 +3387,7 @@ $ac_func(); ...@@ -3256,7 +3387,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -3283,7 +3414,7 @@ EOF ...@@ -3283,7 +3414,7 @@ EOF
# We look for the one that returns `int'. # We look for the one that returns `int'.
# Hopefully this check is robust enough. # Hopefully this check is robust enough.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3287 "configure" #line 3418 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <netdb.h> #include <netdb.h>
EOF EOF
...@@ -3303,7 +3434,7 @@ rm -f conftest* ...@@ -3303,7 +3434,7 @@ rm -f conftest*
*" -D_REENTRANT "*) ;; *" -D_REENTRANT "*) ;;
*) *)
echo $ac_n "checking whether gethostbyname_r declaration requires -D_REENTRANT""... $ac_c" 1>&6 echo $ac_n "checking whether gethostbyname_r declaration requires -D_REENTRANT""... $ac_c" 1>&6
echo "configure:3307: checking whether gethostbyname_r declaration requires -D_REENTRANT" >&5 echo "configure:3438: checking whether gethostbyname_r declaration requires -D_REENTRANT" >&5
if eval "test \"`echo '$''{'libjava_cv_gethostbyname_r_needs_reentrant'+set}'`\" = set"; then if eval "test \"`echo '$''{'libjava_cv_gethostbyname_r_needs_reentrant'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
...@@ -3316,14 +3447,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes ...@@ -3316,14 +3447,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3320 "configure" #line 3451 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <netdb.h> #include <netdb.h>
int main() { int main() {
gethostbyname_r("", 0, 0); gethostbyname_r("", 0, 0);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3327: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
libjava_cv_gethostbyname_r_needs_reentrant=no libjava_cv_gethostbyname_r_needs_reentrant=no
else else
...@@ -3333,14 +3464,14 @@ else ...@@ -3333,14 +3464,14 @@ else
CPPFLAGS_SAVE="$CPPFLAGS" CPPFLAGS_SAVE="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -D_REENTRANT" CPPFLAGS="$CPPFLAGS -D_REENTRANT"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3337 "configure" #line 3468 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <netdb.h> #include <netdb.h>
int main() { int main() {
gethostbyname_r("", 0, 0); gethostbyname_r("", 0, 0);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3475: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
libjava_cv_gethostbyname_r_needs_reentrant=yes libjava_cv_gethostbyname_r_needs_reentrant=yes
else else
...@@ -3375,12 +3506,12 @@ EOF ...@@ -3375,12 +3506,12 @@ EOF
esac esac
echo $ac_n "checking for struct hostent_data""... $ac_c" 1>&6 echo $ac_n "checking for struct hostent_data""... $ac_c" 1>&6
echo "configure:3379: checking for struct hostent_data" >&5 echo "configure:3510: checking for struct hostent_data" >&5
if eval "test \"`echo '$''{'libjava_cv_struct_hostent_data'+set}'`\" = set"; then if eval "test \"`echo '$''{'libjava_cv_struct_hostent_data'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3384 "configure" #line 3515 "configure"
#include "confdefs.h" #include "confdefs.h"
#if GETHOSTBYNAME_R_NEEDS_REENTRANT && !defined(_REENTRANT) #if GETHOSTBYNAME_R_NEEDS_REENTRANT && !defined(_REENTRANT)
...@@ -3391,7 +3522,7 @@ int main() { ...@@ -3391,7 +3522,7 @@ int main() {
struct hostent_data data; struct hostent_data data;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3526: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
libjava_cv_struct_hostent_data=yes libjava_cv_struct_hostent_data=yes
else else
...@@ -3420,12 +3551,12 @@ done ...@@ -3420,12 +3551,12 @@ done
for ac_func in gethostbyaddr_r for ac_func in gethostbyaddr_r
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3424: checking for $ac_func" >&5 echo "configure:3555: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3429 "configure" #line 3560 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3448,7 +3579,7 @@ $ac_func(); ...@@ -3448,7 +3579,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -3475,7 +3606,7 @@ EOF ...@@ -3475,7 +3606,7 @@ EOF
# We look for the one that returns `int'. # We look for the one that returns `int'.
# Hopefully this check is robust enough. # Hopefully this check is robust enough.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3479 "configure" #line 3610 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <netdb.h> #include <netdb.h>
EOF EOF
...@@ -3499,12 +3630,12 @@ done ...@@ -3499,12 +3630,12 @@ done
for ac_func in gethostname for ac_func in gethostname
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3503: checking for $ac_func" >&5 echo "configure:3634: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3508 "configure" #line 3639 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3527,7 +3658,7 @@ $ac_func(); ...@@ -3527,7 +3658,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -3551,7 +3682,7 @@ EOF ...@@ -3551,7 +3682,7 @@ EOF
EOF EOF
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3555 "configure" #line 3686 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <unistd.h> #include <unistd.h>
EOF EOF
...@@ -3582,12 +3713,12 @@ done ...@@ -3582,12 +3713,12 @@ done
for ac_func in pthread_mutexattr_settype pthread_mutexattr_setkind_np for ac_func in pthread_mutexattr_settype pthread_mutexattr_setkind_np
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3586: checking for $ac_func" >&5 echo "configure:3717: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3591 "configure" #line 3722 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3610,7 +3741,7 @@ $ac_func(); ...@@ -3610,7 +3741,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -3640,12 +3771,12 @@ done ...@@ -3640,12 +3771,12 @@ done
for ac_func in sched_yield for ac_func in sched_yield
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3644: checking for $ac_func" >&5 echo "configure:3775: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3649 "configure" #line 3780 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3668,7 +3799,7 @@ $ac_func(); ...@@ -3668,7 +3799,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -3690,7 +3821,7 @@ EOF ...@@ -3690,7 +3821,7 @@ EOF
else else
echo "$ac_t""no" 1>&6 echo "$ac_t""no" 1>&6
echo $ac_n "checking for sched_yield in -lrt""... $ac_c" 1>&6 echo $ac_n "checking for sched_yield in -lrt""... $ac_c" 1>&6
echo "configure:3694: checking for sched_yield in -lrt" >&5 echo "configure:3825: checking for sched_yield in -lrt" >&5
ac_lib_var=`echo rt'_'sched_yield | sed 'y%./+-%__p_%'` ac_lib_var=`echo rt'_'sched_yield | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
...@@ -3698,7 +3829,7 @@ else ...@@ -3698,7 +3829,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lrt $LIBS" LIBS="-lrt $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3702 "configure" #line 3833 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
...@@ -3709,7 +3840,7 @@ int main() { ...@@ -3709,7 +3840,7 @@ int main() {
sched_yield() sched_yield()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
...@@ -3735,7 +3866,7 @@ else ...@@ -3735,7 +3866,7 @@ else
echo "$ac_t""no" 1>&6 echo "$ac_t""no" 1>&6
echo $ac_n "checking for sched_yield in -lposix4""... $ac_c" 1>&6 echo $ac_n "checking for sched_yield in -lposix4""... $ac_c" 1>&6
echo "configure:3739: checking for sched_yield in -lposix4" >&5 echo "configure:3870: checking for sched_yield in -lposix4" >&5
ac_lib_var=`echo posix4'_'sched_yield | sed 'y%./+-%__p_%'` ac_lib_var=`echo posix4'_'sched_yield | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
...@@ -3743,7 +3874,7 @@ else ...@@ -3743,7 +3874,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lposix4 $LIBS" LIBS="-lposix4 $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3747 "configure" #line 3878 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
...@@ -3754,7 +3885,7 @@ int main() { ...@@ -3754,7 +3885,7 @@ int main() {
sched_yield() sched_yield()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
...@@ -3790,7 +3921,7 @@ done ...@@ -3790,7 +3921,7 @@ done
# We can save a little space at runtime if the mutex has m_count # We can save a little space at runtime if the mutex has m_count
# or __m_count. This is a nice hack for Linux. # or __m_count. This is a nice hack for Linux.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3794 "configure" #line 3925 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pthread.h> #include <pthread.h>
int main() { int main() {
...@@ -3799,7 +3930,7 @@ int main() { ...@@ -3799,7 +3930,7 @@ int main() {
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3803: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define PTHREAD_MUTEX_HAVE_M_COUNT 1 #define PTHREAD_MUTEX_HAVE_M_COUNT 1
...@@ -3811,7 +3942,7 @@ else ...@@ -3811,7 +3942,7 @@ else
rm -rf conftest* rm -rf conftest*
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3815 "configure" #line 3946 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <pthread.h> #include <pthread.h>
int main() { int main() {
...@@ -3820,7 +3951,7 @@ int main() { ...@@ -3820,7 +3951,7 @@ int main() {
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3824: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3955: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define PTHREAD_MUTEX_HAVE___M_COUNT 1 #define PTHREAD_MUTEX_HAVE___M_COUNT 1
...@@ -3840,12 +3971,12 @@ rm -f conftest* ...@@ -3840,12 +3971,12 @@ rm -f conftest*
for ac_func in gettimeofday time ftime for ac_func in gettimeofday time ftime
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3844: checking for $ac_func" >&5 echo "configure:3975: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3849 "configure" #line 3980 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3868,7 +3999,7 @@ $ac_func(); ...@@ -3868,7 +3999,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -3899,12 +4030,12 @@ done ...@@ -3899,12 +4030,12 @@ done
for ac_func in memmove for ac_func in memmove
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3903: checking for $ac_func" >&5 echo "configure:4034: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3908 "configure" #line 4039 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3927,7 +4058,7 @@ $ac_func(); ...@@ -3927,7 +4058,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -3957,12 +4088,12 @@ done ...@@ -3957,12 +4088,12 @@ done
for ac_func in memcpy for ac_func in memcpy
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3961: checking for $ac_func" >&5 echo "configure:4092: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3966 "configure" #line 4097 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -3985,7 +4116,7 @@ $ac_func(); ...@@ -3985,7 +4116,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -4033,7 +4164,7 @@ done ...@@ -4033,7 +4164,7 @@ done
#-------------------------------------------------------------------- #--------------------------------------------------------------------
echo $ac_n "checking for socket libraries""... $ac_c" 1>&6 echo $ac_n "checking for socket libraries""... $ac_c" 1>&6
echo "configure:4037: checking for socket libraries" >&5 echo "configure:4168: checking for socket libraries" >&5
if eval "test \"`echo '$''{'gcj_cv_lib_sockets'+set}'`\" = set"; then if eval "test \"`echo '$''{'gcj_cv_lib_sockets'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
...@@ -4041,12 +4172,12 @@ else ...@@ -4041,12 +4172,12 @@ else
gcj_checkBoth=0 gcj_checkBoth=0
unset ac_cv_func_connect unset ac_cv_func_connect
echo $ac_n "checking for connect""... $ac_c" 1>&6 echo $ac_n "checking for connect""... $ac_c" 1>&6
echo "configure:4045: checking for connect" >&5 echo "configure:4176: checking for connect" >&5
if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4050 "configure" #line 4181 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */ which can conflict with char connect(); below. */
...@@ -4069,7 +4200,7 @@ connect(); ...@@ -4069,7 +4200,7 @@ connect();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_connect=yes" eval "ac_cv_func_connect=yes"
else else
...@@ -4092,7 +4223,7 @@ fi ...@@ -4092,7 +4223,7 @@ fi
if test "$gcj_checkSocket" = 1; then if test "$gcj_checkSocket" = 1; then
unset ac_cv_func_connect unset ac_cv_func_connect
echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
echo "configure:4096: checking for main in -lsocket" >&5 echo "configure:4227: checking for main in -lsocket" >&5
ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'` ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
...@@ -4100,14 +4231,14 @@ else ...@@ -4100,14 +4231,14 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS" LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4104 "configure" #line 4235 "configure"
#include "confdefs.h" #include "confdefs.h"
int main() { int main() {
main() main()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
...@@ -4134,12 +4265,12 @@ fi ...@@ -4134,12 +4265,12 @@ fi
LIBS="$LIBS -lsocket -lnsl" LIBS="$LIBS -lsocket -lnsl"
unset ac_cv_func_accept unset ac_cv_func_accept
echo $ac_n "checking for accept""... $ac_c" 1>&6 echo $ac_n "checking for accept""... $ac_c" 1>&6
echo "configure:4138: checking for accept" >&5 echo "configure:4269: checking for accept" >&5
if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4143 "configure" #line 4274 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char accept(); below. */ which can conflict with char accept(); below. */
...@@ -4162,7 +4293,7 @@ accept(); ...@@ -4162,7 +4293,7 @@ accept();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_accept=yes" eval "ac_cv_func_accept=yes"
else else
...@@ -4189,12 +4320,12 @@ fi ...@@ -4189,12 +4320,12 @@ fi
gcj_oldLibs=$LIBS gcj_oldLibs=$LIBS
LIBS="$LIBS $gcj_cv_lib_sockets" LIBS="$LIBS $gcj_cv_lib_sockets"
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
echo "configure:4193: checking for gethostbyname" >&5 echo "configure:4324: checking for gethostbyname" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4198 "configure" #line 4329 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */ which can conflict with char gethostbyname(); below. */
...@@ -4217,7 +4348,7 @@ gethostbyname(); ...@@ -4217,7 +4348,7 @@ gethostbyname();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_gethostbyname=yes" eval "ac_cv_func_gethostbyname=yes"
else else
...@@ -4235,7 +4366,7 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then ...@@ -4235,7 +4366,7 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
else else
echo "$ac_t""no" 1>&6 echo "$ac_t""no" 1>&6
echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
echo "configure:4239: checking for main in -lnsl" >&5 echo "configure:4370: checking for main in -lnsl" >&5
ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'` ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
...@@ -4243,14 +4374,14 @@ else ...@@ -4243,14 +4374,14 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS" LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4247 "configure" #line 4378 "configure"
#include "confdefs.h" #include "confdefs.h"
int main() { int main() {
main() main()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
...@@ -4282,7 +4413,7 @@ echo "$ac_t""$gcj_cv_lib_sockets" 1>&6 ...@@ -4282,7 +4413,7 @@ echo "$ac_t""$gcj_cv_lib_sockets" 1>&6
if test "$with_system_zlib" = yes; then if test "$with_system_zlib" = yes; then
echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6 echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
echo "configure:4286: checking for deflate in -lz" >&5 echo "configure:4417: checking for deflate in -lz" >&5
ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'` ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
...@@ -4290,7 +4421,7 @@ else ...@@ -4290,7 +4421,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lz $LIBS" LIBS="-lz $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4294 "configure" #line 4425 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
...@@ -4301,7 +4432,7 @@ int main() { ...@@ -4301,7 +4432,7 @@ int main() {
deflate() deflate()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
...@@ -4330,7 +4461,7 @@ fi ...@@ -4330,7 +4461,7 @@ fi
# requires -ldl. # requires -ldl.
if test "$GC" = boehm; then if test "$GC" = boehm; then
echo $ac_n "checking for main in -ldl""... $ac_c" 1>&6 echo $ac_n "checking for main in -ldl""... $ac_c" 1>&6
echo "configure:4334: checking for main in -ldl" >&5 echo "configure:4465: checking for main in -ldl" >&5
ac_lib_var=`echo dl'_'main | sed 'y%./+-%__p_%'` ac_lib_var=`echo dl'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
...@@ -4338,14 +4469,14 @@ else ...@@ -4338,14 +4469,14 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS" LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4342 "configure" #line 4473 "configure"
#include "confdefs.h" #include "confdefs.h"
int main() { int main() {
main() main()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
...@@ -4465,7 +4596,7 @@ EOF ...@@ -4465,7 +4596,7 @@ EOF
# See if gcj supports -fuse-divide-subroutine. gcc 2.95 does not, and # See if gcj supports -fuse-divide-subroutine. gcc 2.95 does not, and
# we want to continue to support that version. # we want to continue to support that version.
echo $ac_n "checking whether gcj supports -fuse-divide-subroutine""... $ac_c" 1>&6 echo $ac_n "checking whether gcj supports -fuse-divide-subroutine""... $ac_c" 1>&6
echo "configure:4469: checking whether gcj supports -fuse-divide-subroutine" >&5 echo "configure:4600: checking whether gcj supports -fuse-divide-subroutine" >&5
cat > conftest.java << 'END' cat > conftest.java << 'END'
public class conftest { } public class conftest { }
END END
...@@ -4485,17 +4616,17 @@ for ac_hdr in unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/ ...@@ -4485,17 +4616,17 @@ for ac_hdr in unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/
do do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4489: checking for $ac_hdr" >&5 echo "configure:4620: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4494 "configure" #line 4625 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <$ac_hdr> #include <$ac_hdr>
EOF EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4499: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } { (eval echo configure:4630: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then if test -z "$ac_err"; then
rm -rf conftest* rm -rf conftest*
...@@ -4525,17 +4656,17 @@ for ac_hdr in dirent.h ...@@ -4525,17 +4656,17 @@ for ac_hdr in dirent.h
do do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4529: checking for $ac_hdr" >&5 echo "configure:4660: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4534 "configure" #line 4665 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <$ac_hdr> #include <$ac_hdr>
EOF EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } { (eval echo configure:4670: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then if test -z "$ac_err"; then
rm -rf conftest* rm -rf conftest*
...@@ -4563,12 +4694,12 @@ done ...@@ -4563,12 +4694,12 @@ done
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
echo "configure:4567: checking for ANSI C header files" >&5 echo "configure:4698: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4572 "configure" #line 4703 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h> #include <stdarg.h>
...@@ -4576,7 +4707,7 @@ else ...@@ -4576,7 +4707,7 @@ else
#include <float.h> #include <float.h>
EOF EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4580: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } { (eval echo configure:4711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then if test -z "$ac_err"; then
rm -rf conftest* rm -rf conftest*
...@@ -4593,7 +4724,7 @@ rm -f conftest* ...@@ -4593,7 +4724,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI. # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4597 "configure" #line 4728 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <string.h> #include <string.h>
EOF EOF
...@@ -4611,7 +4742,7 @@ fi ...@@ -4611,7 +4742,7 @@ fi
if test $ac_cv_header_stdc = yes; then if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4615 "configure" #line 4746 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdlib.h> #include <stdlib.h>
EOF EOF
...@@ -4632,7 +4763,7 @@ if test "$cross_compiling" = yes; then ...@@ -4632,7 +4763,7 @@ if test "$cross_compiling" = yes; then
: :
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4636 "configure" #line 4767 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <ctype.h> #include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
...@@ -4643,7 +4774,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); ...@@ -4643,7 +4774,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); } exit (0); }
EOF EOF
if { (eval echo configure:4647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null if { (eval echo configure:4778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then then
: :
else else
...@@ -4667,12 +4798,12 @@ EOF ...@@ -4667,12 +4798,12 @@ EOF
fi fi
echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
echo "configure:4671: checking for ssize_t" >&5 echo "configure:4802: checking for ssize_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4676 "configure" #line 4807 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#if STDC_HEADERS #if STDC_HEADERS
...@@ -4701,9 +4832,9 @@ fi ...@@ -4701,9 +4832,9 @@ fi
echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6 echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6
echo "configure:4705: checking for in_addr_t" >&5 echo "configure:4836: checking for in_addr_t" >&5
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4707 "configure" #line 4838 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/types.h> #include <sys/types.h>
#if STDC_HEADERS #if STDC_HEADERS
...@@ -4717,7 +4848,7 @@ int main() { ...@@ -4717,7 +4848,7 @@ int main() {
in_addr_t foo; in_addr_t foo;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4721: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4852: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define HAVE_IN_ADDR_T 1 #define HAVE_IN_ADDR_T 1
...@@ -4733,16 +4864,16 @@ fi ...@@ -4733,16 +4864,16 @@ fi
rm -f conftest* rm -f conftest*
echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6 echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6
echo "configure:4737: checking whether struct ip_mreq is in netinet/in.h" >&5 echo "configure:4868: checking whether struct ip_mreq is in netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4739 "configure" #line 4870 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <netinet/in.h> #include <netinet/in.h>
int main() { int main() {
struct ip_mreq mreq; struct ip_mreq mreq;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4746: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define HAVE_STRUCT_IP_MREQ 1 #define HAVE_STRUCT_IP_MREQ 1
...@@ -4758,16 +4889,16 @@ fi ...@@ -4758,16 +4889,16 @@ fi
rm -f conftest* rm -f conftest*
echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6 echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6
echo "configure:4762: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 echo "configure:4893: checking whether struct sockaddr_in6 is in netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4764 "configure" #line 4895 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <netinet/in.h> #include <netinet/in.h>
int main() { int main() {
struct sockaddr_in6 addr6; struct sockaddr_in6 addr6;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define HAVE_INET6 1 #define HAVE_INET6 1
...@@ -4783,16 +4914,16 @@ fi ...@@ -4783,16 +4914,16 @@ fi
rm -f conftest* rm -f conftest*
echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6 echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6
echo "configure:4787: checking for socklen_t in sys/socket.h" >&5 echo "configure:4918: checking for socklen_t in sys/socket.h" >&5
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4789 "configure" #line 4920 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <sys/socket.h> #include <sys/socket.h>
int main() { int main() {
socklen_t x = 5; socklen_t x = 5;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define HAVE_SOCKLEN_T 1 #define HAVE_SOCKLEN_T 1
...@@ -4808,16 +4939,16 @@ fi ...@@ -4808,16 +4939,16 @@ fi
rm -f conftest* rm -f conftest*
echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6 echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6
echo "configure:4812: checking for tm_gmtoff in struct tm" >&5 echo "configure:4943: checking for tm_gmtoff in struct tm" >&5
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4814 "configure" #line 4945 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <time.h> #include <time.h>
int main() { int main() {
struct tm tim; tim.tm_gmtoff = 0; struct tm tim; tim.tm_gmtoff = 0;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4821: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4952: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define STRUCT_TM_HAS_GMTOFF 1 #define STRUCT_TM_HAS_GMTOFF 1
...@@ -4830,16 +4961,16 @@ else ...@@ -4830,16 +4961,16 @@ else
rm -rf conftest* rm -rf conftest*
echo "$ac_t""no" 1>&6 echo "$ac_t""no" 1>&6
echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6 echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6
echo "configure:4834: checking for global timezone variable" >&5 echo "configure:4965: checking for global timezone variable" >&5
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4836 "configure" #line 4967 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <time.h> #include <time.h>
int main() { int main() {
long z2 = timezone; long z2 = timezone;
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:4974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
cat >> confdefs.h <<\EOF cat >> confdefs.h <<\EOF
#define HAVE_TIMEZONE 1 #define HAVE_TIMEZONE 1
...@@ -4859,19 +4990,19 @@ rm -f conftest* ...@@ -4859,19 +4990,19 @@ rm -f conftest*
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless! # for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
echo "configure:4863: checking for working alloca.h" >&5 echo "configure:4994: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4868 "configure" #line 4999 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <alloca.h> #include <alloca.h>
int main() { int main() {
char *p = alloca(2 * sizeof(int)); char *p = alloca(2 * sizeof(int));
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:5006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
ac_cv_header_alloca_h=yes ac_cv_header_alloca_h=yes
else else
...@@ -4892,12 +5023,12 @@ EOF ...@@ -4892,12 +5023,12 @@ EOF
fi fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6 echo $ac_n "checking for alloca""... $ac_c" 1>&6
echo "configure:4896: checking for alloca" >&5 echo "configure:5027: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4901 "configure" #line 5032 "configure"
#include "confdefs.h" #include "confdefs.h"
#ifdef __GNUC__ #ifdef __GNUC__
...@@ -4925,7 +5056,7 @@ int main() { ...@@ -4925,7 +5056,7 @@ int main() {
char *p = (char *) alloca(1); char *p = (char *) alloca(1);
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:4929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:5060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
ac_cv_func_alloca_works=yes ac_cv_func_alloca_works=yes
else else
...@@ -4957,12 +5088,12 @@ EOF ...@@ -4957,12 +5088,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
echo "configure:4961: checking whether alloca needs Cray hooks" >&5 echo "configure:5092: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4966 "configure" #line 5097 "configure"
#include "confdefs.h" #include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2) #if defined(CRAY) && ! defined(CRAY2)
webecray webecray
...@@ -4987,12 +5118,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6 ...@@ -4987,12 +5118,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:4991: checking for $ac_func" >&5 echo "configure:5122: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4996 "configure" #line 5127 "configure"
#include "confdefs.h" #include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */ which can conflict with char $ac_func(); below. */
...@@ -5015,7 +5146,7 @@ $ac_func(); ...@@ -5015,7 +5146,7 @@ $ac_func();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:5019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:5150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_func_$ac_func=yes" eval "ac_cv_func_$ac_func=yes"
else else
...@@ -5042,7 +5173,7 @@ done ...@@ -5042,7 +5173,7 @@ done
fi fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
echo "configure:5046: checking stack direction for C alloca" >&5 echo "configure:5177: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
...@@ -5050,7 +5181,7 @@ else ...@@ -5050,7 +5181,7 @@ else
ac_cv_c_stack_direction=0 ac_cv_c_stack_direction=0
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 5054 "configure" #line 5185 "configure"
#include "confdefs.h" #include "confdefs.h"
find_stack_direction () find_stack_direction ()
{ {
...@@ -5069,7 +5200,7 @@ main () ...@@ -5069,7 +5200,7 @@ main ()
exit (find_stack_direction() < 0); exit (find_stack_direction() < 0);
} }
EOF EOF
if { (eval echo configure:5073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null if { (eval echo configure:5204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then then
ac_cv_c_stack_direction=1 ac_cv_c_stack_direction=1
else else
...@@ -5096,7 +5227,7 @@ do ...@@ -5096,7 +5227,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args. # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2 set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5100: checking for $ac_word" >&5 echo "configure:5231: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
......
...@@ -86,7 +86,7 @@ fi ...@@ -86,7 +86,7 @@ fi
FORCELIBGCCSPEC= FORCELIBGCCSPEC=
dnl Work around libgcc design flaw. dnl Work around libgcc design flaw.
if test "$ac_cv_prog_gnu_ld" = yes; then if test "$ac_cv_prog_gnu_ld" = yes; then
FORCELIBGCCSPEC="-u __rethrow -lgcc" FORCELIBGCCSPEC="-u __rethrow -u __frame_state_for -lgcc"
fi fi
AC_MSG_CHECKING([for data_start]) AC_MSG_CHECKING([for data_start])
...@@ -360,6 +360,10 @@ else ...@@ -360,6 +360,10 @@ else
AC_CHECK_FUNCS(access stat mkdir rename rmdir unlink realpath) AC_CHECK_FUNCS(access stat mkdir rename rmdir unlink realpath)
AC_CHECK_FUNCS(inet_aton inet_addr, break) AC_CHECK_FUNCS(inet_aton inet_addr, break)
AC_CHECK_FUNCS(inet_pton uname inet_ntoa) AC_CHECK_FUNCS(inet_pton uname inet_ntoa)
AC_CHECK_FUNCS(backtrace fork execvp pipe)
AC_CHECK_HEADERS(execinfo.h unistd.h dlfcn.h)
AC_CHECK_FILES(/proc/self/exe, [
AC_DEFINE(HAVE_PROC_SELF_EXE)])
AC_CHECK_FUNCS(gethostbyname_r, [ AC_CHECK_FUNCS(gethostbyname_r, [
AC_DEFINE(HAVE_GETHOSTBYNAME_R) AC_DEFINE(HAVE_GETHOSTBYNAME_R)
......
...@@ -135,12 +135,25 @@ ...@@ -135,12 +135,25 @@
/* Define if using setjmp/longjmp exceptions. */ /* Define if using setjmp/longjmp exceptions. */
#undef SJLJ_EXCEPTIONS #undef SJLJ_EXCEPTIONS
/* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE
/* Define if getuid() and friends are missing. */ /* Define if getuid() and friends are missing. */
#undef NO_GETUID #undef NO_GETUID
/* Define if you have the access function. */ /* Define if you have the access function. */
#undef HAVE_ACCESS #undef HAVE_ACCESS
/* Define if you have the backtrace function. */
#undef HAVE_BACKTRACE
/* 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. */ /* Define if you have the fstat function. */
#undef HAVE_FSTAT #undef HAVE_FSTAT
...@@ -201,6 +214,9 @@ ...@@ -201,6 +214,9 @@
/* Define if you have the open function. */ /* Define if you have the open function. */
#undef HAVE_OPEN #undef HAVE_OPEN
/* Define if you have the pipe function. */
#undef HAVE_PIPE
/* Define if you have the pthread_mutexattr_setkind_np function. */ /* Define if you have the pthread_mutexattr_setkind_np function. */
#undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP #undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP
...@@ -252,6 +268,12 @@ ...@@ -252,6 +268,12 @@
/* Define if you have the <dirent.h> header file. */ /* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H #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. */ /* Define if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H #undef HAVE_FCNTL_H
......
...@@ -182,4 +182,8 @@ extern "C" ...@@ -182,4 +182,8 @@ extern "C"
jlong _Jv_remJ (jlong, jlong); jlong _Jv_remJ (jlong, jlong);
} }
/* get/set the name of the running executable. */
extern char *_Jv_ThisExecutable (void);
extern void _Jv_ThisExecutable (const char *);
#endif /* __JAVA_JVM_H__ */ #endif /* __JAVA_JVM_H__ */
// name-finder.h - Convert addresses to names
/* Copyright (C) 2000 Red Hat Inc
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
/**
* @author Andrew Haley <aph@cygnus.com>
* @date Jan 6 2000
*/
#include <gcj/cni.h>
#include <jvm.h>
#include <sys/types.h>
#include <string.h>
#include <stdio.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
/* _Jv_name_finder is a class wrapper around a mechanism that can
convert addresses of methods to their names and the names of files
in which they appear. */
class _Jv_name_finder
{
public:
_Jv_name_finder (char *executable);
~_Jv_name_finder ()
{
#if defined (HAVE_PIPE) && defined (HAVE_FORK)
close (f_pipe[1]);
fclose (b_pipe_fd);
#endif
}
/* Given a pointer to a function or method, try to convert it into a
name and the appropriate line and source file. The caller passes
the code pointer in p.
Returns false if the lookup fails. Even if this happens, the field
hex will have been correctly filled in with the pointer.
The other fields are method_name and file_name, which lookup will
attempt to fill appropriately. If the lookup has failed, these
fields contain garbage.*/
bool lookup (void *p);
char method_name[1024];
char file_name[1024];
char hex[sizeof (void *) * 2 + 5];
private:
void toHex (void *p);
#if defined (HAVE_PIPE) && defined (HAVE_FORK)
int pid;
int f_pipe[2], b_pipe[2];
FILE *b_pipe_fd;
int error;
#endif
};
...@@ -12,6 +12,7 @@ package java.lang; ...@@ -12,6 +12,7 @@ package java.lang;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.Serializable; import java.io.Serializable;
import java.io.OutputStreamWriter;
/** /**
* @author Tom Tromey <tromey@cygnus.com> * @author Tom Tromey <tromey@cygnus.com>
...@@ -26,55 +27,51 @@ import java.io.Serializable; ...@@ -26,55 +27,51 @@ import java.io.Serializable;
public class Throwable implements Serializable public class Throwable implements Serializable
{ {
public Throwable fillInStackTrace () public native Throwable fillInStackTrace ();
{
return this;
}
public String getLocalizedMessage () public String getLocalizedMessage ()
{ {
return getMessage (); return getMessage ();
} }
public String getMessage () public String getMessage ()
{ {
return detailMessage; return detailMessage;
} }
public void printStackTrace () public void printStackTrace ()
{ {
printStackTrace (System.err); printStackTrace (System.err);
} }
public void printStackTrace (PrintStream s) public void printStackTrace (PrintStream ps)
{ {
// No stack trace, but we can still print this object. printStackTrace (new PrintWriter(new OutputStreamWriter(ps)));
s.println(toString ()); }
}
public native void printStackTrace (PrintWriter wr);
public void printStackTrace (PrintWriter wr)
{
// No stack trace, but we can still print this object.
wr.println(toString ());
}
public Throwable () public Throwable ()
{ {
detailMessage = null; detailMessage = null;
} fillInStackTrace ();
}
public Throwable (String message) public Throwable (String message)
{ {
detailMessage = message; detailMessage = message;
} fillInStackTrace ();
}
public String toString () public String toString ()
{ {
return ((detailMessage == null) return ((detailMessage == null)
? getClass().getName() ? getClass().getName()
: getClass().getName() + ": " + getMessage ()); : getClass().getName() + ": " + getMessage ());
} }
// Name of this field comes from serialization spec. // Name of this field comes from serialization spec.
private String detailMessage; private String detailMessage;
private byte stackTrace[];
} }
// natThrowable.cc - Superclass for all exceptions.
/* Copyright (C) 2000 Red Hat Inc
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
/**
* @author Andrew Haley <aph@cygnus.com>
* @date Jan 6 2000
*/
#include <config.h>
#include <string.h>
#pragma implementation "Throwable.h"
#include <gcj/cni.h>
#include <jvm.h>
#include <java/lang/Object.h>
#include <java-threads.h>
#include <java/lang/Throwable.h>
#include <java/io/PrintStream.h>
#include <java/io/PrintWriter.h>
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#ifdef HAVE_EXECINFO_H
#include <execinfo.h>
#endif
#include <name-finder.h>
/* FIXME: size of the stack trace is limited to 128 elements. It's
undoubtedly sensible to limit the stack trace, but 128 is rather
arbitrary. It may be better to configure this. */
java::lang::Throwable *
java::lang::Throwable::fillInStackTrace (void)
{
#ifdef HAVE_BACKTRACE
void *p[128];
// We subtract 1 from the number of elements because we don't want
// to include the call to fillInStackTrace in the trace.
int n = backtrace (p, 128) - 1;
// ??? Might this cause a problem if the byte array isn't aligned?
stackTrace = JvNewByteArray (n * sizeof p[0]);
memcpy (elements (stackTrace), p+1, (n * sizeof p[0]));
return this;
#endif
}
void
java::lang::Throwable::printStackTrace (java::io::PrintWriter *wr)
{
wr->println (toString ());
#ifdef HAVE_BACKTRACE
if (!stackTrace)
return;
void **p = (void **)elements (stackTrace);
int depth = stackTrace->length / sizeof p[0];
_Jv_name_finder finder (_Jv_ThisExecutable ());
for (int i = 0; i < depth; i++)
{
bool found = finder.lookup (p[i]);
wr->print (JvNewStringLatin1 (" at "));
wr->print (JvNewStringLatin1 (finder.hex));
if (found)
{
wr->print (JvNewStringLatin1 (": "));
wr->print (JvNewStringLatin1 (finder.method_name));
wr->print (JvNewStringLatin1 (" ("));
wr->print (JvNewStringLatin1 (finder.file_name));
wr->print (JvNewStringLatin1 (")"));
}
wr->println ();
}
#endif /* HAVE_BACKTRACE */
}
// name-finder.cc - Convert addresses to names
/* Copyright (C) 2000 Red Hat Inc
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
/**
* @author Andrew Haley <aph@cygnus.com>
* @date Jan 6 2000
*/
/* _Jv_name_finder is a class wrapper around a mechanism that can
convert address of methods to their names and the names of files in
which they appear.
Right now, the only implementation of this involves running a copy
of addr2line, but at some point it is worth building this
functionality into libgcj, if only for embedded systems. */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE 1
#endif
#include <config.h>
#include <string.h>
#include <gcj/cni.h>
#include <jvm.h>
#include <java/lang/Object.h>
#include <java-threads.h>
#include <java/lang/Throwable.h>
#include <java/io/PrintStream.h>
#include <java/io/PrintWriter.h>
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
#endif
#include <name-finder.h>
/* Create a new name finder which will perform address lookups on an
executable. */
_Jv_name_finder::_Jv_name_finder (char *executable)
{
#if defined (HAVE_PIPE) && defined (HAVE_FORK) && defined (HAVE_EXECVP)
error = 0;
char *argv[6];
{
int arg = 0;
argv[arg++] = "addr2line";
argv[arg++] = "-C";
argv[arg++] = "-f";
argv[arg++] = "-e";
argv[arg++] = executable;
argv[arg] = NULL;
}
error |= pipe (f_pipe) < 0;
error |= pipe (b_pipe) < 0;
if (error)
return;
pid = fork ();
if (pid == 0)
{
close (f_pipe[1]);
close (b_pipe[0]);
dup2 (f_pipe[0], fileno (stdin));
dup2 (b_pipe[1], fileno (stdout));
execvp (argv[0], argv);
_exit (127);
}
close (f_pipe [0]);
close (b_pipe [1]);
if (pid < 0)
{
error |= 1;
return;
}
b_pipe_fd = fdopen (b_pipe[0], "r");
error |= !b_pipe_fd;
#endif
}
/* Convert a pointer to hex. */
void
_Jv_name_finder::toHex (void *p)
{
unsigned long long n = (unsigned long long)p;
int digits = sizeof (void *) * 2;
strcpy (hex, "0x");
for (int i = digits - 1; i >= 0; i--)
{
int digit = n % 16;
n /= 16;
hex[i+2] = digit > 9 ? 'a' + digit - 10 : '0' + digit;
}
hex [digits+2] = 0;
}
/* Given a pointer to a function or method, try to convert it into a
name and the appropriate line and source file. The caller passes
the code pointer in p.
Returns false if the lookup fails. Even if this happens, the field
he will have been correctly filled in with the pointer. */
bool
_Jv_name_finder::lookup (void *p)
{
toHex (p);
#ifdef HAVE_DLFCN_H
{
Dl_info dl_info;
if (dladdr (p, &dl_info))
{
strncpy (file_name, dl_info.dli_fname, sizeof file_name);
strncpy (method_name, dl_info.dli_sname, sizeof method_name);
return true;
}
}
#endif
#if defined (HAVE_PIPE) && defined (HAVE_FORK) && defined (HAVE_EXECVP)
if (error)
return false;
error |= write (f_pipe[1], hex, strlen (hex)) < 0;
if (error)
return false;
error |= write (f_pipe[1], "\n", 1) < 0;
if (error)
return false;
error |= (fgets (method_name, sizeof method_name, b_pipe_fd) == NULL);
if (error)
return false;
error |= (fgets (file_name, sizeof file_name, b_pipe_fd) == NULL);
if (error)
return false;
char *newline = strchr (method_name, '\n');
if (newline)
*newline = 0;
newline = strchr (file_name, '\n');
if (newline)
*newline = 0;
return true;
#else
return false;
#endif /* defined (HAVE_PIPE) && defined (HAVE_FORK) && defined (HAVE_EXECVP) */
}
...@@ -16,6 +16,10 @@ details. */ ...@@ -16,6 +16,10 @@ details. */
#include <string.h> #include <string.h>
#include <signal.h> #include <signal.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <gcj/cni.h> #include <gcj/cni.h>
#include <jvm.h> #include <jvm.h>
#include <java-signal.h> #include <java-signal.h>
...@@ -68,6 +72,10 @@ const char **_Jv_Compiler_Properties; ...@@ -68,6 +72,10 @@ const char **_Jv_Compiler_Properties;
// Property key/value pairs. // Property key/value pairs.
property_pair *_Jv_Environment_Properties; property_pair *_Jv_Environment_Properties;
#endif #endif
// The name of this executable.
static char * _Jv_execName;
#ifdef HANDLE_SEGV #ifdef HANDLE_SEGV
...@@ -75,6 +83,7 @@ static java::lang::NullPointerException *nullp; ...@@ -75,6 +83,7 @@ static java::lang::NullPointerException *nullp;
SIGNAL_HANDLER (catch_segv) SIGNAL_HANDLER (catch_segv)
{ {
MAKE_THROW_FRAME; MAKE_THROW_FRAME;
nullp->fillInStackTrace ();
_Jv_Throw (nullp); _Jv_Throw (nullp);
} }
#endif #endif
...@@ -89,6 +98,7 @@ SIGNAL_HANDLER (catch_fpe) ...@@ -89,6 +98,7 @@ SIGNAL_HANDLER (catch_fpe)
#else #else
MAKE_THROW_FRAME; MAKE_THROW_FRAME;
#endif #endif
arithexception->fillInStackTrace ();
_Jv_Throw (arithexception); _Jv_Throw (arithexception);
} }
#endif #endif
...@@ -638,8 +648,24 @@ static java::lang::ThreadGroup *main_group; ...@@ -638,8 +648,24 @@ static java::lang::ThreadGroup *main_group;
// The primary thread. // The primary thread.
static java::lang::Thread *main_thread; static java::lang::Thread *main_thread;
char *
_Jv_ThisExecutable (void)
{
return _Jv_execName;
}
void
_Jv_ThisExecutable (const char *name)
{
if (name)
{
_Jv_execName = new char[strlen (name) + 1];
strcpy (_Jv_execName, name);
}
}
static void static void
main_init (void) main_init ()
{ {
INIT_SEGV; INIT_SEGV;
#ifdef HANDLE_FPE #ifdef HANDLE_FPE
...@@ -812,6 +838,13 @@ JvRunMain (jclass klass, int argc, const char **argv) ...@@ -812,6 +838,13 @@ JvRunMain (jclass klass, int argc, const char **argv)
PROCESS_GCJ_PROPERTIES; PROCESS_GCJ_PROPERTIES;
main_init (); main_init ();
#ifdef HAVE_PROC_SELF_EXE
char exec_name[20];
sprintf (exec_name, "/proc/%d/exe", getpid ());
_Jv_ThisExecutable (exec_name);
#else
_Jv_ThisExecutable (argv[0]);
#endif
arg_vec = JvConvertArgv (argc - 1, argv + 1); arg_vec = JvConvertArgv (argc - 1, argv + 1);
main_group = new java::lang::ThreadGroup (23); main_group = new java::lang::ThreadGroup (23);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment