compilation problems with ecj.jar

Marco Trudel mtrudel@gmx.ch
Wed Jan 17 22:02:00 GMT 2007


Tom Tromey wrote:
>>>>>> "Marco" == Marco Trudel <mtrudel@gmx.ch> writes:
> 
> Marco> Well, I still don't see why the host of ecj is the configured target
> Marco> instead of the configured host, but I guess I don't need to understand
> Marco> that.
> 
> The intent of the code is that the installed be compiled with the
> build-x-host compiler, since ecj1 must run on the host.  That conforms
> pretty well to what I see in configure:
> 
>   GCJ_FOR_ECJX="${with_cross_host}-gcj"

Yes, this is what I would expect. With my host=Linux, target=minGW and 
build=Linux, it evaluates to "i686-pc-linux-gnu-gcj". But the ecj 
compilation is still somehow broken, the command is:

i686-pc-linux-gnu-gcj -o ecjx.exe -findirect-dispatch 
--main=org.eclipse.jdt.internal.compiler.batch.GCCMain 
/usr/local/src/gcc/libjava/.././libjava/../ecj.jar

Either a wrong gcj is choosen or the output should be named "ecj" 
instead of "ecj.exe". Furthermore, the compilation fails:

make[3]: Entering directory 
`/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/libjava'
i686-pc-linux-gnu-gcj -o ecjx.exe -findirect-dispatch 
--main=org.eclipse.jdt.internal.compiler.batch.GCCMain 
/usr/local/src/gcc/libjava/.././libjava/../ecj.jar
/tmp/cctTUn55.o: In function `main':ccEdPOIF.i:(.text+0x30): undefined 
reference to `JvRunMainName'
/tmp/ccqt0wW6.o: In function `void 
org::eclipse::jdt::internal::compiler::classfmt::ClassFormatException::printStackTrace(java::io::PrintStream*)':ecj.jar:(.text+0x155dfc): 
undefined reference to `_Jv_MonitorExit'
:ecj.jar:(.text+0x155e4c): undefined reference to `_Jv_MonitorExit'
/tmp/ccqt0wW6.o: In function `void 
org::eclipse::jdt::internal::compiler::classfmt::ClassFormatException::printStackTrace(java::io::PrintWriter*)':ecj.jar:(.text+0x1561ec): 
undefined reference to `_Jv_MonitorExit'
:ecj.jar:(.text+0x15623c): undefined reference to `_Jv_MonitorExit'
/tmp/ccqt0wW6.o: In function `java::lang::Object* 
org::eclipse::jdt::internal::compiler::util::Messages$MessagesProperties::put(java::lang::Object*, 
java::lang::Object*)':ecj.jar:(.text+0x6643cd): undefined reference to 
`_Jv_MonitorExit'
/tmp/ccqt0wW6.o:ecj.jar:(.text+0x6643ec): more undefined references to 
`_Jv_MonitorExit' follow
/tmp/ccqt0wW6.o: In function `global constructors keyed to 
0__ZN3org7eclipse3jdt4core8compiler13CharOperation18__U3c_clinit__U3e_EJvv':ecj.jar:(.text+0x803e80): 
undefined reference to `_Jv_RegisterResource'
:ecj.jar:(.text+0x803e8c): undefined reference to `_Jv_RegisterResource'
:ecj.jar:(.text+0x803e98): undefined reference to `_Jv_RegisterResource'
:ecj.jar:(.text+0x803ea4): undefined reference to `_Jv_RegisterResource'
:ecj.jar:(.text+0x803eb0): undefined reference to `_Jv_RegisterResource'
/tmp/ccqt0wW6.o:ecj.jar:(.text+0x803ebc): more undefined references to 
`_Jv_RegisterResource' follow
collect2: ld returned 1 exit status
make[3]: *** [ecjx.exe] Error 1
make[3]: Leaving directory 
`/home/Marco/Desktop/compile-lin-win/gcc-build/i686-pc-mingw32/libjava'


thanks
Marco

> What value do you get for this?
> 
> Tom
> 



More information about the Java mailing list