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