On 01/03/2010 06:14 PM, John Poole wrote:
On 1/3/2010 8:28 AM, Andrew Haley wrote:
I'd try stracing gcj to find out what's going on
$ strace -f -etrace=file gcj -c HelloWorld.java
This will tell you where gcj is looking for its jarfiles. Look for
something like this:
...
547 execve("/home/aph/gcc/trunk/install/libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/ecj1", ["/home/aph/gcc/trunk/install/libe"..., "Hello.java", "-g1", "-fbootclasspath=./:/home/aph/gcc"..., "-g1", "-fsource=1.5", "-ftarget=1.5", "-fzip-dependency", "/tmp/ccXyDB9d.zip", "-fzip-target", "/tmp/ccipPqBc.jar"], [/* 42 vars */]) = 0
...
547 stat("/home/aph/gcc/trunk/install/share/java/ecj.jar", {st_mode=S_IFREG|0644, st_size=1377431, ...}) = 0
547 open("/home/aph/gcc/trunk/install/share/java/ecj.jar", O_RDONLY) = 3
Perfect.
I followed your suggestion; installed strace and reran the revised
command line. The output can be referenced at http://pastebin.com/m7cb292d5
The definitive line is:
172. [pid 6423] access("/usr/local/share/java/ecj.jar", F_OK) = -1
ENOENT (No such file or directory)
See also lines 81,82 and 85.
Basically, the problem is that compiler was looking for ecj.jar under a
fixed(?) /usr/local/share path instead of the path where I had custom
installed: /usr/local/gcj; moreover it should have been looking under
the full path of /usr/local/gcj/usr/local/share/java.
OK, so we need to know why that happened. It might be a bug in gcj or
you might not have configured gcc correctly. My guess is the latter,
but you never know.
Please look at the config.log in the top of the gcc build directory,
and cut-n-paste the configure line that's there. I think I know
what's wrong, but I'll need to see it to be sure.
Andrew.