Problems building libgcj...
Scott Bambrough
scottb@netwinder.org
Sat Apr 1 00:00:00 GMT 2000
Hi,
I've been porting libgcj to run on our ARM based NetWinder for a while now.
I've patched gcc-2.95.2 with Bryce McKinlay's patches and have been moderately
successful.
I've run into a bug in the Makefiles however:
c++ -DHAVE_CONFIG_H -I. -I../../../../libgcj/libjava -I./include
-I../../../../libgcj/libjava -Iinclude
-I../../../../libgcj/libjava/include -I../../../../libgcj/libjava/../boehm-gc
-I./../boehm-gc -DSILENT=1 -DNO_SIGNALS=1
-DNO_DEBUGGING=1 -DJAVA_FINALIZATION=1 -I../../../../libgcj/libjava/libltdl
-I./libltdl
-I../../../../libgcj/libjava/../compat-include
-I../../../../libgcj/libjava/../zlib
-I../../../../libgcj/libjava/../libffi/include -I../libffi/include -fno-rtti
-fvtable-thunks -fsjlj-exceptions -W -Wall
-D_GNU_SOURCE -g -O2 -fvtable-thunks -D_GNU_SOURCE -msoft-float -c -fPIC -DPIC
../../../../libgcj/libjava/java/lang/reflect/natMethod.cc -o
java/lang/reflect/.libs/natMethod.lo
../../../../libgcj/libjava/java/lang/reflect/natMethod.cc:44: ffi.h: No such
file or directory
make[4]: *** [java/lang/reflect/natMethod.lo] Error 1
make[4]: Leaving directory
`/home/scottb/cvstree/libgcj-build/armv4l-unknown-linux-gnu/soft-float/libjava'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/home/scottb/cvstree/libgcj-build/armv4l-unknown-linux-gnu/soft-float/libjava'
make[2]: *** [multi-do] Error 1
make[2]: Leaving directory
`/home/scottb/cvstree/libgcj-build/armv4l-unknown-linux-gnu/libjava'
make[1]: *** [all-multi] Error 2
make[1]: Leaving directory
`/home/scottb/cvstree/libgcj-build/armv4l-unknown-linux-gnu/libjava'
make: *** [all-target-libjava] Error 2
The problem seems to be the multilibbing. The include paths for libffi are not
correct on the compiler command line (they need another ../) when building in
soft-float/libjava. Hence ffi.h cannot be found. I had a look at the
makefiles, but I was hoping someone here might be more familiar with the
Makefile so the fix could be made without me having to analyze the Makefile.
I also have a couple of other questions:
1) The version of Double.h generated by gcj.h has 5 static jdouble constants at
the end of the class. Only the first two get initialized with values (on x86
and ARM). Is this correct?
static const jdouble MIN_VALUE = 4.9406564584124654e-324;
static const jdouble MAX_VALUE = 1.7976931348623157e+308;
static const jdouble NEGATIVE_INFINITY;
static const jdouble POSITIVE_INFINITY;
static const jdouble NaN;
2) I had to modify the sources in the compilers gcc/java directory to get the
above file generated correctly. ARM sets FLOAT_WORDS_BIG_ENDIAN to 1, and I had
to tweak it in a couple of places. Should I submit the patches for this here,
or on gcc-patches? I have a copyright assignment on file for gcc. These
changes for the compiler should be covered by that copyright assignment right?
3) I had a look at the copyright assignment for libgcj. Is it affected by
RedHat's purchase of Cygnus?
Scott
--
Scott Bambrough - Software Engineer
REBEL.COM http://www.rebel.com
NetWinder http://www.netwinder.org
More information about the Java
mailing list