[Bug libgcj/38685] classmap.db is zero bytes long in 64 bit directory
rob1weld at aol dot com
gcc-bugzilla@gcc.gnu.org
Thu Jan 22 14:50:00 GMT 2009
------- Comment #7 from rob1weld at aol dot com 2009-01-22 14:50 -------
Self Confirmed. Attempting to execute 64 bit code when booted 32 bit:
# gmake
...
/bin/sh ./libtool --tag=GCJ --mode=link /usr/share/src/gcc_build/gcc/gcj
-B/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/
-B/usr/share/src/gcc_build/gcc/
-L/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava -ffloat-store
-fomit-frame-pointer -Usun -g -O2 -m64 -m64 -o gjdoc
--main=gnu.classpath.tools.gjdoc.Main -Djava.class.path= -rpath
/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/amd64 -shared-libgcc
-L/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/.libs
libgcj-tools.la
libtool: link: /usr/share/src/gcc_build/gcc/gcj
-B/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/
-B/usr/share/src/gcc_build/gcc/ -ffloat-store -fomit-frame-pointer -Usun -g -O2
-m64 -m64 -o .libs/gjdoc --main=gnu.classpath.tools.gjdoc.Main
-Djava.class.path= -shared-libgcc
-L/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/.libs
-L/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava
./.libs/libgcj-tools.so -Wl,-rpath
-Wl,/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/amd64
: gmake ; exec true "AR_FLAGS=cr" "CC_FOR_BUILD=gcc" "CFLAGS=-g -O2 -m64"
"CXXFLAGS=-g -O2 -m64" "CPPFLAGS=" "CFLAGS_FOR_BUILD=-g -O2"
"CFLAGS_FOR_TARGET=-g -O2" "INSTALL=/usr/local/bin/install -c"
"INSTALL_DATA=/usr/local/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/local/bin/install -c"
"INSTALL_SCRIPT=/usr/local/bin/install -c" "GCJFLAGS=-g -O2 -m64"
"LDFLAGS=-m64" "LIBCFLAGS=-g -O2 -m64" "LIBCFLAGS_FOR_TARGET=-g -O2"
"MAKE=gmake" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
"exec_prefix=/usr/local" "infodir=/usr/local/info" "libdir=/usr/local/lib"
"mandir=/usr/local/man" "prefix=/usr/local"
"gxx_include_dir=/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/include/c++"
"AR=/usr/local/i386-pc-solaris2.11/bin/ar"
"AS=/usr/share/src/gcc_build/./gcc/as"
"LD=/usr/share/src/gcc_build/./gcc/collect-ld" "LIBCFLAGS=-g -O2 -m64"
"NM=/usr/share/src/gcc_build/./gcc/nm" "PICFLAG="
"RANLIB=/usr/local/i386-pc-solaris2.11/bin/ranlib" "DESTDIR="
"JAR=/usr/share/src/gcc_build/i386-pc-solaris2.11/libjava/scripts/jar" DO=all
multi-do
./gcj-dbtool -n classmap.db || touch classmap.db
exec:
/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/.libs/gcj-dbtool:
cannot execute [Exec format error]
cp classpath/tools/tools.zip libgcj-tools-4.4.0.jar
gmake[5]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava'
gmake[4]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava'
gmake[3]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libjava'
Making all in libltdl
gmake[3]: Entering directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libjava/libltdl'
gmake all-am
gmake[4]: Entering directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libjava/libltdl'
...
We need 'gcj-dbtool' to be compiled 32 bit when building the 64 bit library
and booted in 32 bit mode to avoid the "dbtool: cannot execute [Exec format
error]".
Until we have OSes than will _only_ boot 64 bit and will not run 32 bit
code (in which case they would not build the other library and this Bug
ought not to reoccur) we can build the program 32 bit regardless of which
library or boot mode (32 or 64).
Rob
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38685
More information about the Java-prs
mailing list