compilation problems with ecj.jar

Marco Trudel mtrudel@gmx.ch
Wed Jan 17 11:57:00 GMT 2007


Andrew Haley wrote:
> Marco Trudel writes:
> > Andrew Haley wrote:
> > > Marco Trudel writes:
> > > > Andrew Haley wrote:
> > > > gcj: Internal error: Segmentation fault (program jc1)
> > > > Please submit a full bug report.
> > > > 
> > > > Maybe I patched the wrong Makefile.am? I patched the one in the libjava 
> > > > dir...
> > > 
> > > And you did run automake afterwards?
> > 
> > What is automake for? I tried to do a new gcj compilation.
>> It makes Makefile.in from Makefile.am. See http://gcc.gnu.org/install/prerequisites.html.

Sorry, I never worked with Makefile.ams and Makefile.ins, so I didn't 
yet know automake. Your patch works. The compilation now flawless runs 
through. Thanks...
> > I assume that will automatically use the new Makefile.am.
>> You do presume things.
>> > > > > > BTW,l there are more problems with compiling ecj.jar for
> > > > > > cross-compiling. Creating a host-linux, target-windows GCJ will
> > > > > > create a ecj.exe what is definitely the wrong thing to do.
> > > > >
> > > > > It's the right thing to do. You have to build the ecj.exe for
> > > > > GNU/Linux as a separate step when building the GNU/Linux native
> > > > > compiler. If you don't want ecj.exe for the target, don't include
> > > > > ecj.jar in the build tree.
> > > > 
> > > > What do I need a "exe" for on Linux?
> > > 
> > > It's a Windows executable that compiles .java -> .class. If you're
> > > going to compile Java source on Windows, you'll need it.
> > 
> > But if I'd like to compile Java source on Windows, I would build a 
> > host=Windows target=Windows gcj. In my case, I have no use for ecj.exe 
> > since the a compilation happens on Linux.
>> As I said, If you don't want ecj.exe for the target, don't include
> ecj.jar in the build tree.
>> > > If you want to compile Java source on Linux, even if your target is
> > > Windows, you must build a Linux *native* compiler to get ecj.exe.
> > 
> > Isn't that somewhat senseless? If I only need a host=Linux 
> > target=Windows compiler, I also have to compile a host=Linux 
> > target=Linux gcj just to get my ecj and be able to compile .java source 
> > files on Linux?
>> Yes.
>> ecj is a program that is written in Java.
>> To run ecj you will need a native Java library.
>> This is obviously true regardless of the target.
>> > But I get a ecj.exe for Windows that I don't need on Windows since my 
> > gcj only runs on Linux?
> > Where is the advantage of getting ecj for Windows?
>> So don't build it, then.
>> > > > If I get a ecj.exe, what can I do with it? I wont be able to
> > > > compile .java files on Linux and its useless on Windows as far as I
> > > > can see. But I'd be glad to learn better...
> > > 
> > > You need it for the Windows compiler.
> > 
> > Which Windows compiler?
>> The Windows native compiler. If you don't intend to build a Windows
> native compiler, then you won't need it.

Well, I still don't see why the host of ecj is the configured target 
instead of the configured host, but I guess I don't need to understand 
that. In my opinion this is wrong from a users point of view. But it 
might be that it's the only technical possibility since there's no gcj 
around that could compile ecj to run on Linux.
Thanks for your time
Marco


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /