Re: error trying to exec 'ecj1': execvp: No such file or directory

Jie Liu <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <BANLkTin1Nzi0_Cpx6xQAD+0ve31x0nSPNYVJSUetww2Bd_m2KQ@mail.gmail.com>
2011/6/3 Dr Andrew John Hughes <[email protected]>:
> On 21:42 Fri 03 Jun     , Jie Liu wrote:
>> Hi,
>>
>> I am trying to port gcj to RTEMS now and have got boehm-gc, libffi,
>> libjava compiled for RTEMS. But when I try to use i386-rtems-gcj to
>> compile HelloWorld for RTEMS after install, I got "error trying to
>> exec 'ecj1': execvp: No such file or directory" and don't know how to
>> fix it. Could somebody give me an help hand or an advice ? Very
>> Thanks.
>>
>> The error information can be seen below:
>> i386-rtems-gcj -v --main=HelloWorld HelloWorld.java -o Hello
>> Using built-in specs.
>> Reading specs from /mnt/gcj/mytoolchain/lib/gcc/i386-rtems/4.7.0/libgcj.spec
>> rename spec startfile to startfileorig
>> rename spec lib to liborig
>> COLLECT_GCC=i386-rtems-gcj
>> COLLECT_LTO_WRAPPER=/mnt/gcj/mytoolchain/libexec/gcc/i386-rtems/4.7.0/lto-wrapper
>> Target: i386-rtems
>> Configured with: ../gcc-trunk/configure --enable-threads=rtems
>> --with-gnu-as --enable-multilib --enable-newlib-mb
>> --enable-newlib-iconv --with-gnu-ld --with-newlib --verbose
>> --with-system-zlib --disable-nls
>> --enable-version-specific-runtime-libs --enable-languages=c,c++,java
>> --target=i386-rtems --prefix=/mnt/gcj/mytoolchain/
>> --with-gmp=/mnt/gcj/gcj-rtems-work/gmpmpfrmpc
>> --with-mpfr=/mnt/gcj/gcj-rtems-work/gmpmpfrmpc
>> --with-mpc=/mnt/gcj/gcj-rtems-work/gmpmpfrmpc
>> Thread model: rtems
>> gcc version 4.7.0 20110409 (experimental) (GCC)
>> COLLECT_GCC_OPTIONS='-fsaw-java-file' '-v' '-o' 'Hello'
>> '-fbootclasspath=./:/mnt/gcj/mytoolchain/share/java/libgcj-4.7.0.jar'
>> '-g1' '-mtune=i386' '-march=i386'
>>  ecj1 HelloWorld.java -g1
>> -fbootclasspath=./:/mnt/gcj/mytoolchain/share/java/libgcj-4.7.0.jar
>> -g1 -fsource=1.5 -ftarget=1.5 -fzip-dependency /tmp/ccuWIrFF.zip
>> -fzip-target /tmp/cc7in4l3.jar
>> i386-rtems-gcj: error trying to exec 'ecj1': execvp: No such file or directory
>> make: *** [Hello] Error 1
>>
>> Best Regards,
>> Jie
>
> Did you supply the build with an ecj.jar?  contrib/download_ecj will obtain one
> for you.  ecj1 is a natively compiled ecj binary used by gcj to compile Java
> source code to bytecode:
>
> $ file /home/andrew/build/gcj/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/ecj1
> /home/andrew/build/gcj/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/ecj1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
>
> --
> Andrew :)
>
> Free Java Software Engineer
> Red Hat, Inc. (http://www.redhat.com)
>
> Support Free Java!
> Contribute to GNU Classpath and IcedTea
> http://www.gnu.org/software/classpath
> http://icedtea.classpath.org
> PGP Key: F5862A37 (https://keys.indymedia.org/)
> Fingerprint = EA30 D855 D50F 90CD F54D  0698 0713 C3ED F586 2A37
>

Thank you very much, Andrew. :)
I have got my cross ecj1 under your help.
[rtems@localhost libjava]$ file
/mnt/gcj/mytoolchain/libexec/gcc/i386-rtems/4.7.0/ecj1
/mnt/gcj/mytoolchain/libexec/gcc/i386-rtems/4.7.0/ecj1: ELF 32-bit LSB
executable, Intel 80386, version 1 (SYSV), dynamically linked (uses
shared libs), for GNU/Linux 2.6.32, not stripped

But when I run this ecj1, an error occurred:
[rtems@localhost libjava]$
/mnt/gcj/mytoolchain/libexec/gcc/i386-rtems/4.7.0/ecj1
Exception in thread "main" java.lang.NoClassDefFoundError:
org.eclipse.jdt.internal.compiler.batch.GCCMain
   at gnu.java.lang.MainThread.run(libgcj.so.11)
Caused by: java.lang.ClassNotFoundException:
org.eclipse.jdt.internal.compiler.batch.GCCMain not found in
gnu.gcj.runtime.SystemClassLoader{urls=[file:./],
parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.11)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.11)
   at java.lang.ClassLoader.loadClass(libgcj.so.11)
   at java.lang.ClassLoader.loadClass(libgcj.so.11)
   at gnu.java.lang.MainThread.run(libgcj.so.11)
While the local ecj1 is running well :
[rtems@localhost test]$ /usr/libexec/gcc/i686-redhat-linux/4.5.1/ecj1
[rtems@localhost test]$

Is there someone who has encountered the same question? Any reply will
be welcome.

Best Regards,
Jie
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.