re PR target/42811 (java.lang.ExceptionInInitializerError in ecj1)
authorDave Korn <dave.korn.cygwin@gmail.com>
Sun, 21 Mar 2010 19:41:37 +0000 (19:41 +0000)
committerDave Korn <davek@gcc.gnu.org>
Sun, 21 Mar 2010 19:41:37 +0000 (19:41 +0000)
PR target/42811
* libjava/configure.ac (DLLTOOL): Call AC_CHECK_TOOL.
(libgcj_sublib_core_extra_deps): New host-dependent configure var.
(LIBGCJ_SUBLIB_CORE_EXTRA_DEPS): AC_SUBST it.
* libjava/configure.host (libgcj_sublib_core_extra_deps): Define
appropriately on Cygwin and MinGW.
(libgcj_sublib_core_extra_deps): Add libgcj-noncore-dummy import
stub library on Cygwin and MinGW.
* libjava/Makefile.am (LIBJAVA_CORE_EXTRA): Import AC_SUBST'd
LIBGCJ_SUBLIB_CORE_EXTRA_DEPS if building sublibs, else define empty.
(libgcj_la_DEPENDENCIES): Use it.
(DLL_VERSION): New makefile macro.
(libgcj-noncore-dummy.dll.a): New build rule for dummy import stub
library.
(libgcj_noncore_la_LIBADD): Trim superfluous convenience libs.
(AM_MAKEFLAGS): Add DLLTOOL recursive propagation.
* libjava/libgcj-noncore-dummy.def: New file.
* libjava/Makefile.in: Regenerate.
* libjava/include/Makefile.in: Likewise.
* libjava/testsuite/Makefile.in: Likewise.
* libjava/configure: Likewise.
* libjava/gcj/Makefile.in: Likewise.

From-SVN: r157606

libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/configure
libjava/configure.ac
libjava/configure.host
libjava/gcj/Makefile.in
libjava/include/Makefile.in
libjava/libgcj-noncore-dummy.def [new file with mode: 0644]
libjava/testsuite/Makefile.in

index 9e143318ca92c771c86f4c9b02e0a424efae9892..365968a3ebe2dd804c962811ab322db67711696e 100644 (file)
@@ -1,3 +1,28 @@
+2010-03-21  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       PR target/42811
+       * libjava/configure.ac (DLLTOOL): Call AC_CHECK_TOOL.
+       (libgcj_sublib_core_extra_deps): New host-dependent configure var.
+       (LIBGCJ_SUBLIB_CORE_EXTRA_DEPS): AC_SUBST it.
+       * libjava/configure.host (libgcj_sublib_core_extra_deps): Define
+       appropriately on Cygwin and MinGW.
+       (libgcj_sublib_core_extra_deps): Add libgcj-noncore-dummy import
+       stub library on Cygwin and MinGW.
+       * libjava/Makefile.am (LIBJAVA_CORE_EXTRA): Import AC_SUBST'd
+       LIBGCJ_SUBLIB_CORE_EXTRA_DEPS if building sublibs, else define empty.
+       (libgcj_la_DEPENDENCIES): Use it.
+       (DLL_VERSION): New makefile macro.
+       (libgcj-noncore-dummy.dll.a): New build rule for dummy import stub
+       library.
+       (libgcj_noncore_la_LIBADD): Trim superfluous convenience libs.
+       (AM_MAKEFLAGS): Add DLLTOOL recursive propagation.
+       * libjava/libgcj-noncore-dummy.def: New file.
+       * libjava/Makefile.in: Regenerate.
+       * libjava/include/Makefile.in: Likewise.
+       * libjava/testsuite/Makefile.in: Likewise.
+       * libjava/configure: Likewise.
+       * libjava/gcj/Makefile.in: Likewise.
+
 2010-03-21  Dave Korn  <dave.korn.cygwin@gmail.com>
 
        PR target/42811 (prerequisite)
index 11c60dfe09f357f0d2fdee00032e1bc448583902..190c686e65eee8d782a7d88bc9ee15598541e2eb 100644 (file)
@@ -202,11 +202,13 @@ toolexeclib_LTLIBRARIES += libgcj-noncore.la
 libgcj_noncore_la_LIBADD_SUBOBJECTS = $(NONCORE_PACKAGE_SOURCE_FILES_LO)
 libgcj_la_LIBADD_SUBOBJECTS = $(CORE_PACKAGE_SOURCE_FILES_LO)
 LIBJAVA_LDFLAGS_NOUNDEF = $(LIBGCJ_SUBLIB_LTFLAGS)
+LIBJAVA_CORE_EXTRA = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
 else
 # If not building sublibraries, everything goes in libgcj,
 # and it cannot be usefully built shared on PE platforms.
 libgcj_la_LIBADD_SUBOBJECTS = $(ALL_PACKAGE_SOURCE_FILES_LO)
 LIBJAVA_LDFLAGS_NOUNDEF = 
+LIBJAVA_CORE_EXTRA = 
 endif
 
 if USE_LIBGCJ_BC
@@ -460,7 +462,8 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
        java/lang/Class.lo \
        java/process-$(PLATFORM).lo \
        $(ALL_PACKAGE_SOURCE_FILES_LO) \
-       $(LIBLTDL) $(libgcj_la_LIBADD)
+       $(LIBLTDL) $(libgcj_la_LIBADD) \
+       $(LIBJAVA_CORE_EXTRA)
 if ANONVERSCRIPT
 libgcj_la_DEPENDENCIES += $(srcdir)/libgcj.ver
 endif
@@ -472,17 +475,28 @@ libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS)
 EXTRA_libgcj_la_SOURCES = java/lang/Object.java
 
 if BUILD_SUBLIBS
+## This extra target is invoked on windows hosts only by adding it
+## to LIBGCJ_SUBLIB_CORE_EXTRA_SRCS in configure.host, which causes
+## it to be linked in to the core DLL and generate a circular import
+## dependency loop between the two DLLs.  This is required to fix
+## PR42811 by ensuring that any application that links against
+## either always loads both at runtime.
+DLL_VERSION=`expr \`grep -v '^\#' $(srcdir)/libtool-version | sed -e 's/\(.*\):\(.*\):.*/\1 + \2/'\``
+libgcj-noncore-dummy.dll.a : $(srcdir)/libgcj-noncore-dummy.def
+       $(DLLTOOL) -d $^ -l $@ --dllname cyggcj-noncore-$(DLL_VERSION).dll 
+
+## These are the libtool definitions for the noncore library.
 libgcj_noncore_la_SOURCES =
 libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS)
-libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) \
-               $(LIBFFI) $(ZLIBS) $(GCLIBS) libgcj.la
+libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la
 libgcj_noncore_la_DEPENDENCIES = libgcj-$(gcc_version).jar $(LIBLTDL) \
                $(libgcj_noncore_la_LIBADD) libgcj.la
 if ANONVERSCRIPT
 libgcj_noncore_la_DEPENDENCIES += $(srcdir)/libgcj.ver
 endif
 libgcj_noncore_la_LINK = $(libgcj_la_LINK)
-endif
+
+endif  # BUILD_SUBLIBS
 
 # We compile libgcj_tools with -findirect-dispatch so that they can
 # depend on external classes: in particular, gjdoc uses antlr.  In
@@ -1513,6 +1527,7 @@ AM_MAKEFLAGS = \
        "gxx_include_dir=$(gxx_include_dir)" \
        "AR=$(AR)" \
        "AS=$(AS)" \
+       "DLLTOOL=$(DLLTOOL)" \
        "LD=$(LD)" \
        "LIBCFLAGS=$(LIBCFLAGS)" \
        "NM=$(NM)" \
index 23461147ef26fa09410276b4b1b1fef215ad1292..34ddeae7b6b8f99a973e8ef3949439f178e6d357 100644 (file)
@@ -184,14 +184,13 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt_xlib_la-natClip.lo \
 am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1)
 lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
 @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir)
-am__DEPENDENCIES_1 =
 am_libgcj_noncore_la_OBJECTS =
 libgcj_noncore_la_OBJECTS = $(am_libgcj_noncore_la_OBJECTS)
 @BUILD_SUBLIBS_TRUE@am_libgcj_noncore_la_rpath = -rpath \
 @BUILD_SUBLIBS_TRUE@   $(toolexeclibdir)
 am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo
 libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
-@INTERPRETER_TRUE@am__DEPENDENCIES_2 = gnu/classpath/jdwp.lo \
+@INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/event.lo \
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/event/filters.lo \
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/exception.lo \
@@ -200,7 +199,7 @@ libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/transport.lo \
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/util.lo \
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/value.lo gnu/gcj/jvmti.lo
-am__DEPENDENCIES_3 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
+am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        gnu/classpath/debug.lo gnu/classpath/toolkit.lo gnu/gcj.lo \
        gnu/gcj/convert.lo gnu/gcj/io.lo gnu/gcj/runtime.lo \
        gnu/gcj/util.lo gnu/java/awt.lo gnu/java/awt/color.lo \
@@ -317,12 +316,13 @@ am__DEPENDENCIES_3 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        javax/swing/undo.lo javax/tools.lo javax/transaction.lo \
        javax/transaction/xa.lo org/ietf/jgss.lo sun/awt.lo \
        sun/misc.lo sun/reflect.lo sun/reflect/annotation.lo \
-       sun/reflect/misc.lo $(am__DEPENDENCIES_2)
-am__DEPENDENCIES_4 = $(am__DEPENDENCIES_3) $(propertyo_files) \
+       sun/reflect/misc.lo $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) $(propertyo_files) \
        $(bc_objects)
-@BUILD_SUBLIBS_FALSE@am__DEPENDENCIES_5 = $(am__DEPENDENCIES_4)
-@BUILD_SUBLIBS_TRUE@am__DEPENDENCIES_5 =  \
+@BUILD_SUBLIBS_FALSE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_3)
+@BUILD_SUBLIBS_TRUE@am__DEPENDENCIES_4 =  \
 @BUILD_SUBLIBS_TRUE@   $(CORE_PACKAGE_SOURCE_FILES_LO)
+am__DEPENDENCIES_5 =
 am__libgcj_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
        stacktrace.cc link.cc defineclass.cc verify.cc jvmti.cc \
        interpret.cc gnu/classpath/jdwp/natVMFrame.cc \
@@ -660,6 +660,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIRLTDL = @DIRLTDL@
 DIVIDESPEC = @DIVIDESPEC@
+DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -727,6 +728,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
 LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
 LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
@@ -1047,6 +1049,8 @@ CORE_PACKAGE_SOURCE_FILES_LO = $(filter-out $(LOWER_PACKAGE_FILES_LO),$(ALL_PACK
 @BUILD_SUBLIBS_TRUE@libgcj_la_LIBADD_SUBOBJECTS = $(CORE_PACKAGE_SOURCE_FILES_LO)
 @BUILD_SUBLIBS_FALSE@LIBJAVA_LDFLAGS_NOUNDEF = 
 @BUILD_SUBLIBS_TRUE@LIBJAVA_LDFLAGS_NOUNDEF = $(LIBGCJ_SUBLIB_LTFLAGS)
+@BUILD_SUBLIBS_FALSE@LIBJAVA_CORE_EXTRA = 
+@BUILD_SUBLIBS_TRUE@LIBJAVA_CORE_EXTRA = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
 dbexec_LTLIBRARIES = libjvm.la
 pkgconfigdir = $(libdir)/pkgconfig
 jardir = $(datadir)/java
@@ -1158,14 +1162,13 @@ libgcj_la_LIBADD = \
 libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar java/lang/Object.lo \
        java/lang/Class.lo java/process-$(PLATFORM).lo \
        $(ALL_PACKAGE_SOURCE_FILES_LO) $(LIBLTDL) $(libgcj_la_LIBADD) \
-       $(am__append_20)
+       $(LIBJAVA_CORE_EXTRA) $(am__append_20)
 libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS)
 EXTRA_libgcj_la_SOURCES = java/lang/Object.java
+@BUILD_SUBLIBS_TRUE@DLL_VERSION = `expr \`grep -v '^\#' $(srcdir)/libtool-version | sed -e 's/\(.*\):\(.*\):.*/\1 + \2/'\``
 @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_SOURCES = 
 @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS)
-@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) \
-@BUILD_SUBLIBS_TRUE@           $(LIBFFI) $(ZLIBS) $(GCLIBS) libgcj.la
-
+@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) libgcj.la
 @BUILD_SUBLIBS_TRUE@libgcj_noncore_la_DEPENDENCIES =  \
 @BUILD_SUBLIBS_TRUE@   libgcj-$(gcc_version).jar $(LIBLTDL) \
 @BUILD_SUBLIBS_TRUE@   $(libgcj_noncore_la_LIBADD) libgcj.la \
@@ -8770,6 +8773,7 @@ AM_MAKEFLAGS = \
        "gxx_include_dir=$(gxx_include_dir)" \
        "AR=$(AR)" \
        "AS=$(AS)" \
+       "DLLTOOL=$(DLLTOOL)" \
        "LD=$(LD)" \
        "LIBCFLAGS=$(LIBCFLAGS)" \
        "NM=$(NM)" \
@@ -10787,6 +10791,8 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
 
 
 interpret.lo:  AM_CXXFLAGS += -fwrapv
+@BUILD_SUBLIBS_TRUE@libgcj-noncore-dummy.dll.a : $(srcdir)/libgcj-noncore-dummy.def
+@BUILD_SUBLIBS_TRUE@   $(DLLTOOL) -d $^ -l $@ --dllname cyggcj-noncore-$(DLL_VERSION).dll 
 
 $(db_name): gcj-dbtool$(EXEEXT)
        @rm -f $(db_name)
index 605225b19a0c36a9d58d939fe6ae2b202a59393b..0d2fb703eced6b07bb19fbdec082689b54a25550 100755 (executable)
@@ -778,6 +778,7 @@ BUILD_SUBLIBS_FALSE
 BUILD_SUBLIBS_TRUE
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS
 LIBGCJ_LD_SYMBOLIC
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS
 LIBGCJ_SUBLIB_LTFLAGS
 LIBGCJ_JAVAFLAGS
 LIBGCJ_CXXFLAGS
@@ -788,6 +789,7 @@ MAINTAINER_MODE_TRUE
 UNZIP
 ZIP
 JAR
+DLLTOOL
 RANLIB
 AR
 LD
@@ -5567,6 +5569,98 @@ else
   RANLIB="$ac_cv_prog_RANLIB"
 fi
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -5789,13 +5883,16 @@ fi
 #      libgcj_cxxflags  - host specific C++ compiler flags
 #      libgcj_javaflags - host specific Java compiler flags
 #      libgcj_sublib_ltflags - host specific Libtool flags
-#                          (only used when building sublibs)
+#      libgcj_sublib_core_extra_deps - host specific extra
+#                         dependencies for core sublib
+#      (these last two only used when building sublibs)
 # and a number of others; see the list at the start of the file.
 
 libgcj_cflags=
 libgcj_cxxflags=
 libgcj_javaflags=
 libgcj_sublib_ltflags=
+libgcj_sublib_core_extra_deps=
 
 . ${srcdir}/configure.host
 
@@ -5846,6 +5943,7 @@ LIBGCJ_CFLAGS="${libgcj_cflags}"
 LIBGCJ_CXXFLAGS="${libgcj_cxxflags}"
 LIBGCJ_JAVAFLAGS="${libgcj_javaflags}"
 LIBGCJ_SUBLIB_LTFLAGS="${libgcj_sublib_ltflags}"
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS="${libgcj_sublib_core_extra_deps}"
 LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}"
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}"
 
@@ -5855,6 +5953,7 @@ LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}"
 
 
 
+
 # Only use libltdl for non-newlib builds.
 if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
@@ -13238,7 +13337,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 13241 "configure"
+#line 13340 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13344,7 +13443,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 13347 "configure"
+#line 13446 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -19209,7 +19308,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then :
   enableval=$enable_sjlj_exceptions; :
 else
   cat > conftest.$ac_ext << EOF
-#line 19212 "configure"
+#line 19311 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
index 3721e1c34edcf63b1de65884c20831a57b1be9b9..255fb64595e8add23054e87e3f8b7d298cf376ef 100644 (file)
@@ -157,6 +157,7 @@ AC_CHECK_TOOL(AS, as)
 AC_CHECK_TOOL(LD, ld)
 AC_CHECK_TOOL(AR, ar)
 AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(DLLTOOL, dlltool, :)
 AC_PROG_AWK
 AC_CHECK_PROGS([JAR], [jar fastjar gjar], no)
 AC_PATH_PROG([ZIP], [zip], no)
@@ -194,13 +195,16 @@ AC_EXEEXT
 #      libgcj_cxxflags  - host specific C++ compiler flags
 #      libgcj_javaflags - host specific Java compiler flags
 #      libgcj_sublib_ltflags - host specific Libtool flags 
-#                          (only used when building sublibs)
+#      libgcj_sublib_core_extra_deps - host specific extra 
+#                         dependencies for core sublib
+#      (these last two only used when building sublibs)
 # and a number of others; see the list at the start of the file.
 
 libgcj_cflags=
 libgcj_cxxflags=
 libgcj_javaflags=
 libgcj_sublib_ltflags=
+libgcj_sublib_core_extra_deps=
 
 . ${srcdir}/configure.host
 
@@ -214,12 +218,14 @@ LIBGCJ_CFLAGS="${libgcj_cflags}"
 LIBGCJ_CXXFLAGS="${libgcj_cxxflags}"
 LIBGCJ_JAVAFLAGS="${libgcj_javaflags}"
 LIBGCJ_SUBLIB_LTFLAGS="${libgcj_sublib_ltflags}"
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS="${libgcj_sublib_core_extra_deps}"
 LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}"
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}"
 AC_SUBST(LIBGCJ_CFLAGS)
 AC_SUBST(LIBGCJ_CXXFLAGS)
 AC_SUBST(LIBGCJ_JAVAFLAGS)
 AC_SUBST(LIBGCJ_SUBLIB_LTFLAGS)
+AC_SUBST(LIBGCJ_SUBLIB_CORE_EXTRA_DEPS)
 AC_SUBST(LIBGCJ_LD_SYMBOLIC)
 AC_SUBST(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
 
index 36039b5fc4a184b0c414801c2e734ded45ed57fd..460ef2fab07f122e7e5220df888d91de0ca30ec1 100644 (file)
@@ -18,7 +18,8 @@
 #   libgcj_cflags      Special CFLAGS to use when building
 #   libgcj_cxxflags    Special CXXFLAGS to use when building
 #   libgcj_javaflags   Special JAVAFLAGS to use when building
-#   libgcj_sublib_ltflags  Special Libtool flags to use when building.
+#   libgcj_sublib_ltflags  Special Libtool flags to use when building sublibs
+#   libgcj_sublib_core_extra_deps  Extra dependencies to add to core sublib
 #   libgcj_interpreter  If the bytecode interpreter supports this platform.
 #   enable_java_net_default  If java.net native code should be enabled by
 #                            default.
@@ -43,6 +44,7 @@ libgcj_cflags=
 libgcj_cxxflags=
 libgcj_javaflags=
 libgcj_sublib_ltflags=
+libgcj_sublib_core_extra_deps=
 libgcj_interpreter=
 enable_java_net_default=yes
 enable_hash_synchronization_default=no
@@ -351,7 +353,9 @@ case "${host}" in
        BACKTRACESPEC=
        # Win32 DLLs are limited to 64k exported symbols each.
        enable_libgcj_sublibs_default=yes
-       libgcj_sublib_ltflags='-no-undefined -bindir $(bindir)'
+       libgcj_sublib_ltflags='-no-undefined -bindir $(bindir) \
+           -Wl,-u,__ZN3org4ietf4jgss10GSSManagerC1Ev,-L..,-lgcj-noncore-dummy'
+       libgcj_sublib_core_extra_deps=libgcj-noncore-dummy.dll.a
   ;;
 esac
 
index 55524392d98544b99d98aa7e9ee7a303c1eeb0f1..e73ef0e7140cb9717b4b99b7a0e581083c0feb57 100644 (file)
@@ -124,6 +124,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIRLTDL = @DIRLTDL@
 DIVIDESPEC = @DIVIDESPEC@
+DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -191,6 +192,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
 LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
 LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
index 539dd01f18804619f8052f724b233d0e703fa841..5e5a4b3d5bfc87b7f16b40c5e4b7ed0ac018a667 100644 (file)
@@ -124,6 +124,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIRLTDL = @DIRLTDL@
 DIVIDESPEC = @DIVIDESPEC@
+DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -191,6 +192,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
 LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
 LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
diff --git a/libjava/libgcj-noncore-dummy.def b/libjava/libgcj-noncore-dummy.def
new file mode 100644 (file)
index 0000000..e56f9f6
--- /dev/null
@@ -0,0 +1,7 @@
+
+LIBRARY cyggcj-noncore-11.dll
+
+EXPORTS
+
+  _ZN3org4ietf4jgss10GSSManagerC1Ev
+
index 5086016cfaf2a517e6f2e480151264f41c11b911..86862ce86904d68309060bca6ceca7c15af62372 100644 (file)
@@ -99,6 +99,7 @@ DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIRLTDL = @DIRLTDL@
 DIVIDESPEC = @DIVIDESPEC@
+DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -166,6 +167,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
 LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
 LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@