4.0.2/4.1 PATCH: Support amd64 libjava on Solaris 10/x86
Rainer Orth
ro@TechFak.Uni-Bielefeld.DE
Mon Jun 6 19:15:00 GMT 2005
I noticed that the amd64 libjava on Solaris 10/x86 doesn't compile:
/vol/gcc/obj/gcc-4.0.0-20050414/10-gcc-gas/gcc/xgcc -shared-libgcc -B/vol/gcc/obj/gcc-4.0.0-20050414/10-gcc-gas/gcc/ -nostdinc++ -L/vol/gcc/obj/gcc-4.0.0-20050414/10-gcc-gas/i386-pc-solaris2.10/amd64/libstdc++-v3/src -L/vol/gcc/obj/gcc-4.0.0-20050414/10-gcc-gas/i386-pc-solaris2.10/amd64/libstdc++-v3/src/.libs -B/vol/gcc/share/i386-pc-solaris2.10/bin/ -B/vol/gcc/share/i386-pc-solaris2.10/lib/ -isystem /vol/gcc/share/i386-pc-solaris2.10/include -isystem /vol/gcc/share/i386-pc-solaris2.10/sys-include -m64 -DHAVE_CONFIG_H -I. -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava -I./include -I./gcj -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava -Iinclude -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava/include -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava/../boehm-gc/include -I../boehm-gc/include -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava/libltdl -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava/libltdl -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava/.././libjava/../gcc -I/vol/gnu/src/g!
cc/gcc-4.0-branch-dist/libjava/../zlib -I/vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava/../libffi/include -I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -Wswitch-enum -D_FILE_OFFSET_BITS=64 -ffloat-store -fno-omit-frame-pointer -I/vol/X11/include -Wextra -Wall -D_GNU_SOURCE "-DPREFIX=\"/vol/gcc\"" "-DLIBDIR=\"/vol/gcc/lib\"" "-DJAVA_HOME=\"/vol/gcc\"" "-DBOOT_CLASS_PATH=\"/vol/gcc/share/java/libgcj-4.0.0.jar\"" "-DJAVA_EXT_DIRS=\"/vol/gcc/share/java/ext\"" "-DGCJ_ENDORSED_DIRS=\"/vol/gcc/share/java/gcj-endorsed\"" "-DLIBGCJ_DEFAULT_DATABASE=\"/vol/gcc/lib/gcj-4.0.0/classmap.db\"" "-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=\"gcj-4.0.0/classmap.db\"" "-DTOOLEXECLIBDIR=\"/vol/gcc/lib/amd64\"" -g -O2 -m64 -MT java/lang/natObject.lo -MD -MP -MF java/lang/.deps/natObject.Tpo -c /vol/gnu/src/gcc/gcc-4.0-branch-dist/libjava/java/lang/natObject.cc -fPIC -DPIC -o java/lang/.libs/natObject.o
[...]
natObject.s: Assembler messages:
natObject.s:945: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:1071: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:1224: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:1294: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:1636: Error: Incorrect register `%r12' used with `l' suffix
natObject.s:1711: Error: Incorrect register `%rsi' used with `l' suffix
natObject.s:1774: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:2231: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:2335: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:2525: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:3114: Error: Incorrect register `%rcx' used with `l' suffix
natObject.s:3510: Error: Incorrect register `%rsi' used with `l' suffix
natObject.s:3627: Error: Incorrect register `%rsi' used with `l' suffix
natObject.s:3814: Error: Incorrect register `%rdx' used with `l' suffix
natObject.s:3927: Error: Incorrect register `%rdx' used with `l' suffix
This happens because sysdep/i386/locks.h is used by default, which is of
course wrong for x86-64. The following trivial patch fixes this and allows
libjava to build both -m32 and -m64 (together with a quick hack to get
boehm-gc to compile for Solaris 10/amd64).
The testsuite results are currently terrible (all the execution tests fail,
probably due to boehm-gc not working).
Since this fixes a bootstrap failure, I'd like to apply it anyway to
mainline and 4.0 branch (once that reopens).
Bootstrapped on i386-pc-solaris2.10. Ok?
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Mon Jun 6 20:34:55 2005 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* configure.host: Handle Solaris 10/x86.
Index: libjava/configure.host
===================================================================
RCS file: /cvs/gcc/gcc/libjava/configure.host,v
retrieving revision 1.69
diff -u -p -r1.69 configure.host
--- libjava/configure.host 1 Jun 2005 22:55:07 -0000 1.69
+++ libjava/configure.host 6 Jun 2005 14:27:34 -0000
@@ -231,6 +231,10 @@ EOF
rm -f conftest conftest.c
fi
;;
+ i[34567]86-*-solaris2.1[0-9]* )
+ sysdeps_dir=x86-64
+ DIVIDESPEC=-f%{m32:no-}%{!m32:%{!m64:no-}}%{m64:}use-divide-subroutine
+ ;;
mips*-*-linux* )
sysdeps_dir=mips
can_unwind_signal=yes
More information about the Java-patches
mailing list