[Bug java/31325] gcj support for ARM EABI
s_j_newbury at yahoo dot co dot uk
gcc-bugzilla@gcc.gnu.org
Sat Mar 24 19:58:00 GMT 2007
------- Comment #11 from s_j_newbury at yahoo dot co dot uk 2007-03-24 19:58 -------
I have everything built except for libjava/exception.cc which fails as seen
below.
This I believe is due to the lack of an implementation of _Unwind_Backtrace in
the ARM EABI. What needs to be done to address this? Can anybody give me any
pointers?
In http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29206 Daniel Jackobowitz says
"As for ARM, I'm not sure what to do to fix the issue. ARM old ABI is stuck
with SJLJ. And the EABI can't implement _Unwind_Backtrace either. I have been
speaking with someone at ARM about the ABI implications of this, on and off,
but I don't have a lot of hope for it working out without a GNU extension."
depbase=`echo jni.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`; \
if /bin/sh ./libtool --mode=compile
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc/xgcc
-shared-libgcc
-B/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc
-nostdinc++
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src/.libs
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/bin/
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/lib/ -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/include -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/sys-include
-DHAVE_CONFIG_H -I.
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-I./include -I./gcj
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-Iinclude
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/include
-Iclasspath/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/native/fdlibm
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../boehm-gc/include
-I../boehm-gc/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/.././libjava/../gcc
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../libffi/include
-I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers
-Wswitch-enum -D_FILE_OFFSET_BITS=64 -Wextra -Wall -D_GNU_SOURCE
-DPREFIX="\"/usr/lib/gcj-4.2.0_beta20070307\""
-DTOOLEXECLIBDIR="\"/usr/lib/gcj-4.2.0_beta20070307/lib\""
-DJAVA_HOME="\"/usr/lib/gcj-4.2.0_beta20070307/jre\""
-DBOOT_CLASS_PATH="\"/usr/lib/gcj-4.2.0_beta20070307/jre/lib/rt.jar\""
-DJAVA_EXT_DIRS="\"/usr/lib/gcj-4.2.0_beta20070307/share/java/ext\""
-DGCJ_ENDORSED_DIRS="\"/usr/lib/gcj-4.2.0_beta20070307/share/java/gcj-endorsed\""
-DGCJ_VERSIONED_LIBDIR="\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307\""
-DPATH_SEPARATOR="\":\""
-DLIBGCJ_DEFAULT_DATABASE="\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307/classmap.db\""
-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"gcj-4.2.0-beta20070307/classmap.db\""
-O2 -pipe -D_GNU_SOURCE -MT jni.lo -MD -MP -MF "$depbase.Tpo" -c -o jni.lo
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/jni.cc;
\
then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo";
exit 1; fi
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc/xgcc
-shared-libgcc
-B/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc
-nostdinc++
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src/.libs
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/bin/
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/lib/ -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/include -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/sys-include
-DHAVE_CONFIG_H -I.
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-I./include -I./gcj
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-Iinclude
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/include
-Iclasspath/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/native/fdlibm
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../boehm-gc/include
-I../boehm-gc/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/.././libjava/../gcc
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../libffi/include
-I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers
-Wswitch-enum -D_FILE_OFFSET_BITS=64 -Wextra -Wall -D_GNU_SOURCE
-DPREFIX=\"/usr/lib/gcj-4.2.0_beta20070307\"
-DTOOLEXECLIBDIR=\"/usr/lib/gcj-4.2.0_beta20070307/lib\"
-DJAVA_HOME=\"/usr/lib/gcj-4.2.0_beta20070307/jre\"
-DBOOT_CLASS_PATH=\"/usr/lib/gcj-4.2.0_beta20070307/jre/lib/rt.jar\"
-DJAVA_EXT_DIRS=\"/usr/lib/gcj-4.2.0_beta20070307/share/java/ext\"
-DGCJ_ENDORSED_DIRS=\"/usr/lib/gcj-4.2.0_beta20070307/share/java/gcj-endorsed\"
-DGCJ_VERSIONED_LIBDIR=\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307\"
-DPATH_SEPARATOR=\":\"
-DLIBGCJ_DEFAULT_DATABASE=\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307/classmap.db\"
-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=\"gcj-4.2.0-beta20070307/classmap.db\" -O2
-pipe -D_GNU_SOURCE -MT jni.lo -MD -MP -MF .deps/jni.Tpo -c
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/jni.cc
-fPIC -DPIC -o .libs/jni.o
depbase=`echo exception.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`; \
if /bin/sh ./libtool --mode=compile
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc/xgcc
-shared-libgcc
-B/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc
-nostdinc++
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src/.libs
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/bin/
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/lib/ -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/include -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/sys-include
-DHAVE_CONFIG_H -I.
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-I./include -I./gcj
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-Iinclude
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/include
-Iclasspath/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/native/fdlibm
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../boehm-gc/include
-I../boehm-gc/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/.././libjava/../gcc
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../libffi/include
-I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers
-Wswitch-enum -D_FILE_OFFSET_BITS=64 -Wextra -Wall -D_GNU_SOURCE
-DPREFIX="\"/usr/lib/gcj-4.2.0_beta20070307\""
-DTOOLEXECLIBDIR="\"/usr/lib/gcj-4.2.0_beta20070307/lib\""
-DJAVA_HOME="\"/usr/lib/gcj-4.2.0_beta20070307/jre\""
-DBOOT_CLASS_PATH="\"/usr/lib/gcj-4.2.0_beta20070307/jre/lib/rt.jar\""
-DJAVA_EXT_DIRS="\"/usr/lib/gcj-4.2.0_beta20070307/share/java/ext\""
-DGCJ_ENDORSED_DIRS="\"/usr/lib/gcj-4.2.0_beta20070307/share/java/gcj-endorsed\""
-DGCJ_VERSIONED_LIBDIR="\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307\""
-DPATH_SEPARATOR="\":\""
-DLIBGCJ_DEFAULT_DATABASE="\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307/classmap.db\""
-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"gcj-4.2.0-beta20070307/classmap.db\""
-O2 -pipe -D_GNU_SOURCE -MT exception.lo -MD -MP -MF "$depbase.Tpo" -c -o
exception.lo
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc;
\
then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo";
exit 1; fi
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc/xgcc
-shared-libgcc
-B/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/./gcc
-nostdinc++
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src
-L/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libstdc++-v3/src/.libs
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/bin/
-B/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/lib/ -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/include -isystem
/usr/lib/gcj-4.2.0_beta20070307/arm-iwmmxt-linux-gnueabi/sys-include
-DHAVE_CONFIG_H -I.
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-I./include -I./gcj
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava
-Iinclude
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/include
-Iclasspath/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/classpath/native/fdlibm
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../boehm-gc/include
-I../boehm-gc/include
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/libltdl
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/.././libjava/../gcc
-I/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/../libffi/include
-I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers
-Wswitch-enum -D_FILE_OFFSET_BITS=64 -Wextra -Wall -D_GNU_SOURCE
-DPREFIX=\"/usr/lib/gcj-4.2.0_beta20070307\"
-DTOOLEXECLIBDIR=\"/usr/lib/gcj-4.2.0_beta20070307/lib\"
-DJAVA_HOME=\"/usr/lib/gcj-4.2.0_beta20070307/jre\"
-DBOOT_CLASS_PATH=\"/usr/lib/gcj-4.2.0_beta20070307/jre/lib/rt.jar\"
-DJAVA_EXT_DIRS=\"/usr/lib/gcj-4.2.0_beta20070307/share/java/ext\"
-DGCJ_ENDORSED_DIRS=\"/usr/lib/gcj-4.2.0_beta20070307/share/java/gcj-endorsed\"
-DGCJ_VERSIONED_LIBDIR=\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307\"
-DPATH_SEPARATOR=\":\"
-DLIBGCJ_DEFAULT_DATABASE=\"/usr/lib/gcj-4.2.0_beta20070307/lib/gcj-4.2.0-beta20070307/classmap.db\"
-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=\"gcj-4.2.0-beta20070307/classmap.db\" -O2
-pipe -D_GNU_SOURCE -MT exception.lo -MD -MP -MF .deps/exception.Tpo -c
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc
-fPIC -DPIC -o .libs/exception.o
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:63:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:64:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:65:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:66:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:67:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:68:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:69:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:70:
error: ISO C++ forbids casting to an array type 'char [8]'
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:
In function 'void _Jv_Throw(java::lang::Throwable*)':
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:92:
error: invalid array assignment
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:
In function '_Unwind_Reason_Code __gcj_personality_v0(int, _Unwind_Action,
char*, _Unwind_Control_Block*, _Unwind_Context*)':
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:205:
error: '_URC_FATAL_PHASE1_ERROR' was not declared in this scope
/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/gcc-4.2-20070307/libjava/exception.cc:200:
warning: unused variable 'ip_before_insn'
{standard input}: Assembler messages:
{standard input}:2: Error: junk at end of line, first unrecognized character is
`*'
{standard input}:3: Error: junk at end of line, first unrecognized character is
`*'
{standard input}:4: Error: bad instruction `_zgan8__jarrayc1ev
*INTERNAL*=_ZN8__JArrayC1Ev*INTERNAL*'
make[3]: *** [exception.lo] Error 1
make[3]: Leaving directory
`/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libjava'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build/arm-iwmmxt-linux-gnueabi/libjava'
make[1]: *** [all-target-libjava] Error 2
make[1]: Leaving directory
`/home/tmp/portage/dev-java/gcj-4.2.0_beta20070307/work/build'
make: *** [bootstrap-lean] Error 2
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31325
More information about the Java-prs
mailing list