This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Windows-native GCJ 3.2 (Alternate Approach)


Hi,

    I'm attaching a small archive (6K, TAR/GZ) that contains
the scripts, diffs and a README needed to do what I described
in my original mail.

You need access to a Windows as well as a Linux box to be
able to carry out the instructions in the README.

BTW, I've also been able to successfully repeat the steps
with the same scripts on a Solaris 8 (SPARC) box with the
GNU tools available from sunfreeware.com. So it should
probably work on other Unix boxes as well that have
the normal GNU tools like GCC, binutils, etc.

Ranjit.


Ranjit Mathew wrote:
Hi,

    I have been able to find an alternative (and less painful)
approach to building a Windows-native GCJ from GCC 3.2 sources
using Linux as a build environment, in the following stages:

1. Build a Linux-hosted cross compiling GCC and binutils toolchain
   containing the C, C++ and Java front-ends.
   (i.e. build=host=i686-pc-linux-gnu, target=i686-pc-mingw32)

2. Use the cross compiler created above to create a Windows-native
   GCC toolchain.
   (i.e. build=i686-pc-linux-gnu, host=target=i686-pc-mingw32)

This might seem utterly "Duh!" to you guys, but I'm absolutely
fascinated by the fact that it is at all possible!

This contrasts with the Windows-only approach I had posted
earlier (http://gcc.gnu.org/ml/java/2002-09/msg00072.html) - it
is far simpler (fewer changes needed to the GCC3.2 sources)
and far faster (the two stages *together* take *half* the time on
Linux v/s Win98 on the same box!). And there were no issues
with the problems related to case-insensitive filesystems this
time.

The compiler thus created behaves similar to the earlier
Windows-native compiler, even in the problems it has (warnings
on "stabs debugging field description too long", no stack
traces from exceptions, etc.).

The only newer problems I faced during this exercise were:

a. The fastjar configure dies out finding the sizeof char in
   Stage 2 above saying that it "can not run test while cross
   compiling" - while it did not complain in Stage 1 above!
   (IMO, Stage 1 is building a cross compiler while Stage 2
   is either a Canadian cross or a native compiler - I'm not
   too sure on the terminology.) I had to overcome this by
   specifying "ac_cv_sizeof_char=1" in its configure script.

b. In Stage 2 above, the libgcj configure script picks up
   the wrong fastjar, gcjh (but the right gcj from Stage 1).
   I had to overcome this by explicitly specifying the values
   for JAR, ZIP and GCJH on the make command line (with an "-e"
   flag).

If anyone is interested, I'll post the mojo needed to get this
thing working.

Sincerely Yours,
Ranjit Mathew.





Attachment: mingw-gcj.tar.gz
Description: GNU Zip compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]