]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cygming.h (TARGET_USE_JCR_SECTION): Enable.
authorDave Korn <dave.korn.cygwin@gmail.com>
Tue, 22 Sep 2009 18:58:13 +0000 (18:58 +0000)
committerDave Korn <davek@gcc.gnu.org>
Tue, 22 Sep 2009 18:58:13 +0000 (18:58 +0000)
gcc/ChangeLog

* config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
* config/i386/cygwin.h (LIBGCJ_SONAME): Define.
* config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.

libjava/ChangeLog

* configure.host (enable_libgcj_sublibs_default): New variable,
set for Cygwin and MinGW.
* configure.ac (--enable-libgcj-sublibs): New command-line switch.
(BUILD_SUBLIBS): New AM_CONDITIONAL relating to it.
(libgcj_spec_lgcj_override): New variable, define if building sublibs.
(libgcj_spec_lgcj_bc_override): Likewise for when USE_LIBGCJ_BC.
(LIBGCJ_SPEC_LGCJ): New variable to abstract "-lgcj" from specs.
(LIBGCJ_SPEC_LGCJ_BC): Likewise for when USE_LIBGCJ_BC.
(LIBGCJ_SPEC): Use them.
* configure: Regenerate.
* Makefile.am (LOWER_PACKAGE_FILES_LO): New variable.
(ALL_PACKAGE_SOURCE_FILES_LO): Likewise.
(NONCORE_PACKAGE_SOURCE_FILES_LO): Likewise.
(CORE_PACKAGE_SOURCE_FILES_LO): Likewise.
(toolexeclib_LTLIBRARIES): Add libgcj-noncore.la if building sublibs.
(libgcj_noncore_la_LIBADD_SUBOBJECTS): New variable.
(libgcj_la_LIBADD_SUBOBJECTS): Likewise.
(libgcj_la_LDFLAGS_NOUNDEF): Likewise.
(libgij_la_LDFLAGS): Add DLL-related options.
(libgcj_la_LDFLAGS): Use libgcj_la_LDFLAGS_NOUNDEF and
libgcj_la_LIBADD_SUBOBJECTS.
(libgcj_la_DEPENDENCIES): Adjust to match.
(libgcj_noncore_la_SOURCES, libgcj_noncore_la_LDFLAGS,
libgcj_noncore_la_LIBADD, libgcj_noncore_la_DEPENDENCIES,
libgcj_noncore_la_LINK): New automake variables for sublibrary.
(libgcj_tools_la_LDFLAGS): Add DLL-related flags.
(libgcj_tools_la_LIBADD): New variable.
(libjvm_la_LDFLAGS): Add DLL-related flags.
(lib_gnu_awt_xlib_la_LDFLAGS): Likewise.
(libgcj_bc_la_LDFLAGS): Likewise.
(libgij_la_DEPENDENCIES): Add dependency on libgcj-noncore.la when
building sublibs.
(libgcj_tools_la_DEPENDENCIES, libjvm_la_DEPENDENCIES,
lib_gnu_awt_xlib_la_DEPENDENCIES, jv_convert_DEPENDENCIES,
gcj_dbtool_DEPENDENCIES, gc_analyze_DEPENDENCIES, ecjx_DEPENDENCIES):
Likewise.
* Makefile.in: Regenerate.
* sysdep/i386/backtrace.h (MAIN_FUNC): New #define for main function,
set appropriately for Cygwin on that platform or to "main" elsewhere.
(fallback_backtrace): Use it to limit stack unwind.

libjava/libltdl/ChangeLog:

* ltdl.h (LT_SCOPE): Change conditional to avoid breaking
auto-export during libgcj DLL linking.
* Makefile.am (libltdl_la_LDFLAGS): Remove -bindir switch.
* Makefile.in: Regenerate.

From-SVN: r152041

15 files changed:
gcc/ChangeLog
gcc/config/i386/cygming.h
gcc/config/i386/cygwin.h
gcc/config/i386/mingw32.h
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/configure
libjava/configure.ac
libjava/configure.host
libjava/libltdl/ChangeLog
libjava/libltdl/Makefile.am
libjava/libltdl/Makefile.in
libjava/libltdl/ltdl.h
libjava/sysdep/i386/backtrace.h

index 2565cb9a7b3c5b3d642cfd0330f242e0fcb139a9..2da2d4441f10e12077ff2d85e0a1c54e835e8e23 100644 (file)
@@ -1,3 +1,9 @@
+2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
+       * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
+       * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
+
 2009-09-22  Alexandre Oliva  <aoliva@redhat.com>
 
        PR debug/41295
index 5fc0c1d41c5ca855b709c9a39bdf4adf4b8cb8d6..43003cc5cad30de1c95bb1ef75778b180efaa859 100644 (file)
@@ -383,7 +383,7 @@ do {                                                \
 /* FIXME: SUPPORTS_WEAK && TARGET_HAVE_NAMED_SECTIONS is true,
    but for .jcr section to work we also need crtbegin and crtend
    objects.  */
-#define TARGET_USE_JCR_SECTION 0
+#define TARGET_USE_JCR_SECTION 1
 
 /* Decide whether it is safe to use a local alias for a virtual function
    when constructing thunks.  */
index d1d00f7a79b934bcd36f00669c9b0841a2ed213e..933263769f97cc08ad6f371901f9fd359824f10e 100644 (file)
@@ -267,3 +267,7 @@ while (0)
 #define LIBGCC_EH_EXTN "-sjlj"
 #endif
 #define LIBGCC_SONAME "cyggcc_s" LIBGCC_EH_EXTN "-1.dll"
+
+/* We should find a way to not have to update this manually.  */
+#define LIBGCJ_SONAME "cyggcj" /*LIBGCC_EH_EXTN*/ "-11.dll"
+
index e856ecdbc979d643d30d47f481521f6d95b5e8de..9dcc5ba1f67f1bdfb17bd0988e6c60640378aafc 100644 (file)
@@ -221,3 +221,7 @@ __enable_execute_stack (void *addr)                                 \
 #define LIBGCC_EH_EXTN "_sjlj"
 #endif
 #define LIBGCC_SONAME "libgcc_s" LIBGCC_EH_EXTN "-1.dll"
+
+/* We should find a way to not have to update this manually.  */
+#define LIBGCJ_SONAME "cyggcj" /*LIBGCC_EH_EXTN*/ "-11.dll"
+
index b58bc9966bb456eb4c7405f8fb776d8b0804b1a0..e8ad3b347ce02e593e272a6ac985db82b563deca 100644 (file)
@@ -1,3 +1,46 @@
+2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * configure.host (enable_libgcj_sublibs_default): New variable,
+       set for Cygwin and MinGW.
+       * configure.ac (--enable-libgcj-sublibs): New command-line switch.
+       (BUILD_SUBLIBS): New AM_CONDITIONAL relating to it.
+       (libgcj_spec_lgcj_override): New variable, define if building sublibs.
+       (libgcj_spec_lgcj_bc_override): Likewise for when USE_LIBGCJ_BC.
+       (LIBGCJ_SPEC_LGCJ): New variable to abstract "-lgcj" from specs.
+       (LIBGCJ_SPEC_LGCJ_BC): Likewise for when USE_LIBGCJ_BC.
+       (LIBGCJ_SPEC): Use them.
+       * configure: Regenerate.
+       * Makefile.am (LOWER_PACKAGE_FILES_LO): New variable.
+       (ALL_PACKAGE_SOURCE_FILES_LO): Likewise.
+       (NONCORE_PACKAGE_SOURCE_FILES_LO): Likewise.
+       (CORE_PACKAGE_SOURCE_FILES_LO): Likewise.
+       (toolexeclib_LTLIBRARIES): Add libgcj-noncore.la if building sublibs.
+       (libgcj_noncore_la_LIBADD_SUBOBJECTS): New variable.
+       (libgcj_la_LIBADD_SUBOBJECTS): Likewise.
+       (libgcj_la_LDFLAGS_NOUNDEF): Likewise.
+       (libgij_la_LDFLAGS): Add DLL-related options.
+       (libgcj_la_LDFLAGS): Use libgcj_la_LDFLAGS_NOUNDEF and
+       libgcj_la_LIBADD_SUBOBJECTS.
+       (libgcj_la_DEPENDENCIES): Adjust to match.
+       (libgcj_noncore_la_SOURCES, libgcj_noncore_la_LDFLAGS,
+       libgcj_noncore_la_LIBADD, libgcj_noncore_la_DEPENDENCIES,
+       libgcj_noncore_la_LINK): New automake variables for sublibrary.
+       (libgcj_tools_la_LDFLAGS): Add DLL-related flags.
+       (libgcj_tools_la_LIBADD): New variable.
+       (libjvm_la_LDFLAGS): Add DLL-related flags.
+       (lib_gnu_awt_xlib_la_LDFLAGS): Likewise.
+       (libgcj_bc_la_LDFLAGS): Likewise.
+       (libgij_la_DEPENDENCIES): Add dependency on libgcj-noncore.la when
+       building sublibs.
+       (libgcj_tools_la_DEPENDENCIES, libjvm_la_DEPENDENCIES,
+       lib_gnu_awt_xlib_la_DEPENDENCIES, jv_convert_DEPENDENCIES,
+       gcj_dbtool_DEPENDENCIES, gc_analyze_DEPENDENCIES, ecjx_DEPENDENCIES):
+       Likewise.
+       * Makefile.in: Regenerate.
+       * sysdep/i386/backtrace.h (MAIN_FUNC): New #define for main function,
+       set appropriately for Cygwin on that platform or to "main" elsewhere.
+       (fallback_backtrace): Use it to limit stack unwind.
+
 2009-09-16  Jonathan Yong  <jon_y@users.sourceforge.net>
 
        * gnu/java/security/jce/prng/natVMSecureRandomWin32.cc: Correct
index 7b6750c493cef665b874486a45a7c7adeda505d7..e923fa30c5ea76dd7650bfefbe43d8849ea55a46 100644 (file)
@@ -45,6 +45,170 @@ libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
 toolexeclib_LTLIBRARIES = libgcj.la libgij.la libgcj-tools.la
 toolexecmainlib_DATA = libgcj.spec
 
+##
+## These files form a closed dependency group at the lower
+## edge of libjava's dependency graph, so can be separated out.
+## For details of how the list was generated, see the GCC wiki:
+##
+##   http://gcc.gnu.org/wiki/Internal_dependencies_of_libgcj
+##
+LOWER_PACKAGE_FILES_LO = \
+       $(propertyo_files) \
+       gnu-CORBA.lo \
+       gnu-java-awt-dnd-peer-gtk.lo \
+       gnu-java-awt-peer-gtk.lo \
+       gnu-java-awt-peer-swing.lo \
+       gnu-java-lang-management.lo \
+       gnu-javax-management.lo \
+       gnu-javax-rmi.lo \
+       gnu-javax-sound-midi.lo \
+       gnu-xml-aelfred2.lo \
+       gnu-xml-dom.lo \
+       gnu-xml-libxmlj.lo \
+       gnu-xml-pipeline.lo \
+       gnu-xml-stream.lo \
+       gnu-xml-transform.lo \
+       gnu-xml-util.lo \
+       gnu-xml-validation.lo \
+       gnu-xml-xpath.lo \
+       java-lang-management.lo \
+       javax-imageio.lo \
+       javax-rmi.lo \
+       jni-libjvm.lo \
+       org-omg-CORBA.lo \
+       org-omg-CORBA_2_3.lo \
+       org-omg-CosNaming.lo \
+       org-omg-Dynamic.lo \
+       org-omg-DynamicAny.lo \
+       org-omg-IOP.lo \
+       org-omg-Messaging.lo \
+       org-omg-PortableInterceptor.lo \
+       org-omg-PortableServer.lo \
+       org-omg-SendingContext.lo \
+       org-omg-stub.lo \
+       org-relaxng.lo \
+       org-xml.lo \
+       META-INF/services/java.util.prefs.PreferencesFactory.in.lo \
+       META-INF/services/java.util.prefs.PreferencesFactory.lo \
+       META-INF/services/javax.sound.midi.spi.MidiDeviceProvider.lo \
+       META-INF/services/javax.sound.midi.spi.MidiFileReader.lo \
+       META-INF/services/javax.sound.midi.spi.MidiFileWriter.lo \
+       META-INF/services/javax.sound.sampled.spi.AudioFileReader.lo \
+       classpath/native/jni/classpath/jcl.lo \
+       classpath/native/jni/classpath/jnilink.lo \
+       classpath/native/jni/java-math/gnu_java_math_GMP.lo \
+       classpath/tools/libgcj_tools_la-tools.lo \
+       gnu/awt.lo \
+       gnu/awt/j2d.lo \
+       gnu/gcj/io.lo \
+       gnu/gcj/io/natSimpleSHSStream.lo \
+       gnu/gcj/io/shs.lo \
+       gnu/gcj/tools/gcj_dbtool.lo \
+       gnu/gcj/util/natDebug.lo \
+       gnu/gcj/util/natGCInfo.lo \
+       gnu/java/awt/dnd.lo \
+       gnu/java/awt/font.lo \
+       gnu/java/awt/image.lo \
+       gnu/java/awt/print.lo \
+       gnu/java/awt/font/autofit.lo \
+       gnu/java/awt/font/opentype.lo \
+       gnu/java/awt/font/opentype/truetype.lo \
+       gnu/java/lang/management/natVMClassLoadingMXBeanImpl.lo \
+       gnu/java/lang/management/natVMCompilationMXBeanImpl.lo \
+       gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.lo \
+       gnu/java/lang/management/natVMMemoryMXBeanImpl.lo \
+       gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.lo \
+       gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.lo \
+       gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.lo \
+       gnu/java/lang/management/natVMRuntimeMXBeanImpl.lo \
+       gnu/java/lang/management/natVMThreadMXBeanImpl.lo \
+       gnu/java/net/local.lo \
+       gnu/java/net/protocol/ftp.lo \
+       gnu/java/net/protocol/gcjlib.lo \
+       gnu/java/net/protocol/https.lo \
+       gnu/javax/imageio.lo \
+       gnu/javax/print.lo \
+       gnu/javax/sound.lo \
+       gnu/javax/activation/viewers.lo \
+       gnu/javax/imageio/bmp.lo \
+       gnu/javax/imageio/gif.lo \
+       gnu/javax/imageio/jpeg.lo \
+       gnu/javax/imageio/png.lo \
+       gnu/javax/naming/giop.lo \
+       gnu/javax/naming/ictxImpl/trans.lo \
+       gnu/javax/naming/jndi/url/corbaname.lo \
+       gnu/javax/naming/jndi/url/rmi.lo \
+       gnu/javax/print/ipp.lo \
+       gnu/javax/print/ipp/attribute.lo \
+       gnu/javax/print/ipp/attribute/defaults.lo \
+       gnu/javax/print/ipp/attribute/job.lo \
+       gnu/javax/print/ipp/attribute/printer.lo \
+       gnu/javax/print/ipp/attribute/supported.lo \
+       gnu/javax/security/auth/login.lo \
+       gnu/javax/sound/sampled/AU.lo \
+       gnu/javax/sound/sampled/WAV.lo \
+       gnu/javax/swing/plaf/gnu.lo \
+       gnu/javax/swing/plaf/metal.lo \
+       java/sql.lo \
+       java/awt/im.lo \
+       java/awt/print.lo \
+       java/awt/im/spi.lo \
+       java/security/acl.lo \
+       javax/activation.lo \
+       javax/activity.lo \
+       javax/management.lo \
+       javax/naming.lo \
+       javax/print.lo \
+       javax/sql.lo \
+       javax/tools.lo \
+       javax/transaction.lo \
+       javax/management/loading.lo \
+       javax/management/openmbean.lo \
+       javax/management/remote.lo \
+       javax/management/remote/rmi.lo \
+       javax/naming/directory.lo \
+       javax/naming/event.lo \
+       javax/naming/ldap.lo \
+       javax/naming/spi.lo \
+       javax/print/attribute.lo \
+       javax/print/event.lo \
+       javax/print/attribute/standard.lo \
+       javax/security/cert.lo \
+       javax/security/auth/kerberos.lo \
+       javax/security/auth/login.lo \
+       javax/security/auth/spi.lo \
+       javax/sound/midi.lo \
+       javax/sound/midi/spi.lo \
+       javax/swing/plaf/multi.lo \
+       javax/swing/plaf/synth.lo \
+       javax/swing/text/rtf.lo \
+       javax/swing/text/html/default.css.lo \
+       javax/transaction/xa.lo \
+       org/ietf/jgss.lo \
+       sun/awt.lo
+
+##
+## Lists of all .lo files, and filtered core and non-core lists.
+## 
+ALL_PACKAGE_SOURCE_FILES_LO = $(all_packages_source_files:.list=.lo) $(propertyo_files) $(bc_objects)
+NONCORE_PACKAGE_SOURCE_FILES_LO = $(filter $(LOWER_PACKAGE_FILES_LO),$(ALL_PACKAGE_SOURCE_FILES_LO))
+CORE_PACKAGE_SOURCE_FILES_LO = $(filter-out $(LOWER_PACKAGE_FILES_LO),$(ALL_PACKAGE_SOURCE_FILES_LO))
+
+##
+## Assign objects to output libraries.
+##
+if BUILD_SUBLIBS
+toolexeclib_LTLIBRARIES += libgcj-noncore.la
+libgcj_noncore_la_LIBADD_SUBOBJECTS = $(NONCORE_PACKAGE_SOURCE_FILES_LO)
+libgcj_la_LIBADD_SUBOBJECTS = $(CORE_PACKAGE_SOURCE_FILES_LO)
+libgcj_la_LDFLAGS_NOUNDEF = -no-undefined -bindir $(bindir)
+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)
+libgcj_la_LDFLAGS_NOUNDEF = 
+endif
+
 if USE_LIBGCJ_BC
 toolexeclib_LTLIBRARIES += libgcj_bc.la
 endif
@@ -218,10 +382,13 @@ BOOTCLASSPATH = $(srcdir)/classpath/lib
 
 libgij_la_SOURCES = gij.cc
 libgij_la_DEPENDENCIES = libgcj.la libgcj.spec
+if BUILD_SUBLIBS
+libgij_la_DEPENDENCIES += libgcj-noncore.la
+endif
 ## See jv_convert_LDADD.
 libgij_la_LIBADD = -L$(here)/.libs libgcj.la
 ## The mysterious backslash in the grep pattern is consumed by make.
-libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
+libgij_la_LDFLAGS = -rpath $(toolexeclibdir) -no-undefined -bindir $(bindir) \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 libgij_la_LINK = $(CXXLINK) $(libgij_la_LDFLAGS)
 
@@ -278,7 +445,7 @@ xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
 # certain linuxthread functions get linked:
 ## The mysterious backslash in the grep pattern is consumed by make.
 libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
-       $(LIBLTDL) $(SYS_ZLIBS) \
+       $(LIBLTDL) $(SYS_ZLIBS) $(libgcj_la_LDFLAGS_NOUNDEF) \
        -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
        $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
 libgcj_la_LIBADD = \
@@ -286,15 +453,13 @@ libgcj_la_LIBADD = \
        java/lang/Object.lo \
        java/lang/Class.lo \
        java/process-$(PLATFORM).lo \
-       $(all_packages_source_files:.list=.lo) \
-       $(bc_objects) \
-       $(propertyo_files) \
+       $(libgcj_la_LIBADD_SUBOBJECTS) \
        $(LIBFFI) $(ZLIBS) $(GCLIBS)
 libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
        java/lang/Object.lo \
        java/lang/Class.lo \
        java/process-$(PLATFORM).lo \
-       $(all_packages_source_files:.list=.lo) \
+       $(ALL_PACKAGE_SOURCE_FILES_LO) \
        $(LIBLTDL) $(libgcj_la_LIBADD)
 if ANONVERSCRIPT
 libgcj_la_DEPENDENCIES += $(srcdir)/libgcj.ver
@@ -306,6 +471,19 @@ libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS)
 ## compiled.
 EXTRA_libgcj_la_SOURCES = java/lang/Object.java
 
+if BUILD_SUBLIBS
+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_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
+
 # We compile libgcj_tools with -findirect-dispatch so that they can
 # depend on external classes: in particular, gjdoc uses antlr.  In
 # addition, -fno-bootstrap-classes ensures that the tools are loaded
@@ -317,16 +495,24 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
  -fsource-filename=$(here)/classpath/tools/all-classes.lst
 libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
- $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) -no-undefined -bindir $(bindir)
+libgcj_tools_la_LIBADD = libgcj.la
 libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
+if BUILD_SUBLIBS
+libgcj_tools_la_DEPENDENCIES += libgcj-noncore.la
+endif
 libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS)
 
 ## libjvm.so
 libjvm_la_SOURCES = jni-libjvm.cc
 libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec
+if BUILD_SUBLIBS
+libjvm_la_DEPENDENCIES += libgcj-noncore.la
+endif
 ## See jv_convert_LDADD.
 libjvm_la_LIBADD = -L$(here)/.libs libgcj.la
-libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC)
+libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC) \
+ -no-undefined -bindir $(bindir)
 libjvm_la_LINK = $(CXXLINK) $(libjvm_la_LDFLAGS)
 
 ## The .db file.  This rule is only used for native builds, so it is
@@ -344,6 +530,9 @@ lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo
 lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
        libgcj.la libgcj.spec \
        $(lib_gnu_awt_xlib_la_LIBADD)
+if BUILD_SUBLIBS
+lib_gnu_awt_xlib_la_DEPENDENCIES += libgcj-noncore.la
+endif
 ## We require libstdc++-v3 to be in the same build tree.
 lib_gnu_awt_xlib_la_CPPFLAGS = \
        $(AM_CPPFLAGS) \
@@ -353,7 +542,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
 ## The mysterious backslash in the grep pattern is consumed by make.
 lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
        @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-        -rpath $(toolexeclibdir) \
+        -rpath $(toolexeclibdir) -no-undefined -bindir $(bindir) \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS)
 
@@ -363,7 +552,7 @@ lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS)
 ## This library is not linked against libgcj.
 libgcj_bc_la_SOURCES = libgcj_bc.c
 libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \
-       $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+       $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) -no-undefined -bindir $(bindir)
 libgcj_bc_la_DEPENDENCIES = libgcj.la
 libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS)
 ## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others.
@@ -826,6 +1015,9 @@ jv_convert_LDADD = -L$(here)/.libs libgcj.la
 ## Depend on the spec file to make sure it is up to date before
 ## linking this program.
 jv_convert_DEPENDENCIES = libgcj.la libgcj.spec
+if BUILD_SUBLIBS
+jv_convert_DEPENDENCIES += libgcj-noncore.la
+endif
 
 gcj_dbtool_SOURCES = \
 gnu/gcj/tools/gcj_dbtool/natMain.cc
@@ -847,6 +1039,9 @@ gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la
 ## Depend on the spec file to make sure it is up to date before
 ## linking this program.
 gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la libgcj.spec
+if BUILD_SUBLIBS
+gcj_dbtool_DEPENDENCIES += libgcj-noncore.la
+endif
 
 gc_analyze_SOURCES =
 
@@ -861,6 +1056,9 @@ gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la
 ## Depend on the spec file to make sure it is up to date before
 ## linking this program.
 gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec
+if BUILD_SUBLIBS
+gc_analyze_DEPENDENCIES += libgcj-noncore.la
+endif
 
 gij_SOURCES = 
 ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'.  We
@@ -899,6 +1097,9 @@ endif !ENABLE_SHARED
 
 ecjx_LDADD = -L$(here)/.libs $(extra_ldflags)
 ecjx_DEPENDENCIES = libgcj.la libgcj.spec
+if BUILD_SUBLIBS
+ecjx_DEPENDENCIES += libgcj-noncore.la
+endif
 if USE_LIBGCJ_BC
 ecjx_DEPENDENCIES += libgcj_bc.la
 else
index 349b9074d34bc03932ad8788224717082b8f2849..83c4c6069752f9e8dfa0b1534b9dd63fa402c339 100644 (file)
@@ -39,26 +39,32 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 @TESTSUBDIR_TRUE@am__append_1 = testsuite
-@USE_LIBGCJ_BC_TRUE@am__append_2 = libgcj_bc.la
-@XLIB_AWT_TRUE@am__append_3 = lib-gnu-awt-xlib.la
-@INSTALL_ECJ_JAR_TRUE@am__append_4 = $(ECJ_BUILD_JAR)
-@CREATE_GJDOC_TRUE@@NATIVE_TRUE@am__append_5 = gjdoc
+@BUILD_SUBLIBS_TRUE@am__append_2 = libgcj-noncore.la
+@USE_LIBGCJ_BC_TRUE@am__append_3 = libgcj_bc.la
+@XLIB_AWT_TRUE@am__append_4 = lib-gnu-awt-xlib.la
+@INSTALL_ECJ_JAR_TRUE@am__append_5 = $(ECJ_BUILD_JAR)
+@CREATE_GJDOC_TRUE@@NATIVE_TRUE@am__append_6 = gjdoc
 @NATIVE_TRUE@noinst_PROGRAMS = $(am__EXEEXT_3) $(am__EXEEXT_4)
 @INSTALL_BINARIES_TRUE@@NATIVE_TRUE@bin_PROGRAMS = $(am__EXEEXT_2)
-@INSTALL_BINARIES_FALSE@@NATIVE_TRUE@am__append_6 = $(bin_programs)
-@INSTALL_AOT_RPM_TRUE@am__append_7 = contrib/aot-compile-rpm
+@INSTALL_BINARIES_FALSE@@NATIVE_TRUE@am__append_7 = $(bin_programs)
+@INSTALL_AOT_RPM_TRUE@am__append_8 = contrib/aot-compile-rpm
 @BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT)
-@ANONVERSCRIPT_TRUE@am__append_8 = -Wl,--version-script=$(srcdir)/libgcj.ver
-@USING_GCC_TRUE@am__append_9 = $(WARNINGS)
-@USING_BOEHMGC_TRUE@am__append_10 = boehm.cc
-@USING_NOGC_TRUE@am__append_11 = nogc.cc
-@USING_POSIX_PLATFORM_TRUE@am__append_12 = posix.cc
-@USING_WIN32_PLATFORM_TRUE@am__append_13 = win32.cc
-@USING_DARWIN_CRT_TRUE@am__append_14 = darwin.cc
-@USING_POSIX_THREADS_TRUE@am__append_15 = posix-threads.cc
-@USING_WIN32_THREADS_TRUE@am__append_16 = win32-threads.cc
-@USING_NO_THREADS_TRUE@am__append_17 = no-threads.cc
-@ANONVERSCRIPT_TRUE@am__append_18 = $(srcdir)/libgcj.ver
+@ANONVERSCRIPT_TRUE@am__append_9 = -Wl,--version-script=$(srcdir)/libgcj.ver
+@USING_GCC_TRUE@am__append_10 = $(WARNINGS)
+@BUILD_SUBLIBS_TRUE@am__append_11 = libgcj-noncore.la
+@USING_BOEHMGC_TRUE@am__append_12 = boehm.cc
+@USING_NOGC_TRUE@am__append_13 = nogc.cc
+@USING_POSIX_PLATFORM_TRUE@am__append_14 = posix.cc
+@USING_WIN32_PLATFORM_TRUE@am__append_15 = win32.cc
+@USING_DARWIN_CRT_TRUE@am__append_16 = darwin.cc
+@USING_POSIX_THREADS_TRUE@am__append_17 = posix-threads.cc
+@USING_WIN32_THREADS_TRUE@am__append_18 = win32-threads.cc
+@USING_NO_THREADS_TRUE@am__append_19 = no-threads.cc
+@ANONVERSCRIPT_TRUE@am__append_20 = $(srcdir)/libgcj.ver
+@ANONVERSCRIPT_TRUE@@BUILD_SUBLIBS_TRUE@am__append_21 = $(srcdir)/libgcj.ver
+@BUILD_SUBLIBS_TRUE@am__append_22 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_23 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_24 = libgcj-noncore.la
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
        $(srcdir)/../config.guess $(srcdir)/../config.sub \
        $(srcdir)/../depcomp $(srcdir)/../install-sh \
@@ -76,10 +82,14 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
        $(top_srcdir)/gnu/java/nio/natVMSelector${PLATFORM}.cc \
        $(top_srcdir)/java/lang/nat${PLATFORM}Process.cc \
        $(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS
-@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_19 = gen-from-JIS
-@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_20 = libgcj_bc.la
-@NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_21 = libgcj.la
-@XLIB_AWT_TRUE@am__append_22 = $(xlib_nat_headers)
+@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@am__append_25 = gen-from-JIS
+@BUILD_SUBLIBS_TRUE@am__append_26 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_27 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@am__append_28 = libgcj-noncore.la
+@BUILD_SUBLIBS_TRUE@@NATIVE_TRUE@am__append_29 = libgcj-noncore.la
+@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_30 = libgcj_bc.la
+@NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_31 = libgcj.la
+@XLIB_AWT_TRUE@am__append_32 = $(xlib_nat_headers)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
@@ -174,10 +184,14 @@ 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)
-libgcj_tools_la_LIBADD =
+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_1 = gnu/classpath/jdwp.lo \
+@INTERPRETER_TRUE@am__DEPENDENCIES_2 = 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 \
@@ -186,7 +200,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_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
+am__DEPENDENCIES_3 = 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 \
@@ -303,8 +317,12 @@ am__DEPENDENCIES_2 = 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_1)
-am__DEPENDENCIES_3 =
+       sun/reflect/misc.lo $(am__DEPENDENCIES_2)
+am__DEPENDENCIES_4 = $(am__DEPENDENCIES_3) $(propertyo_files) \
+       $(bc_objects)
+@BUILD_SUBLIBS_FALSE@am__DEPENDENCIES_5 = $(am__DEPENDENCIES_4)
+@BUILD_SUBLIBS_TRUE@am__DEPENDENCIES_5 =  \
+@BUILD_SUBLIBS_TRUE@   $(CORE_PACKAGE_SOURCE_FILES_LO)
 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 \
@@ -538,23 +556,23 @@ GCJCOMPILE = $(GCJ) $(AM_GCJFLAGS) $(GCJFLAGS)
 LTGCJCOMPILE = $(LIBTOOL) --tag=GCJ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
        --mode=compile $(GCJ) $(AM_GCJFLAGS) $(GCJFLAGS)
 GCJLD = $(GCJ)
-SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_tools_la_SOURCES) \
-       $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) \
-       $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \
-       $(libjvm_la_SOURCES) $(ecjx_SOURCES) $(gappletviewer_SOURCES) \
-       $(gc_analyze_SOURCES) $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
-       $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(gjar_SOURCES) \
-       $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gjdoc_SOURCES) \
-       $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
-       $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
-       $(gserialver_SOURCES) $(gtnameserv_SOURCES) \
-       $(jv_convert_SOURCES)
-DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
-       $(libgcj_tools_la_SOURCES) $(am__libgcj_la_SOURCES_DIST) \
+SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_noncore_la_SOURCES) \
+       $(libgcj_tools_la_SOURCES) $(libgcj_la_SOURCES) \
        $(EXTRA_libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \
        $(libgij_la_SOURCES) $(libjvm_la_SOURCES) $(ecjx_SOURCES) \
        $(gappletviewer_SOURCES) $(gc_analyze_SOURCES) \
-       $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
+       $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) $(gen_from_JIS_SOURCES) \
+       $(gij_SOURCES) $(gjar_SOURCES) $(gjarsigner_SOURCES) \
+       $(gjavah_SOURCES) $(gjdoc_SOURCES) $(gkeytool_SOURCES) \
+       $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \
+       $(grmid_SOURCES) $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
+       $(gtnameserv_SOURCES) $(jv_convert_SOURCES)
+DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
+       $(libgcj_noncore_la_SOURCES) $(libgcj_tools_la_SOURCES) \
+       $(am__libgcj_la_SOURCES_DIST) $(EXTRA_libgcj_la_SOURCES) \
+       $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \
+       $(libjvm_la_SOURCES) $(ecjx_SOURCES) $(gappletviewer_SOURCES) \
+       $(gc_analyze_SOURCES) $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
        $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
        $(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \
        $(gjdoc_SOURCES) $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) \
@@ -802,7 +820,7 @@ dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 extra_gij_ldflags = @extra_gij_ldflags@
 extra_ldflags = @extra_ldflags@
-extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_8)
+extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_9)
 gcc_suffix = @gcc_suffix@
 gcjsubdir = @gcjsubdir@
 gxx_include_dir = @gxx_include_dir@
@@ -883,13 +901,158 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) \
 libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
 libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
 toolexeclib_LTLIBRARIES = libgcj.la libgij.la libgcj-tools.la \
-       $(am__append_2) $(am__append_3)
+       $(am__append_2) $(am__append_3) $(am__append_4)
 toolexecmainlib_DATA = libgcj.spec
+LOWER_PACKAGE_FILES_LO = \
+       $(propertyo_files) \
+       gnu-CORBA.lo \
+       gnu-java-awt-dnd-peer-gtk.lo \
+       gnu-java-awt-peer-gtk.lo \
+       gnu-java-awt-peer-swing.lo \
+       gnu-java-lang-management.lo \
+       gnu-javax-management.lo \
+       gnu-javax-rmi.lo \
+       gnu-javax-sound-midi.lo \
+       gnu-xml-aelfred2.lo \
+       gnu-xml-dom.lo \
+       gnu-xml-libxmlj.lo \
+       gnu-xml-pipeline.lo \
+       gnu-xml-stream.lo \
+       gnu-xml-transform.lo \
+       gnu-xml-util.lo \
+       gnu-xml-validation.lo \
+       gnu-xml-xpath.lo \
+       java-lang-management.lo \
+       javax-imageio.lo \
+       javax-rmi.lo \
+       jni-libjvm.lo \
+       org-omg-CORBA.lo \
+       org-omg-CORBA_2_3.lo \
+       org-omg-CosNaming.lo \
+       org-omg-Dynamic.lo \
+       org-omg-DynamicAny.lo \
+       org-omg-IOP.lo \
+       org-omg-Messaging.lo \
+       org-omg-PortableInterceptor.lo \
+       org-omg-PortableServer.lo \
+       org-omg-SendingContext.lo \
+       org-omg-stub.lo \
+       org-relaxng.lo \
+       org-xml.lo \
+       META-INF/services/java.util.prefs.PreferencesFactory.in.lo \
+       META-INF/services/java.util.prefs.PreferencesFactory.lo \
+       META-INF/services/javax.sound.midi.spi.MidiDeviceProvider.lo \
+       META-INF/services/javax.sound.midi.spi.MidiFileReader.lo \
+       META-INF/services/javax.sound.midi.spi.MidiFileWriter.lo \
+       META-INF/services/javax.sound.sampled.spi.AudioFileReader.lo \
+       classpath/native/jni/classpath/jcl.lo \
+       classpath/native/jni/classpath/jnilink.lo \
+       classpath/native/jni/java-math/gnu_java_math_GMP.lo \
+       classpath/tools/libgcj_tools_la-tools.lo \
+       gnu/awt.lo \
+       gnu/awt/j2d.lo \
+       gnu/gcj/io.lo \
+       gnu/gcj/io/natSimpleSHSStream.lo \
+       gnu/gcj/io/shs.lo \
+       gnu/gcj/tools/gcj_dbtool.lo \
+       gnu/gcj/util/natDebug.lo \
+       gnu/gcj/util/natGCInfo.lo \
+       gnu/java/awt/dnd.lo \
+       gnu/java/awt/font.lo \
+       gnu/java/awt/image.lo \
+       gnu/java/awt/print.lo \
+       gnu/java/awt/font/autofit.lo \
+       gnu/java/awt/font/opentype.lo \
+       gnu/java/awt/font/opentype/truetype.lo \
+       gnu/java/lang/management/natVMClassLoadingMXBeanImpl.lo \
+       gnu/java/lang/management/natVMCompilationMXBeanImpl.lo \
+       gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.lo \
+       gnu/java/lang/management/natVMMemoryMXBeanImpl.lo \
+       gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.lo \
+       gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.lo \
+       gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.lo \
+       gnu/java/lang/management/natVMRuntimeMXBeanImpl.lo \
+       gnu/java/lang/management/natVMThreadMXBeanImpl.lo \
+       gnu/java/net/local.lo \
+       gnu/java/net/protocol/ftp.lo \
+       gnu/java/net/protocol/gcjlib.lo \
+       gnu/java/net/protocol/https.lo \
+       gnu/javax/imageio.lo \
+       gnu/javax/print.lo \
+       gnu/javax/sound.lo \
+       gnu/javax/activation/viewers.lo \
+       gnu/javax/imageio/bmp.lo \
+       gnu/javax/imageio/gif.lo \
+       gnu/javax/imageio/jpeg.lo \
+       gnu/javax/imageio/png.lo \
+       gnu/javax/naming/giop.lo \
+       gnu/javax/naming/ictxImpl/trans.lo \
+       gnu/javax/naming/jndi/url/corbaname.lo \
+       gnu/javax/naming/jndi/url/rmi.lo \
+       gnu/javax/print/ipp.lo \
+       gnu/javax/print/ipp/attribute.lo \
+       gnu/javax/print/ipp/attribute/defaults.lo \
+       gnu/javax/print/ipp/attribute/job.lo \
+       gnu/javax/print/ipp/attribute/printer.lo \
+       gnu/javax/print/ipp/attribute/supported.lo \
+       gnu/javax/security/auth/login.lo \
+       gnu/javax/sound/sampled/AU.lo \
+       gnu/javax/sound/sampled/WAV.lo \
+       gnu/javax/swing/plaf/gnu.lo \
+       gnu/javax/swing/plaf/metal.lo \
+       java/sql.lo \
+       java/awt/im.lo \
+       java/awt/print.lo \
+       java/awt/im/spi.lo \
+       java/security/acl.lo \
+       javax/activation.lo \
+       javax/activity.lo \
+       javax/management.lo \
+       javax/naming.lo \
+       javax/print.lo \
+       javax/sql.lo \
+       javax/tools.lo \
+       javax/transaction.lo \
+       javax/management/loading.lo \
+       javax/management/openmbean.lo \
+       javax/management/remote.lo \
+       javax/management/remote/rmi.lo \
+       javax/naming/directory.lo \
+       javax/naming/event.lo \
+       javax/naming/ldap.lo \
+       javax/naming/spi.lo \
+       javax/print/attribute.lo \
+       javax/print/event.lo \
+       javax/print/attribute/standard.lo \
+       javax/security/cert.lo \
+       javax/security/auth/kerberos.lo \
+       javax/security/auth/login.lo \
+       javax/security/auth/spi.lo \
+       javax/sound/midi.lo \
+       javax/sound/midi/spi.lo \
+       javax/swing/plaf/multi.lo \
+       javax/swing/plaf/synth.lo \
+       javax/swing/text/rtf.lo \
+       javax/swing/text/html/default.css.lo \
+       javax/transaction/xa.lo \
+       org/ietf/jgss.lo \
+       sun/awt.lo
+
+ALL_PACKAGE_SOURCE_FILES_LO = $(all_packages_source_files:.list=.lo) $(propertyo_files) $(bc_objects)
+NONCORE_PACKAGE_SOURCE_FILES_LO = $(filter $(LOWER_PACKAGE_FILES_LO),$(ALL_PACKAGE_SOURCE_FILES_LO))
+CORE_PACKAGE_SOURCE_FILES_LO = $(filter-out $(LOWER_PACKAGE_FILES_LO),$(ALL_PACKAGE_SOURCE_FILES_LO))
+@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LIBADD_SUBOBJECTS = $(NONCORE_PACKAGE_SOURCE_FILES_LO)
+# If not building sublibraries, everything goes in libgcj,
+# and it cannot be usefully built shared on PE platforms.
+@BUILD_SUBLIBS_FALSE@libgcj_la_LIBADD_SUBOBJECTS = $(ALL_PACKAGE_SOURCE_FILES_LO)
+@BUILD_SUBLIBS_TRUE@libgcj_la_LIBADD_SUBOBJECTS = $(CORE_PACKAGE_SOURCE_FILES_LO)
+@BUILD_SUBLIBS_FALSE@libgcj_la_LDFLAGS_NOUNDEF = 
+@BUILD_SUBLIBS_TRUE@libgcj_la_LDFLAGS_NOUNDEF = -no-undefined -bindir $(bindir)
 dbexec_LTLIBRARIES = libjvm.la
 pkgconfigdir = $(libdir)/pkgconfig
 jardir = $(datadir)/java
 jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar \
-       $(am__append_4)
+       $(am__append_5)
 @JAVA_HOME_SET_FALSE@JAVA_HOME_DIR = $(prefix)
 @JAVA_HOME_SET_TRUE@JAVA_HOME_DIR = $(JAVA_HOME)
 @JAVA_HOME_SET_FALSE@BOOT_CLASS_PATH_DIR = $(jardir)/libgcj-$(gcc_version).jar
@@ -899,10 +1062,10 @@ db_pathtail = $(gcjsubdir)/$(db_name)
 @NATIVE_TRUE@bin_programs = jv-convert gij grmic grmiregistry \
 @NATIVE_TRUE@  gcj-dbtool gappletviewer gjarsigner gkeytool gjar \
 @NATIVE_TRUE@  gcjh gjavah gnative2ascii gorbd grmid gserialver \
-@NATIVE_TRUE@  gtnameserv gc-analyze $(am__append_5)
+@NATIVE_TRUE@  gtnameserv gc-analyze $(am__append_6)
 @NATIVE_TRUE@dbexec_DATA = $(db_name)
 bin_SCRIPTS = contrib/rebuild-gcj-db contrib/aot-compile \
-       $(am__append_7)
+       $(am__append_8)
 GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
 LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
 GCJLINK = $(LIBTOOL) --tag=GCJ $(LIBTOOLFLAGS) --mode=link $(GCJ) -L$(here) \
@@ -944,7 +1107,7 @@ AM_GCJFLAGS = \
        --encoding=UTF-8 \
        -Wno-deprecated -fbootstrap-classes
 
-AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_9)
+AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_10)
 @SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes
 @SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS = 
 @BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE@LIBGCJ_REDUCED_REFLECTION_FLAGS = 
@@ -962,9 +1125,9 @@ AM_CPPFLAGS = -I$(top_srcdir) \
 
 BOOTCLASSPATH = $(srcdir)/classpath/lib
 libgij_la_SOURCES = gij.cc
-libgij_la_DEPENDENCIES = libgcj.la libgcj.spec
+libgij_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_11)
 libgij_la_LIBADD = -L$(here)/.libs libgcj.la
-libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
+libgij_la_LDFLAGS = -rpath $(toolexeclibdir) -no-undefined -bindir $(bindir) \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 
 libgij_la_LINK = $(CXXLINK) $(libgij_la_LDFLAGS)
@@ -972,16 +1135,16 @@ libgij_la_LINK = $(CXXLINK) $(libgij_la_LDFLAGS)
 @INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc
 libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \
        defineclass.cc verify.cc $(libgcj_interpret_source_files) \
-       $(nat_source_files) $(am__append_10) $(am__append_11) \
-       $(am__append_12) $(am__append_13) $(am__append_14) \
-       $(am__append_15) $(am__append_16) $(am__append_17)
+       $(nat_source_files) $(am__append_12) $(am__append_13) \
+       $(am__append_14) $(am__append_15) $(am__append_16) \
+       $(am__append_17) $(am__append_18) $(am__append_19)
 nat_files = $(nat_source_files:.cc=.lo)
 xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
 
 # Include THREADLIBS here to ensure that the correct version of
 # certain linuxthread functions get linked:
 libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
-       $(LIBLTDL) $(SYS_ZLIBS) \
+       $(LIBLTDL) $(SYS_ZLIBS) $(libgcj_la_LDFLAGS_NOUNDEF) \
        -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
        $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
 
@@ -990,17 +1153,25 @@ libgcj_la_LIBADD = \
        java/lang/Object.lo \
        java/lang/Class.lo \
        java/process-$(PLATFORM).lo \
-       $(all_packages_source_files:.list=.lo) \
-       $(bc_objects) \
-       $(propertyo_files) \
+       $(libgcj_la_LIBADD_SUBOBJECTS) \
        $(LIBFFI) $(ZLIBS) $(GCLIBS)
 
 libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar java/lang/Object.lo \
        java/lang/Class.lo java/process-$(PLATFORM).lo \
-       $(all_packages_source_files:.list=.lo) $(LIBLTDL) \
-       $(libgcj_la_LIBADD) $(am__append_18)
+       $(ALL_PACKAGE_SOURCE_FILES_LO) $(LIBLTDL) $(libgcj_la_LIBADD) \
+       $(am__append_20)
 libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS)
 EXTRA_libgcj_la_SOURCES = java/lang/Object.java
+@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_DEPENDENCIES =  \
+@BUILD_SUBLIBS_TRUE@   libgcj-$(gcc_version).jar $(LIBLTDL) \
+@BUILD_SUBLIBS_TRUE@   $(libgcj_noncore_la_LIBADD) libgcj.la \
+@BUILD_SUBLIBS_TRUE@   $(am__append_21)
+@BUILD_SUBLIBS_TRUE@libgcj_noncore_la_LINK = $(libgcj_la_LINK)
 
 # We compile libgcj_tools with -findirect-dispatch so that they can
 # depend on external classes: in particular, gjdoc uses antlr.  In
@@ -1014,21 +1185,22 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
 
 libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
- $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) -no-undefined -bindir $(bindir)
 
-libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
+libgcj_tools_la_LIBADD = libgcj.la
+libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_22)
 libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS)
 libjvm_la_SOURCES = jni-libjvm.cc
-libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec
+libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_23)
 libjvm_la_LIBADD = -L$(here)/.libs libgcj.la
-libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC)
+libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC) \
+ -no-undefined -bindir $(bindir)
+
 libjvm_la_LINK = $(CXXLINK) $(libjvm_la_LDFLAGS)
 lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files)
 lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo
-lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
-       libgcj.la libgcj.spec \
-       $(lib_gnu_awt_xlib_la_LIBADD)
-
+lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar libgcj.la \
+       libgcj.spec $(lib_gnu_awt_xlib_la_LIBADD) $(am__append_24)
 lib_gnu_awt_xlib_la_CPPFLAGS = \
        $(AM_CPPFLAGS) \
        -I../libstdc++-v3/include \
@@ -1037,13 +1209,13 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
 
 lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
        @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-        -rpath $(toolexeclibdir) \
+        -rpath $(toolexeclibdir) -no-undefined -bindir $(bindir) \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 
 lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS)
 libgcj_bc_la_SOURCES = libgcj_bc.c
 libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \
-       $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+       $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) -no-undefined -bindir $(bindir)
 
 libgcj_bc_la_DEPENDENCIES = libgcj.la
 libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS)
@@ -8306,7 +8478,7 @@ jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
 
 jv_convert_LINK = $(GCJLINK) $(jv_convert_LDFLAGS)
 jv_convert_LDADD = -L$(here)/.libs libgcj.la
-jv_convert_DEPENDENCIES = libgcj.la libgcj.spec
+jv_convert_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_26)
 gcj_dbtool_SOURCES = \
 gnu/gcj/tools/gcj_dbtool/natMain.cc
 
@@ -8315,14 +8487,16 @@ gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \
 
 gcj_dbtool_LINK = $(GCJLINK) $(gcj_dbtool_LDFLAGS)
 gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la
-gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la libgcj.spec
+gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la \
+       libgcj.spec $(am__append_27)
 gc_analyze_SOURCES = 
 gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \
         -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
 
 gc_analyze_LINK = $(GCJLINK) $(gc_analyze_LDFLAGS)
 gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la
-gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec
+gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec \
+       $(am__append_28)
 gij_SOURCES = 
 gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
        -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) \
@@ -8342,10 +8516,10 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
 @NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
 @NATIVE_FALSE@ecjx_LDADD = 
 @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) \
-@NATIVE_TRUE@  $(am__append_21)
+@NATIVE_TRUE@  $(am__append_31)
 @NATIVE_FALSE@ecjx_DEPENDENCIES = 
 @NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \
-@NATIVE_TRUE@  $(am__append_20)
+@NATIVE_TRUE@  $(am__append_29) $(am__append_30)
 gappletviewer_SOURCES = 
 gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
        -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
@@ -8562,7 +8736,7 @@ gnu/gcj/xlib/natXImage.cc \
 gnu/gcj/xlib/natXUnmapEvent.cc
 
 sourcesdir = $(jardir)
-headers_to_make = $(nat_headers) $(am__append_22)
+headers_to_make = $(nat_headers) $(am__append_32)
 
 # Work around what appears to be a GNU make bug handling MAKEFLAGS
 # values defined in terms of make variables, as is the case for CC and
@@ -8803,6 +8977,8 @@ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXImage.lo:  \
 gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo:  \
        gnu/gcj/xlib/$(am__dirstamp) \
        gnu/gcj/xlib/$(DEPDIR)/$(am__dirstamp)
+libgcj-noncore.la: $(libgcj_noncore_la_OBJECTS) $(libgcj_noncore_la_DEPENDENCIES) 
+       $(libgcj_noncore_la_LINK) $(am_libgcj_noncore_la_rpath) $(libgcj_noncore_la_OBJECTS) $(libgcj_noncore_la_LIBADD) $(LIBS)
 classpath/tools/$(am__dirstamp):
        @$(MKDIR_P) classpath/tools
        @: > classpath/tools/$(am__dirstamp)
index a7c464a0bdba09332dce3f701020f23eb1396d47..5e92946deb9219aaf5f41986b929afc2a71a44d6 100755 (executable)
@@ -915,6 +915,8 @@ XLIB_AWT_FALSE
 XLIB_AWT_TRUE
 TOOLKIT
 LIBGCJDEBUG
+BUILD_SUBLIBS_FALSE
+BUILD_SUBLIBS_TRUE
 LIBGCJ_LD_SYMBOLIC_FUNCTIONS
 LIBGCJ_LD_SYMBOLIC
 LIBGCJ_JAVAFLAGS
@@ -1054,6 +1056,7 @@ enable_gjdoc
 enable_java_maintainer_mode
 enable_dependency_tracking
 enable_maintainer_mode
+enable_libgcj_sublibs
 enable_libgcj_debug
 with_escher
 enable_java_awt
@@ -1745,6 +1748,7 @@ Optional Features:
   --enable-dependency-tracking   do not reject slow dependency extractors
   --enable-maintainer-mode  enable make rules and dependencies not useful
                          (and sometimes confusing) to the casual installer
+  --enable-libgcj-sublibs build libgcj as many sub-libraries
   --enable-libgcj-debug   enable runtime debugging code
   --enable-java-awt       list of AWT peer implementations to be built
   --enable-shared[=PKGS]  build shared libraries [default=yes]
@@ -5935,6 +5939,7 @@ fi
 #      libgcj_cflags    - host specific C compiler flags
 #      libgcj_cxxflags  - host specific C++ compiler flags
 #      libgcj_javaflags - host specific Java compiler flags
+# and a number of others; see the list at the start of the file.
 
 libgcj_cflags=
 libgcj_cxxflags=
@@ -6536,6 +6541,35 @@ fi
 ac_config_headers="$ac_config_headers include/config.h gcj/libgcj-config.h"
 
 
+# Possibly build libgcj as many sub-libraries.
+# Check whether --enable-libgcj-sublibs was given.
+if test "${enable_libgcj_sublibs+set}" = set; then :
+  enableval=$enable_libgcj_sublibs;
+fi
+
+
+if test -z "$enable_libgcj_sublibs"; then
+   enable_libgcj_sublibs=$enable_libgcj_sublibs_default
+fi
+ if test "$enable_libgcj_sublibs" = yes; then
+  BUILD_SUBLIBS_TRUE=
+  BUILD_SUBLIBS_FALSE='#'
+else
+  BUILD_SUBLIBS_TRUE='#'
+  BUILD_SUBLIBS_FALSE=
+fi
+
+if test "$enable_libgcj_sublibs" = yes ; then
+  # In theory we could make do with only one override and simply
+  # tag "_bc" onto the end of it when we use it to generate the
+  # spec, but that's an ugly thing to do when there are multiple
+  # words in the string and you're relying on the ordering to
+  # append the correct one.
+  libgcj_spec_lgcj_override="-lgcj-noncore -lgcj"
+  libgcj_spec_lgcj_bc_override="-lgcj-noncore -lgcj_bc"
+fi
+
+
 # See if the user has requested runtime debugging.
 LIBGCJDEBUG="disable"
 
@@ -7464,13 +7498,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:7467: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:7501: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:7470: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:7504: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:7473: output\"" >&5)
+  (eval echo "\"\$as_me:7507: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -8665,7 +8699,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 8668 "configure"' > conftest.$ac_ext
+  echo '#line 8702 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -10599,11 +10633,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10602: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10636: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:10606: \$? = $ac_status" >&5
+   echo "$as_me:10640: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -10938,11 +10972,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10941: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10975: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:10945: \$? = $ac_status" >&5
+   echo "$as_me:10979: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -11043,11 +11077,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11046: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11080: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:11050: \$? = $ac_status" >&5
+   echo "$as_me:11084: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11098,11 +11132,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11101: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11135: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:11105: \$? = $ac_status" >&5
+   echo "$as_me:11139: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13507,7 +13541,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 13510 "configure"
+#line 13544 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13603,7 +13637,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 13606 "configure"
+#line 13640 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -15565,11 +15599,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15568: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15602: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15572: \$? = $ac_status" >&5
+   echo "$as_me:15606: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -15664,11 +15698,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15667: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15701: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15671: \$? = $ac_status" >&5
+   echo "$as_me:15705: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15716,11 +15750,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15719: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15753: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15723: \$? = $ac_status" >&5
+   echo "$as_me:15757: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17132,11 +17166,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17135: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17169: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17139: \$? = $ac_status" >&5
+   echo "$as_me:17173: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17465,11 +17499,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17468: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17502: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17472: \$? = $ac_status" >&5
+   echo "$as_me:17506: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17564,11 +17598,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17567: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17601: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17571: \$? = $ac_status" >&5
+   echo "$as_me:17605: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17616,11 +17650,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17619: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17653: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17623: \$? = $ac_status" >&5
+   echo "$as_me:17657: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -19218,7 +19252,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then :
   enableval=$enable_sjlj_exceptions; :
 else
   cat > conftest.$ac_ext << EOF
-#line 19221 "configure"
+#line 19255 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
@@ -20310,6 +20344,9 @@ arm*linux*eabi)
     LIBSTDCXXSPEC=-lstdc++
     LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
     ;;
+*-*-cygwin)
+    extra_ldflags_libjava=-liconv
+    ;;
 esac
 
 
@@ -20552,9 +20589,17 @@ ac_config_links="$ac_config_links sysdep/backtrace.h:$fallback_backtrace_h"
 ac_config_links="$ac_config_links sysdep/descriptor.h:$descriptor_h"
 
 
-LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
+LIBGCJ_SPEC_LGCJ=-lgcj
+LIBGCJ_SPEC_LGCJ_BC=-lgcj_bc
+if test x"$libgcj_spec_lgcj_override" != x ; then
+  LIBGCJ_SPEC_LGCJ=$libgcj_spec_lgcj_override
+fi
+if test x"$libgcj_spec_lgcj_bc_override" != x ; then
+  LIBGCJ_SPEC_LGCJ_BC=$libgcj_spec_lgcj_bc_override
+fi
+LIBGCJ_SPEC="%{s-bc-abi:} $LIBGCJ_SPEC_LGCJ"
 if test "$use_libgcj_bc" = yes; then
-  LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:-lgcj;:-lgcj_bc}"
+  LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:$LIBGCJ_SPEC_LGCJ;:$LIBGCJ_SPEC_LGCJ_BC}"
   LIBGCJ_BC_SPEC="%{findirect-dispatch:-fPIC}"
 fi
 
@@ -24607,6 +24652,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
   as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${BUILD_SUBLIBS_TRUE}" && test -z "${BUILD_SUBLIBS_FALSE}"; then
+  as_fn_error "conditional \"BUILD_SUBLIBS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${XLIB_AWT_TRUE}" && test -z "${XLIB_AWT_FALSE}"; then
   as_fn_error "conditional \"XLIB_AWT\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
index c6bcbf4d7e6b32d8c31b9ec348e4988317543985..c2418dc2bbae9f8382134af2b7453a577c0b3e44 100644 (file)
@@ -206,6 +206,7 @@ AC_EXEEXT
 #      libgcj_cflags    - host specific C compiler flags
 #      libgcj_cxxflags  - host specific C++ compiler flags
 #      libgcj_javaflags - host specific Java compiler flags
+# and a number of others; see the list at the start of the file.
 
 libgcj_cflags=
 libgcj_cxxflags=
@@ -237,6 +238,26 @@ fi
 
 AC_CONFIG_HEADERS([include/config.h gcj/libgcj-config.h])
 
+# Possibly build libgcj as many sub-libraries.
+AC_ARG_ENABLE(libgcj-sublibs,
+  AS_HELP_STRING([--enable-libgcj-sublibs],
+                 [build libgcj as many sub-libraries]))
+
+if test -z "$enable_libgcj_sublibs"; then
+   enable_libgcj_sublibs=$enable_libgcj_sublibs_default
+fi
+AM_CONDITIONAL(BUILD_SUBLIBS, test "$enable_libgcj_sublibs" = yes)
+if test "$enable_libgcj_sublibs" = yes ; then
+  # In theory we could make do with only one override and simply
+  # tag "_bc" onto the end of it when we use it to generate the
+  # spec, but that's an ugly thing to do when there are multiple
+  # words in the string and you're relying on the ordering to
+  # append the correct one.
+  libgcj_spec_lgcj_override="-lgcj-noncore -lgcj"
+  libgcj_spec_lgcj_bc_override="-lgcj-noncore -lgcj_bc"
+fi
+
+
 # See if the user has requested runtime debugging.
 LIBGCJDEBUG="disable"
 AC_SUBST(LIBGCJDEBUG)
@@ -897,6 +918,9 @@ arm*linux*eabi)
     LIBSTDCXXSPEC=-lstdc++
     LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
     ;;
+*-*-cygwin)
+    extra_ldflags_libjava=-liconv
+    ;;
 esac
 AC_SUBST(extra_ldflags_libjava)
 AC_SUBST(extra_gij_ldflags)
@@ -1075,9 +1099,17 @@ AC_CONFIG_LINKS(sysdep/locks.h:sysdep/$sysdeps_dir/locks.h)
 AC_CONFIG_LINKS(sysdep/backtrace.h:$fallback_backtrace_h)
 AC_CONFIG_LINKS(sysdep/descriptor.h:$descriptor_h)
 
-LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
+LIBGCJ_SPEC_LGCJ=-lgcj
+LIBGCJ_SPEC_LGCJ_BC=-lgcj_bc
+if test x"$libgcj_spec_lgcj_override" != x ; then
+  LIBGCJ_SPEC_LGCJ=$libgcj_spec_lgcj_override
+fi
+if test x"$libgcj_spec_lgcj_bc_override" != x ; then
+  LIBGCJ_SPEC_LGCJ_BC=$libgcj_spec_lgcj_bc_override
+fi
+LIBGCJ_SPEC="%{s-bc-abi:} $LIBGCJ_SPEC_LGCJ"
 if test "$use_libgcj_bc" = yes; then
-  LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:-lgcj;:-lgcj_bc}"
+  LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:$LIBGCJ_SPEC_LGCJ;:$LIBGCJ_SPEC_LGCJ_BC}"
   LIBGCJ_BC_SPEC="%{findirect-dispatch:-fPIC}"
 fi
 AC_SUBST(LIBGCJ_SPEC)
index 1d1b7085e11879e0505169d78c74aa7a98d19d5d..2955571b27643b946357f5e1b091a47d070eacf3 100644 (file)
@@ -23,6 +23,9 @@
 #                            default.
 #   enable_hash_synchronization_default  If hash synchronization should be
 #                                        enabled by default.
+#   enable_libgcj_sublibs_default  Whether to build libgcj as a bunch of
+#                                  separate shared libraries or in one 
+#                                  monolithic one.
 #   sysdeps_dir                Directory containing system-dependent headers
 #   slow_pthread_self   The synchronization code should try to avoid 
 #                      pthread_self calls by caching thread IDs in a hashtable
@@ -41,6 +44,7 @@ libgcj_javaflags=
 libgcj_interpreter=
 enable_java_net_default=yes
 enable_hash_synchronization_default=no
+enable_libgcj_sublibs_default=no
 sysdeps_dir=generic
 slow_pthread_self=
 can_unwind_signal=no
@@ -341,6 +345,8 @@ case "${host}" in
        fallback_backtrace_h=sysdep/i386/backtrace.h  
        # We need a frame pointer on Windows, so override BACKTRACESPEC
        BACKTRACESPEC=
+       # Win32 DLLs are limited to 64k exported symbols each.
+       enable_libgcj_sublibs_default=yes
   ;;
 esac
 
index d52d7327bd86ec29cfe5aca51b3dabe4bceac82f..a2b5499d37deccea0a42deede1076cb4a262ac5d 100644 (file)
@@ -1,3 +1,10 @@
+2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * ltdl.h (LT_SCOPE): Change conditional to avoid breaking
+       auto-export during libgcj DLL linking.
+       * Makefile.am (libltdl_la_LDFLAGS): Remove -bindir switch.
+       * Makefile.in: Regenerate.
+
 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * configure.ac (AC_PREREQ): Bump to 2.64.  Remove FIXME.
index 8a2af102e4ba8d40e1051a16800b77fcec3982bb..737290e6c7cea0a7ac11f250fd400e94c31bf872 100644 (file)
@@ -22,7 +22,7 @@ endif
 CLEANFILES = libltdl.la libltdlc.la
 
 libltdl_la_SOURCES = ltdl.c
-libltdl_la_LDFLAGS = -no-undefined -bindir "$(bindir)" -version-info 4:1:1
+libltdl_la_LDFLAGS = -no-undefined -version-info 4:1:1
 libltdl_la_LIBADD = $(LIBADD_DL)
 
 libltdlc_la_SOURCES = ltdl.c
index e3212433a3717148dc38b472ee8f8de0af1334eb..46e139ef7f1b0c0db392efaf9682267ff7fb3f89 100644 (file)
@@ -249,7 +249,7 @@ INCLUDES = $(GCINCS)
 @CONVENIENCE_LTDL_TRUE@noinst_LTLIBRARIES = libltdlc.la
 CLEANFILES = libltdl.la libltdlc.la
 libltdl_la_SOURCES = ltdl.c
-libltdl_la_LDFLAGS = -no-undefined -bindir "$(bindir)" -version-info 4:1:1
+libltdl_la_LDFLAGS = -no-undefined -version-info 4:1:1
 libltdl_la_LIBADD = $(LIBADD_DL)
 libltdlc_la_SOURCES = ltdl.c
 libltdlc_la_LIBADD = $(LIBADD_DL)
index 8aaf3429ad42da3e1d3c0e97100583b3ea8848a8..c31c579d49de98a97077315f2ee7a50cf614c4c8 100644 (file)
@@ -128,7 +128,7 @@ LT_BEGIN_C_DECLS
    ridiculous implementation of data symbol exporting. */
 #ifndef LT_SCOPE
 #  ifdef __WINDOWS__
-#    ifdef DLL_EXPORT          /* defined by libtool (if required) */
+#    ifdef LIBLTDL_DLL_EXPORT  /* don't define or ld disables auto-export. */
 #      define LT_SCOPE __declspec(dllexport)
 #    endif
 #    ifdef LIBLTDL_DLL_IMPORT  /* define if linking with this dll */
index 63b3274613789c035739d7d896e945ffb7860a7d..ee793b22a0f402adc7f740cc26a5bae1225e34cc 100644 (file)
@@ -13,7 +13,14 @@ details.  */
 
 #include <java-stack.h>
 
-extern int main (int, char **);
+#ifdef __CYGWIN__
+/* To allow this to link as a DLL.  */
+#define MAIN_FUNC dll_crt0__FP11per_process
+extern "C" int MAIN_FUNC () __declspec(dllimport);
+#else /* !__CYGWIN__ */
+#define MAIN_FUNC main
+extern int MAIN_FUNC (int, char **);
+#endif /* ?__CYGWIN__ */
 
 /* The context used to keep track of our position while unwinding through
    the call stack.  */
@@ -104,7 +111,7 @@ fallback_backtrace (_Unwind_Trace_Fn trace_fn, _Jv_UnwindState *state)
                             const char **, bool))_Jv_RunMain;
       if (ctx.meth_addr == (_Jv_uintptr_t)jv_runmain
           || ctx.meth_addr == (_Jv_uintptr_t)_Jv_ThreadStart
-          || (ctx.meth_addr - (_Jv_uintptr_t)main) < 16)
+          || (ctx.meth_addr - (_Jv_uintptr_t)MAIN_FUNC) < 16)
         break;
     }