From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22069 invoked by alias); 22 Jan 2009 14:50:51 -0000 Received: (qmail 22046 invoked by uid 48); 22 Jan 2009 14:50:49 -0000 Date: Thu, 22 Jan 2009 14:50:00 -0000 Message-ID: <20090122145049.22045.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libgcj/38685] classmap.db is zero bytes long in 64 bit directory In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: java-prs@gcc.gnu.org From: "rob1weld at aol dot com" Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org X-SW-Source: 2009-q1/txt/msg00046.txt.bz2 ------- 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