summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog69
-rw-r--r--libjava/Makefile.am221
-rw-r--r--libjava/Makefile.in323
-rwxr-xr-xlibjava/configure117
-rw-r--r--libjava/configure.ac41
-rw-r--r--libjava/configure.host9
-rw-r--r--libjava/gcj/Makefile.in1
-rw-r--r--libjava/include/Makefile.in1
-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
-rw-r--r--libjava/testsuite/Makefile.in1
14 files changed, 686 insertions, 121 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index b58bc9966bb..78aaa3e473a 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,72 @@
+2009-09-30 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * configure.host (libgcj_sublib_ltflags): New variable.
+ * configure.ac (LIBGCJ_SUBLIB_LTFLAGS): AC_SUBST variable for
+ the above in makefiles.
+ * configure: Regenerate.
+
+ * Makefile.am (libgcj_la_LDFLAGS_NOUNDEF): Rename from this ...
+ (LIBJAVA_LDFLAGS_NOUNDEF): ... to this, initialise from
+ LIBGCJ_SUBLIB_LTFLAGS (only when building sublibs), and ...
+ (libgij_la_LDFLAGS, libgcj_tools_la_LDFLAGS, libjvm_la_LDFLAGS,
+ lib_gnu_awt_xlib_la_LDFLAGS, libgcj_bc_la_LDFLAGS): ... use it in
+ all these places to replace hard-coded -no-undefined and -bindir
+ flags, as well as ...
+ (libgcj_la_LDFLAGS): ... updating existing reference here.
+ * Makefile.in: Regenerate.
+ * include/Makefile.in: Likewise.
+ * testsuite/Makefile.in: Likewise.
+ * gcj/Makefile.in: Likewise.
+
+2009-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR libgcj/38298
+ * Makefile.am (libgcj_tools_la_LIBADD): Add '-lm'.
+ * Makefile.in: Regenerate.
+
+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 7b6750c493c..3c0423e64f8 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)
+LIBJAVA_LDFLAGS_NOUNDEF = $(LIBGCJ_SUBLIB_LTFLAGS)
+else
+# If not building sublibraries, everything goes in libgcj,
+# and it cannot be usefully built shared on PE platforms.
+libgcj_la_LIBADD_SUBOBJECTS = $(ALL_PACKAGE_SOURCE_FILES_LO)
+LIBJAVA_LDFLAGS_NOUNDEF =
+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) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-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) $(LIBJAVA_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) $(LIBJAVA_LDFLAGS_NOUNDEF)
+libgcj_tools_la_LIBADD = libgcj.la -lm
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) \
+ $(LIBJAVA_LDFLAGS_NOUNDEF)
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) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-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) $(LIBJAVA_LDFLAGS_NOUNDEF)
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 349b9074d34..ca822dc9033 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) \
@@ -709,6 +727,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@
@@ -802,7 +821,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 +902,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@LIBJAVA_LDFLAGS_NOUNDEF =
+@BUILD_SUBLIBS_TRUE@LIBJAVA_LDFLAGS_NOUNDEF = $(LIBGCJ_SUBLIB_LTFLAGS)
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 +1063,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 +1108,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 +1126,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) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
libgij_la_LINK = $(CXXLINK) $(libgij_la_LDFLAGS)
@@ -972,16 +1136,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) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
@@ -990,17 +1154,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 +1186,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) $(LIBJAVA_LDFLAGS_NOUNDEF)
-libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
+libgcj_tools_la_LIBADD = libgcj.la -lm
+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) \
+ $(LIBJAVA_LDFLAGS_NOUNDEF)
+
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 +1210,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) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-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) $(LIBJAVA_LDFLAGS_NOUNDEF)
libgcj_bc_la_DEPENDENCIES = libgcj.la
libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS)
@@ -8306,7 +8479,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 +8488,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 +8517,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 +8737,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 +8978,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 a7c464a0bdb..95d21af1e5f 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -915,8 +915,11 @@ XLIB_AWT_FALSE
XLIB_AWT_TRUE
TOOLKIT
LIBGCJDEBUG
+BUILD_SUBLIBS_FALSE
+BUILD_SUBLIBS_TRUE
LIBGCJ_LD_SYMBOLIC_FUNCTIONS
LIBGCJ_LD_SYMBOLIC
+LIBGCJ_SUBLIB_LTFLAGS
LIBGCJ_JAVAFLAGS
LIBGCJ_CXXFLAGS
LIBGCJ_CFLAGS
@@ -1054,6 +1057,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 +1749,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,10 +5940,14 @@ fi
# libgcj_cflags - host specific C compiler flags
# libgcj_cxxflags - host specific C++ compiler flags
# libgcj_javaflags - host specific Java compiler flags
+# libgcj_sublib_ltflags - host specific Libtool flags
+# (only used when building sublibs)
+# and a number of others; see the list at the start of the file.
libgcj_cflags=
libgcj_cxxflags=
libgcj_javaflags=
+libgcj_sublib_ltflags=
. ${srcdir}/configure.host
@@ -5988,6 +5997,7 @@ fi
LIBGCJ_CFLAGS="${libgcj_cflags}"
LIBGCJ_CXXFLAGS="${libgcj_cxxflags}"
LIBGCJ_JAVAFLAGS="${libgcj_javaflags}"
+LIBGCJ_SUBLIB_LTFLAGS="${libgcj_sublib_ltflags}"
LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}"
LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}"
@@ -5996,6 +6006,7 @@ LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}"
+
# Only use libltdl for non-newlib builds.
if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
@@ -6536,6 +6547,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 +7504,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:7507: $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:7510: $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:7513: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -8665,7 +8705,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 8668 "configure"' > conftest.$ac_ext
+ echo '#line 8708 "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -10599,11 +10639,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:10642: $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:10646: \$? = $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 +10978,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:10981: $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:10985: \$? = $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 +11083,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:11086: $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:11090: \$? = $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 +11138,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:11141: $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:11145: \$? = $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 +13547,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 13550 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13603,7 +13643,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 13646 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15565,11 +15605,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:15608: $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:15612: \$? = $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 +15704,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:15707: $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:15711: \$? = $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 +15756,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:15759: $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:15763: \$? = $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 +17172,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:17175: $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:17179: \$? = $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 +17505,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:17508: $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:17512: \$? = $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 +17604,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:17607: $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:17611: \$? = $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 +17656,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:17659: $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:17663: \$? = $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 +19258,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then :
enableval=$enable_sjlj_exceptions; :
else
cat > conftest.$ac_ext << EOF
-#line 19221 "configure"
+#line 19261 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -20310,6 +20350,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 +20595,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 +24658,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 c6bcbf4d7e6..bfd33fd5154 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -206,10 +206,14 @@ AC_EXEEXT
# libgcj_cflags - host specific C compiler flags
# libgcj_cxxflags - host specific C++ compiler flags
# libgcj_javaflags - host specific Java compiler flags
+# libgcj_sublib_ltflags - host specific Libtool flags
+# (only used when building sublibs)
+# and a number of others; see the list at the start of the file.
libgcj_cflags=
libgcj_cxxflags=
libgcj_javaflags=
+libgcj_sublib_ltflags=
. ${srcdir}/configure.host
@@ -222,11 +226,13 @@ fi
LIBGCJ_CFLAGS="${libgcj_cflags}"
LIBGCJ_CXXFLAGS="${libgcj_cxxflags}"
LIBGCJ_JAVAFLAGS="${libgcj_javaflags}"
+LIBGCJ_SUBLIB_LTFLAGS="${libgcj_sublib_ltflags}"
LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}"
LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}"
AC_SUBST(LIBGCJ_CFLAGS)
AC_SUBST(LIBGCJ_CXXFLAGS)
AC_SUBST(LIBGCJ_JAVAFLAGS)
+AC_SUBST(LIBGCJ_SUBLIB_LTFLAGS)
AC_SUBST(LIBGCJ_LD_SYMBOLIC)
AC_SUBST(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
@@ -237,6 +243,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 +923,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 +1104,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 1d1b7085e11..a325bf1fb17 100644
--- a/libjava/configure.host
+++ b/libjava/configure.host
@@ -18,11 +18,15 @@
# libgcj_cflags Special CFLAGS to use when building
# libgcj_cxxflags Special CXXFLAGS to use when building
# libgcj_javaflags Special JAVAFLAGS to use when building
+# libgcj_sublib_ltflags Special Libtool flags to use when building.
# libgcj_interpreter If the bytecode interpreter supports this platform.
# enable_java_net_default If java.net native code should be enabled by
# 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
@@ -38,9 +42,11 @@ libgcj_flags=
libgcj_cflags=
libgcj_cxxflags=
libgcj_javaflags=
+libgcj_sublib_ltflags=
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 +347,9 @@ 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
+ libgcj_sublib_ltflags='-no-undefined -bindir $(bindir)'
;;
esac
diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
index 370499cbb65..5752d72c996 100644
--- a/libjava/gcj/Makefile.in
+++ b/libjava/gcj/Makefile.in
@@ -191,6 +191,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index 7fd08b8b5cd..3be44469915 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -191,6 +191,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@
diff --git a/libjava/libltdl/ChangeLog b/libjava/libltdl/ChangeLog
index d52d7327bd8..a2b5499d37d 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 8a2af102e4b..737290e6c7c 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 e3212433a37..46e139ef7f1 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 8aaf3429ad4..c31c579d49d 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 63b32746137..ee793b22a0f 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;
}
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index d96e38300ca..e229db5001c 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -166,6 +166,7 @@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@