make bootstrap failure in libjava

Robert Collins robert.collins@itdomain.com.au
Sun Apr 15 06:57:00 GMT 2001


----- Original Message -----
From: "Tom Tromey" <tromey@redhat.com>
To: "Robert Collins" <robert.collins@itdomain.com.au>
Cc: <java@gcc.gnu.org>
Sent: Sunday, April 15, 2001 11:13 AM
Subject: Re: make bootstrap failure in libjava


> >>>>> "Robert" == Robert Collins <robert.collins@itdomain.com.au>
writes:
>
> Robert> knowing where to look saves a heap of time. I'll sumbit a
> Robert> patch, but as I know nothing about gcc's innards, you'll
> Robert> probably just want to use it as a list of the strcmps that
> Robert> need changing. I presume that in one of target files there is
> Robert> a #define for a filename compare function - do you know what
> Robert> that define is and I'll use it instead..
>
> Actually I don't think there is such a define.  Maybe there is and I
> simply don't know what it is.  Grepping for `strcase' didn't turn up
> anything very likely :-(
>

Thanks for the pointers. They saved time on that potential solution...
however I'm stepping through the problem slowly (changing the case cmp
statements made no difference to the symptoms). I looked in the rest of
gcc, and most of the file handling code is still strcmp. On reflection,
that makes sense, as for most operations a case preserving file system
will work fine with strcmp.

Tracking down the bug the hard way:

The failed command is (I know you've got it in the PR).
$
/usr/src/gcc3/build/gcc/gcj -B/usr/src/gcc3/build/i686-pc-cygwin/libjava
/ \
-B/usr/src/gcc3/build/gcc/ --encoding=UTF-8 -C -g \
-classpath
/usr/src/gcc3/build/i686-pc-cygwin/libjava:/usr/src/gcc3/gcc/libjava \
-d /usr/src/gcc3/build/i686-pc-cygwin/libjava java/awt/Container.java

(I've put \ at the linebreaks I inserted. please remove any others
inserted by my brain dead mailer :]

gcj calls (qith -quiet, which I'm not using as I want to track this
down...
$  /usr/src/gcc3/build/gcc/jc1.exe java/awt/Container.java \
-dumpbase Container.java -g -version -fencoding=UTF-8 \
-fclasspath=/usr/src/gcc3/build/i686-pc-cygwin/libjava:/usr/src/gcc3/gcc
/libjava \
-foutput-class-dir=/usr/src/gcc3/build/i686-pc-cygwin/libjava \
-fsyntax-only -femit-class-files -o /dev/null

which spits out a couple of pages of output. I'm happy to attach that if
it will help, or for comparison against unix output. The last couple of
lines before the first eror (on Paint.java ) are
===
ximumSize()] [java.awt.Container. java.awt.Container.getAlignmentX()]
[java.awt.Container.
 java.awt.Container.getAlignmentY()] [java.awt.Container.
java.awt.Container.paint(java.aw
t.Graphics)] interface java.awt.Paint
/usr/src/gcc3/gcc/libjava/java/awt/paint.java:22: Interface
`java.awt.Paint' already defin
ed in /usr/src/gcc3/gcc/libjava/java/awt/Paint.java:22.
   public interface Paint extends Transparency
===

What would be really useful to me in tracking this down is
a) a laymans non-java explanation of what the jc1 command is attempting
to do.
b) a pointer into the appropriate function area so I can breakpoint it.
c) someone to go "ah-ha, it'll be x that is reading paint.java not
Paint.java eailer on in the parsing"

I'm quite comfortable throwing a debugger on this and tracking it
down... but knowledge of the code base can drastically reduce the time
to do this... thus my request.
(2 out 3 will be fine :])

As per usual, please cc me.

Rob





More information about the Java mailing list