Bug 19882 - fail to create shared lib from jar - 2 instances, xerces and log4
Summary: fail to create shared lib from jar - 2 instances, xerces and log4
Status: RESOLVED INVALID
Alias: None
Product: gcc
Classification: Unclassified
Component: java (show other bugs)
Version: 3.4.2
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-10 22:08 UTC by David E. De La Rosa
Modified: 2005-08-17 03:21 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David E. De La Rosa 2005-02-10 22:08:51 UTC
I am trying to compile a java application that is made up of several external
jars (xerces, log4j and others) plus some internally developed. Since I can't
compile with jars in the command line (bug 14212) I decided to create shared
libraries from some of the jars. I picked xerces_2_5_0 and used the following
command line:


drwx------  23 acuser acuser   4096 Feb 10 15:22 ..
drwxr-xr-x   2 acuser acuser   4096 Feb  9 16:16 data
drwxr-xr-x   6 acuser acuser   4096 Feb  9 16:16 docs
-rw-r--r--   1 acuser acuser   2698 Jul 31  2003 LICENSE
-rw-r--r--   1 acuser acuser   5345 Jul 31  2003 LICENSE-DOM.html
-rw-r--r--   1 acuser acuser    419 Jul 31  2003 LICENSE-SAX.html
-rw-r--r--   1 acuser acuser    814 Jul 31  2003 Readme.html
drwxr-xr-x   8 acuser acuser   4096 Jul 31  2003 samples
-rw-r--r--   1 acuser acuser 927669 Jul 31  2003 xercesImpl.jar
-rw-r--r--   1 acuser acuser 121686 Jul 31  2003 xercesSamples.jar
-rw-r--r--   1 acuser acuser 123705 Jul 31  2003 xml-apis.jar
-rw-r--r--   1 acuser acuser 123705 Jul 31  2003 xmlParserAPIs.jar
[acuser@fedora xerces-2_5_0]$ gcj -shared -o xerces.so  *.jar
org/apache/xerces/util/DOMUtil.java: In class `org.apache.xerces.util.DOMUtil':
org/apache/xerces/util/DOMUtil.java: In method
`org.apache.xerces.util.DOMUtil.copyInto(org.w3c.dom.Node,org.w3c.dom.Node)':
org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class
org.w3c.dom.events.EventTarget
org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class
org.w3c.dom.events.DocumentEvent
org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class
org.w3c.dom.events.DocumentEvent
org/apache/xerces/util/DOMUtil.java:0: confused by earlier errors, bailing out
[acuser@fedora xerces-2_5_0]$

I did the same with log4j with same results.

[acuser@fedora lib]$ ls
log4j-1.2.9.jar
[acuser@fedora lib]$ cc -o shared
[acuser@fedora lib]$ gcj
gcj: no input files
[acuser@fedora lib]$ gcj --shared -o log4j.so *jar
org/apache/log4j/chainsaw/LoadXMLAction.java: In class
`org.apache.log4j.chainsaw.LoadXMLAction':
org/apache/log4j/chainsaw/LoadXMLAction.java: In constructor
`(javax.swing.JFrame,org.apache.log4j.chainsaw.MyTableModel)':
org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for
class javax.xml.parsers.SAXParserFactory
org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for
class javax.xml.parsers.SAXParserFactory
org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for
class javax.xml.parsers.SAXParser
org/apache/log4j/chainsaw/LoadXMLAction.java:68: error: cannot find file for
class javax.xml.parsers.SAXParserFactory
org/apache/log4j/chainsaw/LoadXMLAction.java:68: confused by earlier errors,
bailing out
Comment 1 Mark Wielaard 2005-02-10 23:00:00 UTC
Subject: Re:  New: fail to create shared lib from jar - 2
	instances, xerces and log4

Hi,

On Thu, 2005-02-10 at 22:08 +0000, delarosa at ilstechnology dot com
wrote:
> [acuser@fedora xerces-2_5_0]$ gcj -shared -o xerces.so  *.jar
> org/apache/xerces/util/DOMUtil.java: In class `org.apache.xerces.util.DOMUtil':
> org/apache/xerces/util/DOMUtil.java: In method
> `org.apache.xerces.util.DOMUtil.copyInto(org.w3c.dom.Node,org.w3c.dom.Node)':
> org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class
> org.w3c.dom.events.EventTarget
> org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class
> org.w3c.dom.events.DocumentEvent
> org/apache/xerces/util/DOMUtil.java:0: error: cannot find file for class
> org.w3c.dom.events.DocumentEvent
> org/apache/xerces/util/DOMUtil.java:0: confused by earlier errors, bailing out

The new org.w3c.dom.events packages were recently added to gcc 4.0
(CVS). Could you retry with a CVS version?

> [acuser@fedora lib]$ gcj --shared -o log4j.so *jar
> org/apache/log4j/chainsaw/LoadXMLAction.java: In class
> `org.apache.log4j.chainsaw.LoadXMLAction':
> org/apache/log4j/chainsaw/LoadXMLAction.java: In constructor
> `(javax.swing.JFrame,org.apache.log4j.chainsaw.MyTableModel)':
> org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for
> class javax.xml.parsers.SAXParserFactory
> org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for
> class javax.xml.parsers.SAXParserFactory
> org/apache/log4j/chainsaw/LoadXMLAction.java:43: error: cannot find file for
> class javax.xml.parsers.SAXParser
> org/apache/log4j/chainsaw/LoadXMLAction.java:68: error: cannot find file for
> class javax.xml.parsers.SAXParserFactory
> org/apache/log4j/chainsaw/LoadXMLAction.java:68: confused by earlier errors,
> bailing out

Same for the javax.xml.parsers package.

Comment 2 David E. De La Rosa 2005-02-10 23:11:15 UTC
Sorry for the dumb question. Where do I get the binaries for version 4. I assume
that you meant gcc 4.0 right ? Any pointer are appreciated.
Comment 3 Ranjit Mathew 2005-02-11 05:28:48 UTC
(In reply to comment #2)
> Sorry for the dumb question. Where do I get the binaries for version 4. I assume
> that you meant gcc 4.0 right ? Any pointer are appreciated.

See:

  http://gcc.gnu.org/cvs.html

for how to get the latest sources from the 
GCC CVS repository.

On a modern Linux system, it's rather easy
to compile GCC from sources. Just be
sure to use a build folder separate from
the source folder. For example, I use the
following configuration command:

$GCC_SRC_DIR/configure --prefix=$HOME/gcc --enable-languages=c,c++,java \
--disable-nls --disable-checking --disable-libmudflap \
--disable-debug --enable-threads=posix --enable-__cxa_atexit

and then "make bootstrap" followed by "make install"
from within the build folder. (You'll have to tweak
the command line above to suit your setup.)

Once you've built and installed this, you 
should see "How to BC compile with GCJ" in the
GCC Wiki:

http://gcc.gnu.org/wiki/How%20to%20BC%20compile%20with%20GCJ

Hope this helps,
Ranjit.
Comment 4 Andrew Pinski 2005-08-17 03:21:55 UTC
No feedback in over 6 months.