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

Re: gcj segfaults on i686/x86_64-apple-darwin*


Andrew Haley wrote:
Jack Howarth wrote:
On Mon, Nov 09, 2009 at 02:33:11PM +0000, Andrew Haley wrote:
Jack Howarth wrote:

   Shouldn't the libjava testsuite contain some rudimentary tests using gcj
to make sure it is functional?
Sure.

The recent testsuite results don't suggest
major problems with java on intel darwin...

http://gcc.gnu.org/ml/gcc-testresults/2009-11/msg00666.html
http://gcc.gnu.org/ml/gcc-testresults/2009-10/msg01308.html
This means that, whatever the cause of the bug, it wasn't present
when these tests were run.

You can easily verify that yourself by running 'make check-target-libjava'.

   Actually the nature of the testsuite will mask this failure on intel darwin.
The gcj compiler doesn't segfault when presented with a *.class file to compile
into an executable. Only when presented a *.java file will the gcj compiler abort.

In that case, gcj isn't aborting. gcj only ever compiles .class -> .o, where .java -> .class compilation is performed by ecj1.

That is what I told you, Andrew, on #irc.


I suspect if the libjava harness was fixed to compile the java files if a ecj1 was
built that all of the libjava.lang tests would suddenly fail on darwin.

Andreas Tobler Seems to think it's to do with stack execution, but I can't understand how that can be: gcj doesn't generate executable code on the stack.

Gcj not, but what is with ecj1? The suggestion I posted to the PR affects the ecjx linking.


The patchlet I posted in the 41991 PR does allow me to compile a java file into a class file and execute it with gij. Also the same for java to binary compile. This was not the case before. I went back to Jan 31 09 and I always got an Abort with ecj1.

Note beside, I always installed the built gcc and tested the installed binaries.

[deuterium:~] andreast% gcj -C hello.java
[deuterium:~] andreast% gij hello
Hello World
Hello Andreas

[deuterium:~] andreast% gcj --main=testme -O testme.java
[deuterium:~] andreast% ./a.out
Hello

[deuterium:~] andreast% gcj -v
Using built-in specs.
Reading specs from /Volumes/development/gcc/head/testbin-x86_64/lib/gcc/x86_64-apple-darwin9/4.5.0/../../../libgcj.spec
rename spec startfile to startfileorig
rename spec lib to liborig
COLLECT_GCC=gcj
COLLECT_LTO_WRAPPER=/Volumes/development/gcc/head/testbin-x86_64/libexec/gcc/x86_64-apple-darwin9/4.5.0/lto-wrapper
Target: x86_64-apple-darwin9
Configured with: /Volumes/development/gcc/head/gcc/configure --prefix=/Volumes/development/gcc/head/testbin-x86_64 --build=x86_64-apple-darwin9 --target=x86_64-apple-darwin9 --disable-static --with-gmp=/usr/local/x86_64 --with-mpfr=/usr/local/x86_64 --enable-java-awt=xlib --enable-languages=c,c++,java
Thread model: posix
gcc version 4.5.0 20091111 (experimental) [trunk revision 153973] (GCC)



I'll run some more tests.


Andreas



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