This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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]

[Fwd: Windows-native GCJ 3.2 (Alternate Approach)]


FWIW and FYI: I'm really amazed by the flexibility of
GCC and binutils! (ref. message attached below.)

Ranjit.

-------- Original Message --------
Subject: Windows-native GCJ 3.2 (Alternate Approach)
Date: Tue, 24 Sep 2002 10:13:08 +0530
From: Ranjit Mathew <rmathew@hotmail.com>

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.







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