mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-19 03:43:59 +08:00
Runtime.java (loadLibraryInternal): Declare.
* java/lang/Runtime.java (loadLibraryInternal): Declare. * java/lang/natClassLoader.cc (_Jv_FindClass): Removed dead copy. (_Jv_FindClassInCache): Likewise. (_Jv_FindClass): Don't conditionalize body on INTERPRETER. (findSystemClass): Try to load class from compiled module. Include Runtime.h. * java/lang/natRuntime.cc (load): Use UTF-8 copy of filename. (loadLibrary): Likewise. (lt_preloaded_symbols): Define. (loadLibraryInternal): New method. * include/config.h.in: Rebuilt. * acconfig.h (USE_LTDL): Added. * Makefile.am (SUBDIRS): Added $(DIRLTDL). (INCLUDES): Added $(INCLTDL).b (libgcj_la_DEPENDENCIES): Added $(LIBLTDL). (libgcj_la_LIBADD): Likewise. * aclocal.m4, configure: Rebuilt. * configure.in: Added libltdl support. From-SVN: r31472
This commit is contained in:
parent
06f5673716
commit
7af8555855
@ -1,3 +1,24 @@
|
||||
2000-01-17 Tom Tromey <tromey@cygnus.com>
|
||||
|
||||
* java/lang/Runtime.java (loadLibraryInternal): Declare.
|
||||
* java/lang/natClassLoader.cc (_Jv_FindClass): Removed dead copy.
|
||||
(_Jv_FindClassInCache): Likewise.
|
||||
(_Jv_FindClass): Don't conditionalize body on INTERPRETER.
|
||||
(findSystemClass): Try to load class from compiled module.
|
||||
Include Runtime.h.
|
||||
* java/lang/natRuntime.cc (load): Use UTF-8 copy of filename.
|
||||
(loadLibrary): Likewise.
|
||||
(lt_preloaded_symbols): Define.
|
||||
(loadLibraryInternal): New method.
|
||||
* include/config.h.in: Rebuilt.
|
||||
* acconfig.h (USE_LTDL): Added.
|
||||
* Makefile.am (SUBDIRS): Added $(DIRLTDL).
|
||||
(INCLUDES): Added $(INCLTDL).b
|
||||
(libgcj_la_DEPENDENCIES): Added $(LIBLTDL).
|
||||
(libgcj_la_LIBADD): Likewise.
|
||||
* aclocal.m4, configure: Rebuilt.
|
||||
* configure.in: Added libltdl support.
|
||||
|
||||
2000-01-15 Tom Tromey <tromey@cygnus.com>
|
||||
|
||||
* prims.cc (_Jv_PrimClass): Use `JV_STATE_NOTHING', not `0'.
|
||||
|
@ -3,9 +3,9 @@
|
||||
AUTOMAKE_OPTIONS = foreign no-installinfo
|
||||
|
||||
if TESTSUBDIR
|
||||
SUBDIRS = testsuite gcj include
|
||||
SUBDIRS = $(DIRLTDL) testsuite gcj include
|
||||
else
|
||||
SUBDIRS = gcj include
|
||||
SUBDIRS = $(DIRLTDL) gcj include
|
||||
endif
|
||||
|
||||
## ################################################################
|
||||
@ -90,7 +90,7 @@ JC1FLAGS = -g -L$(here) @LIBGCJ_JAVAFLAGS@
|
||||
LIBFFIINCS = -I$(top_srcdir)/../libffi/include -I../libffi/include
|
||||
|
||||
INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
|
||||
$(GCINCS) $(THREADINCS) \
|
||||
$(GCINCS) $(THREADINCS) $(INCLTDL) \
|
||||
$(EH_COMMON_INCLUDE) $(ZINCS) $(LIBFFIINCS)
|
||||
|
||||
|
||||
@ -116,9 +116,9 @@ libgcj_la_SOURCES = prims.cc jni.cc exception.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)
|
||||
libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \
|
||||
$(c_files) $(GCOBJS) $(THREADOBJS)
|
||||
$(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
|
||||
libgcj_la_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \
|
||||
$(THREADOBJS) $(libffi_files)
|
||||
$(THREADOBJS) $(libffi_files) $(LIBLTDL)
|
||||
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) \
|
||||
## The mysterious backslash is consumed by make.
|
||||
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
|
||||
|
@ -71,6 +71,7 @@ COMPPATH = @COMPPATH@
|
||||
CPP = @CPP@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
DIRLTDL = @DIRLTDL@
|
||||
DIVIDESPEC = @DIVIDESPEC@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
EXCEPTIONSPEC = @EXCEPTIONSPEC@
|
||||
@ -81,15 +82,17 @@ GCINCS = @GCINCS@
|
||||
GCLIBS = @GCLIBS@
|
||||
GCOBJS = @GCOBJS@
|
||||
GCSPEC = @GCSPEC@
|
||||
LD = @LD@
|
||||
INCLTDL = @INCLTDL@
|
||||
LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
|
||||
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
|
||||
LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
|
||||
LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
|
||||
LIBLTDL = @LIBLTDL@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
PACKAGE = @PACKAGE@
|
||||
PERL = @PERL@
|
||||
RANLIB = @RANLIB@
|
||||
@ -99,7 +102,6 @@ THREADINCS = @THREADINCS@
|
||||
THREADLIBS = @THREADLIBS@
|
||||
THREADOBJS = @THREADOBJS@
|
||||
THREADSPEC = @THREADSPEC@
|
||||
USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
|
||||
VERSION = @VERSION@
|
||||
ZDEPS = @ZDEPS@
|
||||
ZINCS = @ZINCS@
|
||||
@ -110,9 +112,9 @@ libgcj_basedir = @libgcj_basedir@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign no-installinfo
|
||||
@TESTSUBDIR_TRUE@SUBDIRS = \
|
||||
@TESTSUBDIR_TRUE@testsuite gcj include
|
||||
@TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include
|
||||
@TESTSUBDIR_FALSE@SUBDIRS = \
|
||||
@TESTSUBDIR_FALSE@gcj include
|
||||
@TESTSUBDIR_FALSE@$(DIRLTDL) gcj include
|
||||
@USE_LIBDIR_TRUE@toolexeclibdir = \
|
||||
@USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
|
||||
@USE_LIBDIR_FALSE@toolexeclibdir = \
|
||||
@ -171,7 +173,7 @@ JC1FLAGS = -g -L$(here) @LIBGCJ_JAVAFLAGS@
|
||||
LIBFFIINCS = -I$(top_srcdir)/../libffi/include -I../libffi/include
|
||||
|
||||
INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
|
||||
$(GCINCS) $(THREADINCS) \
|
||||
$(GCINCS) $(THREADINCS) $(INCLTDL) \
|
||||
$(EH_COMMON_INCLUDE) $(ZINCS) $(LIBFFIINCS)
|
||||
|
||||
|
||||
@ -190,10 +192,10 @@ EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
|
||||
$(c_source_files) $(java_source_files) $(built_java_source_files)
|
||||
|
||||
libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \
|
||||
$(c_files) $(GCOBJS) $(THREADOBJS)
|
||||
$(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
|
||||
|
||||
libgcj_la_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \
|
||||
$(THREADOBJS) $(libffi_files)
|
||||
$(THREADOBJS) $(libffi_files) $(LIBLTDL)
|
||||
|
||||
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) \
|
||||
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
|
||||
@ -730,7 +732,7 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
GZIP_ENV = --best
|
||||
DIST_SUBDIRS = testsuite gcj include gcj include
|
||||
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
|
||||
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||
.deps/$(srcdir)/$(CONVERT_DIR)/make-trie.P .deps/boehm.P \
|
||||
.deps/defineclass.P .deps/exception.P .deps/gij.P \
|
||||
|
@ -125,3 +125,6 @@
|
||||
|
||||
/* Define if getuid() and friends are missing. */
|
||||
#undef NO_GETUID
|
||||
|
||||
/* Define if libltdl is in use. */
|
||||
#undef USE_LTDL
|
||||
|
359
libjava/aclocal.m4
vendored
359
libjava/aclocal.m4
vendored
@ -322,7 +322,7 @@ done<<>>dnl>>)
|
||||
changequote([,]))])
|
||||
|
||||
|
||||
# serial 35 AC_PROG_LIBTOOL
|
||||
# serial 40 AC_PROG_LIBTOOL
|
||||
AC_DEFUN(AC_PROG_LIBTOOL,
|
||||
[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
|
||||
|
||||
@ -331,10 +331,11 @@ AC_CACHE_SAVE
|
||||
|
||||
# Actually configure libtool. ac_aux_dir is where install-sh is found.
|
||||
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
|
||||
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
|
||||
DLLTOOL="$DLLTOOL" AS="$AS" \
|
||||
LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
|
||||
LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
|
||||
DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
|
||||
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
|
||||
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|
||||
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
|
||||
|| AC_MSG_ERROR([libtool configure failed])
|
||||
|
||||
# Reload cache, that may have been modified by ltconfig
|
||||
@ -363,24 +364,33 @@ AC_REQUIRE([AC_PROG_RANLIB])dnl
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AC_PROG_LD])dnl
|
||||
AC_REQUIRE([AC_PROG_NM])dnl
|
||||
AC_REQUIRE([AC_SYS_NM_PARSE])dnl
|
||||
AC_REQUIRE([AC_SYS_SYMBOL_UNDERSCORE])dnl
|
||||
AC_REQUIRE([AC_PROG_LN_S])dnl
|
||||
dnl
|
||||
|
||||
case "$target" in
|
||||
NONE) lt_target="$host" ;;
|
||||
*) lt_target="$target" ;;
|
||||
esac
|
||||
|
||||
# Check for any special flags to pass to ltconfig.
|
||||
libtool_flags="--cache-file=$cache_file"
|
||||
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
|
||||
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
|
||||
test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
|
||||
test "$lt_dlopen" = yes && libtool_flags="$libtool_flags --enable-dlopen"
|
||||
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
|
||||
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
|
||||
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
|
||||
ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
|
||||
[libtool_flags="$libtool_flags --enable-dlopen"])
|
||||
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
|
||||
[libtool_flags="$libtool_flags --enable-win32-dll"])
|
||||
AC_ARG_ENABLE(libtool-lock,
|
||||
[ --disable-libtool-lock avoid locking (might break parallel builds)])
|
||||
test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
|
||||
test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
|
||||
|
||||
# Some flags need to be propagated to the compiler or linker for good
|
||||
# libtool support.
|
||||
case "$host" in
|
||||
case "$lt_target" in
|
||||
*-*-irix6*)
|
||||
# Find out which ABI we are using.
|
||||
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
|
||||
@ -412,33 +422,28 @@ case "$host" in
|
||||
fi
|
||||
;;
|
||||
|
||||
*-*-cygwin*)
|
||||
AC_SYS_LIBTOOL_CYGWIN
|
||||
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
|
||||
[*-*-cygwin* | *-*-mingw*)
|
||||
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||
AC_CHECK_TOOL(AS, as, false)
|
||||
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
||||
;;
|
||||
|
||||
])
|
||||
esac
|
||||
|
||||
# enable the --disable-libtool-lock switch
|
||||
|
||||
AC_ARG_ENABLE(libtool-lock,
|
||||
[ --disable-libtool-lock force libtool not to do file locking],
|
||||
need_locks=$enableval,
|
||||
need_locks=yes)
|
||||
|
||||
if test x"$need_locks" = xno; then
|
||||
libtool_flags="$libtool_flags --disable-lock"
|
||||
fi
|
||||
])
|
||||
|
||||
# AC_LIBTOOL_DLOPEN - check for dlopen support
|
||||
AC_DEFUN(AC_LIBTOOL_DLOPEN, [lt_dlopen=yes])
|
||||
# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
|
||||
AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
|
||||
|
||||
# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
|
||||
AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
|
||||
|
||||
# AC_ENABLE_SHARED - implement the --enable-shared flag
|
||||
# Usage: AC_ENABLE_SHARED[(DEFAULT)]
|
||||
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
|
||||
# `yes'.
|
||||
AC_DEFUN(AC_ENABLE_SHARED,
|
||||
[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_DEFUN(AC_ENABLE_SHARED, [dnl
|
||||
define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_ARG_ENABLE(shared,
|
||||
changequote(<<, >>)dnl
|
||||
<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
|
||||
@ -463,15 +468,15 @@ enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
|
||||
])
|
||||
|
||||
# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
|
||||
AC_DEFUN(AC_DISABLE_SHARED,
|
||||
[AC_ENABLE_SHARED(no)])
|
||||
AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
||||
AC_ENABLE_SHARED(no)])
|
||||
|
||||
# AC_ENABLE_STATIC - implement the --enable-static flag
|
||||
# Usage: AC_ENABLE_STATIC[(DEFAULT)]
|
||||
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
|
||||
# `yes'.
|
||||
AC_DEFUN(AC_ENABLE_STATIC,
|
||||
[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_DEFUN(AC_ENABLE_STATIC, [dnl
|
||||
define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_ARG_ENABLE(static,
|
||||
changequote(<<, >>)dnl
|
||||
<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
|
||||
@ -496,16 +501,16 @@ enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
|
||||
])
|
||||
|
||||
# AC_DISABLE_STATIC - set the default static flag to --disable-static
|
||||
AC_DEFUN(AC_DISABLE_STATIC,
|
||||
[AC_ENABLE_STATIC(no)])
|
||||
AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
||||
AC_ENABLE_STATIC(no)])
|
||||
|
||||
|
||||
# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
|
||||
# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
|
||||
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
|
||||
# `yes'.
|
||||
AC_DEFUN(AC_ENABLE_FAST_INSTALL,
|
||||
[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
|
||||
define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_ARG_ENABLE(fast-install,
|
||||
changequote(<<, >>)dnl
|
||||
<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
|
||||
@ -530,9 +535,8 @@ enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
|
||||
])
|
||||
|
||||
# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
|
||||
AC_DEFUN(AC_DISABLE_FAST_INSTALL,
|
||||
[AC_ENABLE_FAST_INSTALL(no)])
|
||||
|
||||
AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
||||
AC_ENABLE_FAST_INSTALL(no)])
|
||||
|
||||
# AC_PROG_LD - find the path to the GNU or non-GNU linker
|
||||
AC_DEFUN(AC_PROG_LD,
|
||||
@ -550,7 +554,7 @@ if test "$ac_cv_prog_gcc" = yes; then
|
||||
case "$ac_prog" in
|
||||
# Accept absolute paths.
|
||||
changequote(,)dnl
|
||||
/* | [A-Za-z]:[\\/]*)
|
||||
[\\/]* | [A-Za-z]:[\\/]*)
|
||||
re_direlt='/[^/][^/]*/\.\./'
|
||||
changequote([,])dnl
|
||||
# Canonicalize the path of ld
|
||||
@ -576,10 +580,10 @@ else
|
||||
fi
|
||||
AC_CACHE_VAL(ac_cv_path_LD,
|
||||
[if test -z "$LD"; then
|
||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
|
||||
for ac_dir in $PATH; do
|
||||
test -z "$ac_dir" && ac_dir=.
|
||||
if test -f "$ac_dir/$ac_prog"; then
|
||||
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
|
||||
ac_cv_path_LD="$ac_dir/$ac_prog"
|
||||
# Check to see if the program is GNU ld. I'd rather use --version,
|
||||
# but apparently some GNU ld's only accept -v.
|
||||
@ -602,7 +606,6 @@ else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
|
||||
AC_SUBST(LD)
|
||||
AC_PROG_LD_GNU
|
||||
])
|
||||
|
||||
@ -624,10 +627,10 @@ AC_CACHE_VAL(ac_cv_path_NM,
|
||||
# Let the user override the test.
|
||||
ac_cv_path_NM="$NM"
|
||||
else
|
||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
|
||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
|
||||
for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
|
||||
test -z "$ac_dir" && ac_dir=.
|
||||
if test -f $ac_dir/nm; then
|
||||
if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
|
||||
# Check to see if the nm accepts a BSD-compat flag.
|
||||
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
|
||||
# nm: unknown option "B" ignored
|
||||
@ -648,230 +651,24 @@ else
|
||||
fi])
|
||||
NM="$ac_cv_path_NM"
|
||||
AC_MSG_RESULT([$NM])
|
||||
AC_SUBST(NM)
|
||||
])
|
||||
|
||||
# AC_SYS_NM_PARSE - Check for command to grab the raw symbol name followed
|
||||
# by C symbol name from nm.
|
||||
AC_DEFUN(AC_SYS_NM_PARSE,
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
AC_REQUIRE([AC_PROG_NM])dnl
|
||||
# Check for command to grab the raw symbol name followed by C symbol from nm.
|
||||
AC_MSG_CHECKING([command to parse $NM output])
|
||||
AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
|
||||
[# These are sane defaults that work on at least a few old systems.
|
||||
# {They come from Ultrix. What could be older than Ultrix?!! ;)}
|
||||
|
||||
changequote(,)dnl
|
||||
# Character class describing NM global symbol codes.
|
||||
ac_symcode='[BCDEGRST]'
|
||||
|
||||
# Regexp to match symbols that can be accessed directly from C.
|
||||
ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
|
||||
|
||||
# Transform the above into a raw symbol and a C symbol.
|
||||
ac_symxfrm='\1 \2\3 \3'
|
||||
|
||||
# Transform an extracted symbol line into a proper C declaration
|
||||
ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
|
||||
|
||||
# Define system-specific variables.
|
||||
case "$host_os" in
|
||||
aix*)
|
||||
ac_symcode='[BCDT]'
|
||||
;;
|
||||
cygwin* | mingw*)
|
||||
ac_symcode='[ABCDGISTW]'
|
||||
;;
|
||||
hpux*)
|
||||
ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
|
||||
;;
|
||||
irix*)
|
||||
ac_symcode='[BCDEGRST]'
|
||||
;;
|
||||
solaris*)
|
||||
ac_symcode='[BDT]'
|
||||
;;
|
||||
esac
|
||||
|
||||
# If we're using GNU nm, then use its standard symbol codes.
|
||||
if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
|
||||
ac_symcode='[ABCDGISTW]'
|
||||
fi
|
||||
changequote([,])dnl
|
||||
|
||||
# Try without a prefix undercore, then with it.
|
||||
for ac_symprfx in "" "_"; do
|
||||
|
||||
ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
|
||||
|
||||
# Check to see that the pipe works correctly.
|
||||
ac_pipe_works=no
|
||||
rm -f conftest.$ac_ext
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
char nm_test_var;
|
||||
void nm_test_func(){}
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
int main(){nm_test_var='a';nm_test_func;return 0;}
|
||||
EOF
|
||||
|
||||
if AC_TRY_EVAL(ac_compile); then
|
||||
# Now try to grab the symbols.
|
||||
ac_nlist=conftest.nm
|
||||
|
||||
if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
|
||||
|
||||
# Try sorting and uniquifying the output.
|
||||
if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
|
||||
mv -f "$ac_nlist"T "$ac_nlist"
|
||||
else
|
||||
rm -f "$ac_nlist"T
|
||||
fi
|
||||
|
||||
# Make sure that we snagged all the symbols we need.
|
||||
if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
|
||||
if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
|
||||
cat <<EOF > conftest.c
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
EOF
|
||||
# Now generate the symbol file.
|
||||
eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
|
||||
|
||||
cat <<EOF >> conftest.c
|
||||
#if defined (__STDC__) && __STDC__
|
||||
# define lt_ptr_t void *
|
||||
#else
|
||||
# define lt_ptr_t char *
|
||||
# define const
|
||||
#endif
|
||||
|
||||
/* The mapping between symbol names and symbols. */
|
||||
const struct {
|
||||
const char *name;
|
||||
lt_ptr_t address;
|
||||
}
|
||||
changequote(,)dnl
|
||||
lt_preloaded_symbols[] =
|
||||
changequote([,])dnl
|
||||
{
|
||||
EOF
|
||||
sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
|
||||
cat <<\EOF >> conftest.c
|
||||
{0, (lt_ptr_t) 0}
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
# Now try linking the two files.
|
||||
mv conftest.$ac_objext conftestm.$ac_objext
|
||||
ac_save_LIBS="$LIBS"
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
LIBS="conftestm.$ac_objext"
|
||||
CFLAGS="$CFLAGS$no_builtin_flag"
|
||||
if AC_TRY_EVAL(ac_link) && test -s conftest; then
|
||||
ac_pipe_works=yes
|
||||
else
|
||||
echo "configure: failed program was:" >&AC_FD_CC
|
||||
cat conftest.c >&AC_FD_CC
|
||||
fi
|
||||
LIBS="$ac_save_LIBS"
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
else
|
||||
echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
|
||||
fi
|
||||
else
|
||||
echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC
|
||||
fi
|
||||
else
|
||||
echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
|
||||
fi
|
||||
else
|
||||
echo "$progname: failed program was:" >&AC_FD_CC
|
||||
cat conftest.c >&AC_FD_CC
|
||||
fi
|
||||
rm -rf conftest*
|
||||
|
||||
# Do not use the global_symbol_pipe unless it works.
|
||||
if test "$ac_pipe_works" = yes; then
|
||||
if test x"$ac_symprfx" = x"_"; then
|
||||
ac_cv_sys_symbol_underscore=yes
|
||||
else
|
||||
ac_cv_sys_symbol_underscore=no
|
||||
fi
|
||||
break
|
||||
else
|
||||
ac_cv_sys_global_symbol_pipe=
|
||||
fi
|
||||
done
|
||||
])
|
||||
|
||||
ac_result=yes
|
||||
if test -z "$ac_cv_sys_global_symbol_pipe"; then
|
||||
ac_result=no
|
||||
fi
|
||||
AC_MSG_RESULT($ac_result)
|
||||
])
|
||||
|
||||
# AC_SYS_LIBTOOL_CYGWIN - find tools needed on cygwin
|
||||
AC_DEFUN(AC_SYS_LIBTOOL_CYGWIN,
|
||||
[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||
AC_CHECK_TOOL(AS, as, false)
|
||||
])
|
||||
|
||||
# AC_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols
|
||||
# with an underscore?
|
||||
AC_DEFUN(AC_SYS_SYMBOL_UNDERSCORE,
|
||||
[AC_REQUIRE([AC_PROG_NM])dnl
|
||||
AC_REQUIRE([AC_SYS_NM_PARSE])dnl
|
||||
AC_MSG_CHECKING([for _ prefix in compiled symbols])
|
||||
AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
|
||||
[ac_cv_sys_symbol_underscore=no
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
void nm_test_func(){}
|
||||
int main(){nm_test_func;return 0;}
|
||||
EOF
|
||||
if AC_TRY_EVAL(ac_compile); then
|
||||
# Now try to grab the symbols.
|
||||
ac_nlist=conftest.nm
|
||||
if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
|
||||
# See whether the symbols have a leading underscore.
|
||||
if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
|
||||
ac_cv_sys_symbol_underscore=yes
|
||||
else
|
||||
if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
|
||||
:
|
||||
else
|
||||
echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
|
||||
fi
|
||||
else
|
||||
echo "configure: failed program was:" >&AC_FD_CC
|
||||
cat conftest.c >&AC_FD_CC
|
||||
fi
|
||||
rm -rf conftest*
|
||||
])
|
||||
AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
|
||||
USE_SYMBOL_UNDERSCORE=${ac_cv_sys_symbol_underscore=no}
|
||||
AC_SUBST(USE_SYMBOL_UNDERSCORE)dnl
|
||||
])
|
||||
|
||||
# AC_CHECK_LIBM - check for math library
|
||||
AC_DEFUN(AC_CHECK_LIBM, [
|
||||
AC_CHECK_LIB(mw, _mwvalidcheckl)
|
||||
AC_CHECK_LIB(m, cos)
|
||||
AC_DEFUN(AC_CHECK_LIBM,
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
LIBM=
|
||||
case "$lt_target" in
|
||||
*-*-beos* | *-*-cygwin*)
|
||||
# These system don't have libm
|
||||
;;
|
||||
*-ncr-sysv4.3*)
|
||||
AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
|
||||
AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
|
||||
;;
|
||||
*)
|
||||
AC_CHECK_LIB(m, main, LIBM="-lm")
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
|
||||
@ -882,13 +679,14 @@ AC_CHECK_LIB(m, cos)
|
||||
# '${top_builddir}/' (note the single quotes!) if your package is not
|
||||
# flat, and, if you're not using automake, define top_builddir as
|
||||
# appropriate in the Makefiles.
|
||||
AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [
|
||||
AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
||||
case "$enable_ltdl_convenience" in
|
||||
no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
|
||||
"") enable_ltdl_convenience=yes
|
||||
ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
|
||||
esac
|
||||
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
|
||||
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
|
||||
])
|
||||
|
||||
# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
|
||||
@ -900,16 +698,23 @@ AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [
|
||||
# flat, and, if you're not using automake, define top_builddir as
|
||||
# appropriate in the Makefiles.
|
||||
# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
|
||||
AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [
|
||||
AC_CHECK_LIB(ltdl, main, LIBLTDL="-lltdl", [
|
||||
case "$enable_ltdl_install" in
|
||||
no) AC_MSG_WARN([libltdl not installed, but installation disabled]) ;;
|
||||
"") enable_ltdl_install=yes
|
||||
ac_configure_args="$ac_configure_args --enable-ltdl-install" ;;
|
||||
esac
|
||||
AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
||||
AC_CHECK_LIB(ltdl, main,
|
||||
[test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
|
||||
[if test x"$enable_ltdl_install" = xno; then
|
||||
AC_MSG_WARN([libltdl not installed, but installation disabled])
|
||||
else
|
||||
enable_ltdl_install=yes
|
||||
fi
|
||||
])
|
||||
if test x"$enable_ltdl_install" != x"no"; then
|
||||
if test x"$enable_ltdl_install" = x"yes"; then
|
||||
ac_configure_args="$ac_configure_args --enable-ltdl-install"
|
||||
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
|
||||
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
|
||||
else
|
||||
ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
|
||||
LIBLTDL="-lltdl"
|
||||
INCLTDL=
|
||||
fi
|
||||
])
|
||||
|
||||
@ -921,7 +726,7 @@ AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
|
||||
AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
|
||||
AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
|
||||
AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
|
||||
AC_DEFUN(AM_SYS_NM_PARSE, [indir([AC_SYS_NM_PARSE])])dnl
|
||||
AC_DEFUN(AM_SYS_SYMBOL_UNDERSCORE, [indir([AC_SYS_SYMBOL_UNDERSCORE])])dnl
|
||||
AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN, [indir([AC_SYS_LIBTOOL_CYGWIN])])dnl
|
||||
|
||||
dnl This is just to silence aclocal about the macro not being used
|
||||
ifelse([AC_DISABLE_FAST_INSTALL])dnl
|
||||
|
||||
|
861
libjava/configure
vendored
861
libjava/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -17,7 +17,20 @@ LIBGCJ_CONFIGURE(.)
|
||||
|
||||
AM_CONFIG_HEADER(include/config.h)
|
||||
|
||||
# Only use libltdl for native builds.
|
||||
if test -z "${with_cross_host}"; then
|
||||
AC_LIBLTDL_CONVENIENCE
|
||||
AC_LIBTOOL_DLOPEN
|
||||
DIRLTDL=libltdl
|
||||
AC_DEFINE(USE_LTDL)
|
||||
# Sigh. Libtool's macro doesn't do the right thing.
|
||||
INCLTDL="-I\$(top_srcdir)/libltdl $INCLTDL"
|
||||
fi
|
||||
AC_SUBST(INCLTDL)
|
||||
AC_SUBST(LIBLTDL)
|
||||
AC_SUBST(DIRLTDL)
|
||||
AM_PROG_LIBTOOL
|
||||
AC_CONFIG_SUBDIRS($DIRLDL)
|
||||
|
||||
if test -z "$with_target_subdir" || test "$with_target_subdir" = "."; then
|
||||
COMPPATH=.
|
||||
|
@ -71,6 +71,7 @@ COMPPATH = @COMPPATH@
|
||||
CPP = @CPP@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
DIRLTDL = @DIRLTDL@
|
||||
DIVIDESPEC = @DIVIDESPEC@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
|
||||
@ -82,16 +83,17 @@ GCINCS = @GCINCS@
|
||||
GCLIBS = @GCLIBS@
|
||||
GCOBJS = @GCOBJS@
|
||||
GCSPEC = @GCSPEC@
|
||||
LD = @LD@
|
||||
INCLTDL = @INCLTDL@
|
||||
LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
|
||||
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
|
||||
LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
|
||||
LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
|
||||
LIBLTDL = @LIBLTDL@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
NM = @NM@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
PACKAGE = @PACKAGE@
|
||||
PERL = @PERL@
|
||||
RANLIB = @RANLIB@
|
||||
@ -101,7 +103,6 @@ THREADINCS = @THREADINCS@
|
||||
THREADLIBS = @THREADLIBS@
|
||||
THREADOBJS = @THREADOBJS@
|
||||
THREADSPEC = @THREADSPEC@
|
||||
USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
|
||||
VERSION = @VERSION@
|
||||
ZDEPS = @ZDEPS@
|
||||
ZINCS = @ZINCS@
|
||||
|
@ -71,6 +71,7 @@ COMPPATH = @COMPPATH@
|
||||
CPP = @CPP@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
DIRLTDL = @DIRLTDL@
|
||||
DIVIDESPEC = @DIVIDESPEC@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
|
||||
@ -82,16 +83,17 @@ GCINCS = @GCINCS@
|
||||
GCLIBS = @GCLIBS@
|
||||
GCOBJS = @GCOBJS@
|
||||
GCSPEC = @GCSPEC@
|
||||
LD = @LD@
|
||||
INCLTDL = @INCLTDL@
|
||||
LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
|
||||
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
|
||||
LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
|
||||
LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
|
||||
LIBLTDL = @LIBLTDL@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
NM = @NM@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
PACKAGE = @PACKAGE@
|
||||
PERL = @PERL@
|
||||
RANLIB = @RANLIB@
|
||||
@ -101,7 +103,6 @@ THREADINCS = @THREADINCS@
|
||||
THREADLIBS = @THREADLIBS@
|
||||
THREADOBJS = @THREADOBJS@
|
||||
THREADSPEC = @THREADSPEC@
|
||||
USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
|
||||
VERSION = @VERSION@
|
||||
ZDEPS = @ZDEPS@
|
||||
ZINCS = @ZINCS@
|
||||
|
@ -142,6 +142,9 @@
|
||||
/* Define if getuid() and friends are missing. */
|
||||
#undef NO_GETUID
|
||||
|
||||
/* Define if libltdl is in use. */
|
||||
#undef USE_LTDL
|
||||
|
||||
/* Define if you have the access function. */
|
||||
#undef HAVE_ACCESS
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Runtime.java - Runtime class.
|
||||
|
||||
/* Copyright (C) 1998, 1999 Cygnus Solutions
|
||||
/* Copyright (C) 1998, 1999, 2000 Cygnus Solutions
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@ -97,6 +97,12 @@ public class Runtime
|
||||
public native void load (String pathname);
|
||||
public native void loadLibrary (String libname);
|
||||
|
||||
// This is a helper function for the ClassLoader which can load
|
||||
// compiled libraries. Returns true if library (which is just the
|
||||
// base name -- path searching is done by this function) was loaded,
|
||||
// false otherwise.
|
||||
native boolean loadLibraryInternal (String libname);
|
||||
|
||||
public native void runFinalization ();
|
||||
|
||||
// This method is static in JDK 1.1, but isn't listed as static in
|
||||
|
@ -34,6 +34,7 @@ details. */
|
||||
#include <java/lang/ClassCircularityError.h>
|
||||
#include <java/lang/IncompatibleClassChangeError.h>
|
||||
#include <java/lang/reflect/Modifier.h>
|
||||
#include <java/lang/Runtime.h>
|
||||
|
||||
#define CloneableClass _CL_Q34java4lang9Cloneable
|
||||
extern java::lang::Class CloneableClass;
|
||||
@ -193,7 +194,35 @@ java::lang::ClassLoader::markClassErrorState0 (java::lang::Class *klass)
|
||||
jclass
|
||||
gnu::gcj::runtime::VMClassLoader::findSystemClass (jstring name)
|
||||
{
|
||||
return _Jv_FindClassInCache (_Jv_makeUtf8Const (name), 0);
|
||||
_Jv_Utf8Const *name_u = _Jv_makeUtf8Const (name);
|
||||
jclass klass = _Jv_FindClassInCache (name_u, 0);
|
||||
|
||||
if (! klass)
|
||||
{
|
||||
// Turn `gnu.pkg.quux' into `gnu-pkg-quux'. Then search for a
|
||||
// module named (eg, on Linux) `gnu-pkg-quux.so', followed by
|
||||
// `gnu-pkg.so' and `gnu.so'. If loading one of these causes
|
||||
// the class to appear in the cache, then use it.
|
||||
jstring so_base_name = name->replace ('.', '-');
|
||||
|
||||
while (! klass && so_base_name && so_base_name->length() > 0)
|
||||
{
|
||||
using namespace ::java::lang;
|
||||
Runtime *rt = Runtime::getRuntime();
|
||||
jboolean loaded = rt->loadLibraryInternal (so_base_name);
|
||||
|
||||
jint nd = so_base_name->lastIndexOf ('-');
|
||||
if (nd == -1)
|
||||
so_base_name = NULL;
|
||||
else
|
||||
so_base_name = so_base_name->substring (0, nd);
|
||||
|
||||
if (loaded)
|
||||
klass = _Jv_FindClassInCache (name_u, 0);
|
||||
}
|
||||
}
|
||||
|
||||
return klass;
|
||||
}
|
||||
|
||||
jclass
|
||||
@ -403,31 +432,11 @@ _Jv_RegisterClass (jclass klass)
|
||||
_Jv_RegisterClasses (classes);
|
||||
}
|
||||
|
||||
#if 0
|
||||
// NOTE: this one is out of date with the new loader stuff...
|
||||
jclass
|
||||
_Jv_FindClassInCache (jstring name, java::lang::ClassLoader *loader)
|
||||
{
|
||||
JvSynchronize sync (&ClassClass);
|
||||
jint hash = name->hashCode();
|
||||
jclass klass = loaded_classes[(_Jv_ushort) hash % HASH_LEN];
|
||||
for ( ; klass; klass = klass->next)
|
||||
{
|
||||
if (loader == klass->loader
|
||||
&& _Jv_equal (klass->name, name, hash))
|
||||
break;
|
||||
}
|
||||
_Jv_MonitorExit (&ClassClass);
|
||||
return klass;
|
||||
}
|
||||
#endif
|
||||
|
||||
jclass _Jv_FindClass (_Jv_Utf8Const *name,
|
||||
java::lang::ClassLoader *loader)
|
||||
_Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
|
||||
{
|
||||
jclass klass = _Jv_FindClassInCache (name, loader);
|
||||
|
||||
#ifdef INTERPRETER
|
||||
if (! klass)
|
||||
{
|
||||
jstring sname = _Jv_NewStringUTF (name->data);
|
||||
@ -466,44 +475,10 @@ jclass _Jv_FindClass (_Jv_Utf8Const *name,
|
||||
// we're loading, so that they can refer to themselves.
|
||||
_Jv_WaitForState (klass, JV_STATE_LOADED);
|
||||
}
|
||||
#endif
|
||||
|
||||
return klass;
|
||||
}
|
||||
|
||||
#if 0
|
||||
// NOTE: this one is out of date with the new class loader stuff...
|
||||
jclass
|
||||
_Jv_FindClass (jstring name, java::lang::ClassLoader *loader)
|
||||
{
|
||||
jclass klass = _Jv_FindClassInCache (name, loader);
|
||||
if (! klass)
|
||||
{
|
||||
if (loader)
|
||||
{
|
||||
klass = loader->loadClass(name);
|
||||
}
|
||||
else
|
||||
{
|
||||
// jmspec 5.3.1.2
|
||||
|
||||
// delegate to the system loader
|
||||
klass = java::lang::ClassLoader::system.loadClass (sname);
|
||||
|
||||
// register that we're an initiating loader
|
||||
if (klass)
|
||||
_Jv_RegisterInitiatingLoader (klass, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_Jv_WaitForState (klass, JV_STATE_LOADED);
|
||||
}
|
||||
|
||||
return klass;
|
||||
}
|
||||
#endif
|
||||
|
||||
jclass
|
||||
_Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
|
||||
java::lang::ClassLoader *loader)
|
||||
|
@ -1,6 +1,6 @@
|
||||
// natRuntime.cc - Implementation of native side of Runtime class.
|
||||
|
||||
/* Copyright (C) 1998, 1999 Cygnus Solutions
|
||||
/* Copyright (C) 1998, 1999, 2000 Cygnus Solutions
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@ -20,6 +20,10 @@ details. */
|
||||
|
||||
#ifdef USE_LTDL
|
||||
#include <ltdl.h>
|
||||
|
||||
/* FIXME: we don't always need this. The next libtool will let us use
|
||||
AC_LTDL_PREOPEN to see if we do. */
|
||||
const lt_dlsymlist lt_preloaded_symbols[1] = { { 0, 0 } };
|
||||
#endif
|
||||
|
||||
void
|
||||
@ -56,8 +60,12 @@ java::lang::Runtime::load (jstring path)
|
||||
checkLink (path);
|
||||
using namespace java::lang;
|
||||
#ifdef USE_LTDL
|
||||
jint len = _Jv_GetStringUTFLength (path);
|
||||
char buf[len + 1];
|
||||
jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
|
||||
buf[total] = '\0';
|
||||
// FIXME: make sure path is absolute.
|
||||
lt_dlhandle h = lt_dlopen (FIXME);
|
||||
lt_dlhandle h = lt_dlopen (buf);
|
||||
if (h == NULL)
|
||||
{
|
||||
const char *msg = lt_dlerror ();
|
||||
@ -76,8 +84,12 @@ java::lang::Runtime::loadLibrary (jstring lib)
|
||||
checkLink (lib);
|
||||
using namespace java::lang;
|
||||
#ifdef USE_LTDL
|
||||
jint len = _Jv_GetStringUTFLength (lib);
|
||||
char buf[len + 1];
|
||||
jsize total = JvGetStringUTFRegion (lib, 0, lib->length(), buf);
|
||||
buf[total] = '\0';
|
||||
// FIXME: make sure path is absolute.
|
||||
lt_dlhandle h = lt_dlopenext (FIXME);
|
||||
lt_dlhandle h = lt_dlopenext (buf);
|
||||
if (h == NULL)
|
||||
{
|
||||
const char *msg = lt_dlerror ();
|
||||
@ -89,6 +101,24 @@ java::lang::Runtime::loadLibrary (jstring lib)
|
||||
#endif /* USE_LTDL */
|
||||
}
|
||||
|
||||
jboolean
|
||||
java::lang::Runtime::loadLibraryInternal (jstring lib)
|
||||
{
|
||||
JvSynchronize sync (this);
|
||||
using namespace java::lang;
|
||||
#ifdef USE_LTDL
|
||||
jint len = _Jv_GetStringUTFLength (lib);
|
||||
char buf[len + 1];
|
||||
jsize total = JvGetStringUTFRegion (lib, 0, lib->length(), buf);
|
||||
buf[total] = '\0';
|
||||
// FIXME: make sure path is absolute.
|
||||
lt_dlhandle h = lt_dlopenext (buf);
|
||||
return h != NULL;
|
||||
#else
|
||||
return false;
|
||||
#endif /* USE_LTDL */
|
||||
}
|
||||
|
||||
void
|
||||
java::lang::Runtime::init (void)
|
||||
{
|
||||
|
@ -71,6 +71,7 @@ COMPPATH = @COMPPATH@
|
||||
CPP = @CPP@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
DIRLTDL = @DIRLTDL@
|
||||
DIVIDESPEC = @DIVIDESPEC@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
|
||||
@ -82,16 +83,17 @@ GCINCS = @GCINCS@
|
||||
GCLIBS = @GCLIBS@
|
||||
GCOBJS = @GCOBJS@
|
||||
GCSPEC = @GCSPEC@
|
||||
LD = @LD@
|
||||
INCLTDL = @INCLTDL@
|
||||
LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
|
||||
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
|
||||
LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
|
||||
LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
|
||||
LIBLTDL = @LIBLTDL@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
NM = @NM@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
PACKAGE = @PACKAGE@
|
||||
PERL = @PERL@
|
||||
RANLIB = @RANLIB@
|
||||
@ -101,7 +103,6 @@ THREADINCS = @THREADINCS@
|
||||
THREADLIBS = @THREADLIBS@
|
||||
THREADOBJS = @THREADOBJS@
|
||||
THREADSPEC = @THREADSPEC@
|
||||
USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
|
||||
VERSION = @VERSION@
|
||||
ZDEPS = @ZDEPS@
|
||||
ZINCS = @ZINCS@
|
||||
|
Loading…
Reference in New Issue
Block a user