aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Korn <dave.korn.cygwin@gmail.com>2009-09-22 18:58:13 +0000
committerDave Korn <davek@gcc.gnu.org>2009-09-22 18:58:13 +0000
commit6a92b6c7aae7311777f8faafbc52a71104a78a68 (patch)
tree89fb7aceeab12051629b5e047d3df2ddf3ab2894
parent502a1e45907d04b3feeec2b3e5e5b80a10e9350f (diff)
downloadgcc-6a92b6c7aae7311777f8faafbc52a71104a78a68.zip
gcc-6a92b6c7aae7311777f8faafbc52a71104a78a68.tar.gz
gcc-6a92b6c7aae7311777f8faafbc52a71104a78a68.tar.bz2
cygming.h (TARGET_USE_JCR_SECTION): Enable.
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/cygming.h2
-rw-r--r--gcc/config/i386/cygwin.h4
-rw-r--r--gcc/config/i386/mingw32.h4
-rw-r--r--libjava/ChangeLog43
-rw-r--r--libjava/Makefile.am221
-rw-r--r--libjava/Makefile.in322
-rwxr-xr-xlibjava/configure111
-rw-r--r--libjava/configure.ac36
-rw-r--r--libjava/configure.host6
-rw-r--r--libjava/libltdl/ChangeLog7
-rw-r--r--libjava/libltdl/Makefile.am2
-rw-r--r--libjava/libltdl/Makefile.in2
-rw-r--r--libjava/libltdl/ltdl.h2
-rw-r--r--libjava/sysdep/i386/backtrace.h11
15 files changed, 657 insertions, 122 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2565cb9..2da2d44 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index 5fc0c1d..43003cc 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -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. */
diff --git a/gcc/config/i386/cygwin.h b/gcc/config/i386/cygwin.h
index d1d00f7..9332637 100644
--- a/gcc/config/i386/cygwin.h
+++ b/gcc/config/i386/cygwin.h
@@ -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"
+
diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
index e856ecd..9dcc5ba 100644
--- a/gcc/config/i386/mingw32.h
+++ b/gcc/config/i386/mingw32.h
@@ -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"
+
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index b58bc99..e8ad3b3 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 7b6750c..e923fa3 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -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
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index 349b907..83c4c60 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -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)
diff --git a/libjava/configure b/libjava/configure
index a7c464a..5e92946 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -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
diff --git a/libjava/configure.ac b/libjava/configure.ac
index c6bcbf4..c2418dc 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -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)
diff --git a/libjava/configure.host b/libjava/configure.host
index 1d1b708..2955571 100644
--- a/libjava/configure.host
+++ b/libjava/configure.host
@@ -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
diff --git a/libjava/libltdl/ChangeLog b/libjava/libltdl/ChangeLog
index d52d732..a2b5499 100644
--- a/libjava/libltdl/ChangeLog
+++ b/libjava/libltdl/ChangeLog
@@ -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.
diff --git a/libjava/libltdl/Makefile.am b/libjava/libltdl/Makefile.am
index 8a2af10..737290e 100644
--- a/libjava/libltdl/Makefile.am
+++ b/libjava/libltdl/Makefile.am
@@ -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
diff --git a/libjava/libltdl/Makefile.in b/libjava/libltdl/Makefile.in
index e321243..46e139e 100644
--- a/libjava/libltdl/Makefile.in
+++ b/libjava/libltdl/Makefile.in
@@ -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)
diff --git a/libjava/libltdl/ltdl.h b/libjava/libltdl/ltdl.h
index 8aaf342..c31c579 100644
--- a/libjava/libltdl/ltdl.h
+++ b/libjava/libltdl/ltdl.h
@@ -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 */
diff --git a/libjava/sysdep/i386/backtrace.h b/libjava/sysdep/i386/backtrace.h
index 63b3274..ee793b2 100644
--- a/libjava/sysdep/i386/backtrace.h
+++ b/libjava/sysdep/i386/backtrace.h
@@ -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;
}