------- 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

Reply via email to