public inbox for java@gcc.gnu.org
 help / color / mirror / Atom feed
From: Dave Korn <dave.korn.cygwin@googlemail.com>
To: Andrew Haley <aph@redhat.com>
Cc: Dave Korn <dave.korn.cygwin@googlemail.com>,
	  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>,
	 java@gcc.gnu.org, gcc@gcc.gnu.org
Subject: Re: [JAVA,libtool]  Big libjava is biiiig.
Date: Wed, 13 May 2009 12:38:00 -0000	[thread overview]
Message-ID: <4A0AC200.9020003@gmail.com> (raw)
In-Reply-To: <4A085FB6.7060002@redhat.com>

Andrew Haley wrote:

> Did you try my list of things to lift out?  I don't think there will be any
> interdependencies; the only problem might be that the reduction is not enough.

    Hi Andrew,

  I've had a quick hack at it now, and it's not doing what I'd hoped, so
possibly I've misunderstood what you intended, or am not grokking the
structure of java packages correctly.

  If I got the essence of your list right, you were indicating all the
packages that collectively amount to $(bc_objects) in the libjava makefile, yes?

  I tried adding libtool definitions to build a libjava-core which should if
I've got it right be exactly the same as libjava, but exclude the
$(bc_objects), and a libjava-noncore that only links in the $(bc_objects).  So
I've got these definitions in Makefile.am, immediately after all the
corresponding default libgcj_la_XXXX definitions:

-----------------------------<snip>-----------------------------
if BUILD_SUBLIBS
toolexeclib_LTLIBRARIES += libgcj-core.la libgcj-noncore.la
endif
-----------------------------<snip>
if BUILD_SUBLIBS
libgcj_core_la_SOURCES = $(libgcj_la_SOURCES)
libgcj_noncore_la_SOURCES =
endif
-----------------------------<snip>
if BUILD_SUBLIBS
libgcj_core_la_LDFLAGS = $(libgcj_la_LDFLAGS)
libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS)
endif
-----------------------------<snip>
if BUILD_SUBLIBS
libgcj_core_la_LIBADD = \
	classpath/native/fdlibm/libfdlibm.la \
	java/lang/Object.lo \
	java/lang/Class.lo \
	java/process-$(PLATFORM).lo \
	$(all_packages_source_files:.list=.lo) \
--> note $(bc_objects) missing here as compared to libgcj_la_LIBADD.
	$(propertyo_files) \
	$(LIBFFI) $(ZLIBS) $(GCLIBS)
libgcj_noncore_la_LIBADD = $(bc_objects)
endif
-----------------------------<snip>
if BUILD_SUBLIBS
libgcj_core_la_DEPENDENCIES = $(libgcj_la_DEPENDENCIES)
libgcj_noncore_la_DEPENDENCIES = $(libgcj_la_DEPENDENCIES) libgcj-core.la
endif
-----------------------------<snip>
if BUILD_SUBLIBS
libgcj_core_la_DEPENDENCIES += $(srcdir)/libgcj.ver
libgcj_noncore_la_DEPENDENCIES += $(srcdir)/libgcj.ver
endif
-----------------------------<snip>
if BUILD_SUBLIBS
libgcj_core_la_LINK = $(libgcj_la_LINK)
libgcj_noncore_la_LINK = $(libgcj_la_LINK)
endif
-----------------------------<snip>-----------------------------

... where BUILD_SUBLIBS is my new AM_CONDITIONAL flag enabled by
--enable-libgcj-sublibs.

  However, the new libjava-core doesn't link, and appears to contain many
dependencies on the $(bc_objects) files, for e.g. fundamental language features:

gnu/java/awt/.libs/java2d.o:/gnu/gcc/gcc/libjava/classpath/gnu/java/awt/java2d/PolyEdge.java:135:
undefined reference to `int gnu::java::math::Fixed::div(int, int, int)'
gnu/java/awt/.libs/java2d.o:/gnu/gcc/gcc/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java:419:
undefined reference to `int gnu::java::math::Fixed::div(int, int, int)'

... and even entire complex packages:

java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:689:
undefined reference to `org::w3c::dom::bootstrap::DOMImplementationRegistry*
org::w3c::dom::bootstrap::DOMImplementationRegistry::newInstance()'
java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:690:
undefined reference to `org::w3c::dom::DOMImplementation*
org::w3c::dom::bootstrap::DOMImplementationRegistry::getDOMImplementation(java::lang::String*)'
java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:692:
undefined reference to `org::w3c::dom::DOMImplementation::class$'
java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:694:
undefined reference to `org::w3c::dom::DOMImplementation::class$'
java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:695:
undefined reference to `org::w3c::dom::Document::class$'
java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:698:
undefined reference to `org::w3c::dom::Document::class$'
java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:699:
undefined reference to `org::w3c::dom::Document::class$'
java/.libs/util.o:/gnu/gcc/gcc/libjava/classpath/java/util/Properties.java:699:
undefined reference to `org::w3c::dom::Element::class$'

  So, did I do the partitioning wrong here?  Or have I misunderstood what you
were referring to as "interdependencies"?

    cheers,
      DaveK

  parent reply	other threads:[~2009-05-13 12:38 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4A01B55C.6060700@gmail.com>
2009-05-06 15:58 ` Dave Korn
2009-05-06 16:15   ` Ralf Wildenhues
2009-05-06 16:27     ` David Daney
2009-05-06 16:31       ` Richard Guenther
2009-05-06 16:40         ` Andrew Haley
2009-08-22 13:24       ` Dave Korn
2009-08-22 16:33         ` Andrew Haley
2009-08-22 18:55           ` Dave Korn
2009-08-28 18:04         ` Tom Tromey
2009-08-28 18:16           ` David Daney
2009-08-28 19:56             ` Dave Korn
2009-05-06 16:57     ` Dave Korn
2009-05-07 21:49       ` Ralf Wildenhues
2009-05-11 17:14         ` Dave Korn
2009-05-11 17:26           ` Andrew Haley
2009-05-11 18:03             ` Dave Korn
2009-05-13 12:38             ` Dave Korn [this message]
2009-05-13 16:18               ` Andrew Haley
2009-05-13 17:59                 ` Dave Korn
2009-05-13 15:39           ` Dave Korn
2009-05-06 16:39   ` Andrew Haley
2009-05-06 16:45     ` Dave Korn
2009-05-06 17:12       ` Andrew Haley
2009-05-11 17:33         ` Dave Korn
2009-05-11 17:39           ` Andrew Haley
     [not found]     ` <7230133d0905060959h5371a608nff03cce1e1e98f47@mail.gmail.com>
2009-05-06 17:08       ` Dave Korn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A0AC200.9020003@gmail.com \
    --to=dave.korn.cygwin@googlemail.com \
    --cc=Ralf.Wildenhues@gmx.de \
    --cc=aph@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=java@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).