[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Used apt-get to obtain gcc-4.1 but it seems to favour x86-64 architecture



I am using Debian gnu/Linux on an Athlon-mp (dual-core, k7) and used  
Aptitude and Apt-get to upgrade my software recently.
 
This e-mail address is listed on the Aptitude screen as the  "Maintainer" for 
"gcc-4.1" (when pre-compiled and downloaded with  Aptitude).
 
The "gcc -v" is:
 
Target: i486-linux-gnu
Configured with: ../src/configure -v  
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr  --enable-shared --with-system-zlib 
--libexecdir=/usr/lib  --without-included-gettext --enable-threads=posix --enable-nls  
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu  
--enable-libstdcxx-debug --enable-mpfr --with-tune=i686  --enable-checking=release i4
86-linux-gnu
Thread model: posix
gcc version  4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
 
 
I am one of the people compiling and checking gcc-4_2-branch - I have  
compiled it many times but only recently with gcc-4.1 (obtained from you).
 
When I try to compile gcc-4_2-branch (20070427) I run into trouble that  
seems to involve the ABI of the system used to compiled the version of the GCC  
toolchain that you released. The above "gcc -v" makes no mention of multilibs or 
 -m64 but when I compile gcc-4_2-branch using your toolchain I run into 
trouble  with it thinking that I want 64bit code.
 
If I _DO_ ./configure gcc-4_2-branch with the parameter --enable-multilib  
then ./configure sets this in the makefile: "CFLAGS=-O2 -g -O2   -m64"  .
 
If I do _NOT_ use --enable-multilib then -m64 _still_ appears in some (but  
not all) the Makefiles.
 
After configuring (with no attempt to use a 64 bit ABI) and then typing  
"make" the compile gets as far as through all three stages and into the first  
library
(zlib) but then fails when it goes on to the next library  (libstdc++-v3).
 
Anyways, here is the make error that turns up, eventually.
 
make[6]: Entering directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3'
make "AR_FLAGS=rc"  "CC_FOR_BUILD=/usr/bin/gcc-4.1" 
"CC_FOR_TARGET=/opt/gcc-4_2-build/./gcc/xgcc  -B/opt/gcc-4_2-build/./gcc/ -B/usr//bin/ -B/usr//lib/ 
-isystem /usr//include  -isystem /usr//sys-include" "CFLAGS=-O2 -g -O2   -m64" 
"CXXFLAGS=-g  -O2  -D_GNU_SOURCE  -m64" "CFLAGS_FOR_BUILD=-g -O2"  
"CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c"  
"INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c"  
"INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=-m64" "LIBCFLAGS=-O2 -g  -O2   -m64" 
"LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make"  "MAKEINFO=makeinfo --split-size=5000000  
--split-size=5000000     " "PICFLAG=" "PICFLAG_FOR_TARGET="  "SHELL=/bin/sh" 
"RUNTESTFLAGS=" "exec_prefix=/usr" "infodir=/usr/share/info"  "libdir=/usr/lib" 
"includedir=/usr/include" "prefix=/usr" "tooldir=/usr/"  
"gxx_include_dir=/usr/include/c++/4.2" "AR=ar" "AS=/opt/gcc-4_2-build/./gcc/as"  
"LD=/opt/gcc-4_2-build/./gcc/collect-ld" "RANLIB=ranlib"  "NM=/opt/gcc-4_2-build/./gcc/nm" 
"NM_FOR_BUILD=" "NM_FOR_TARGET=nm" "DESTDIR="  "WERROR=" all-recursive
make[7]: Entering directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3'
Making all in  include
make[8]: Entering directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/include'
make[8]:  Nothing to be done for `all'.
make[8]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/include'
Making all in  libsupc++
make[8]: Entering directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/libsupc++'
/bin/sh  ../libtool --tag CXX --tag disable-shared --mode=compile  
/opt/gcc-4_2-build/./gcc/xgcc -shared-libgcc -B/opt/gcc-4_2-build/./gcc  -nostdinc++ 
-L/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/src  
-L/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/src/.libs -B/usr//bin/  -B/usr//lib/ 
-isystem /usr//include -isystem /usr//sys-include  -m64  
-I/root/downloads/gcc-4_2-branch/libstdc++-v3/../gcc  
-I/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/include/  -I/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/include  
-I/root/downloads/gcc-4_2-branch/libstdc++-v3/libsupc++   
-fno-implicit-templates  -Wall -Wextra -Wwrite-strings -Wcast-qual   
-fdiagnostics-show-location=once    -g -O2   -D_GNU_SOURCE  -m64  -c -o del_op.lo  
/root/downloads/gcc-4_2-branch/libstdc++-v3/libsupc++/del_op.cc
/opt/gcc-4_2-build/./gcc/xgcc  -shared-libgcc -B/opt/gcc-4_2-build/./gcc 
-nostdinc++  -L/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/src  
-L/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/src/.libs -B/usr//bin/  
-B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -m64  
-I/root/downloads/gcc-4_2-branch/libstdc++-v3/../gcc  
-I/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/include/  
-I/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/include  -I/root/downloads/gcc-4_2-branch/libstdc++-v3/libsupc++ 
-fno-implicit-templates  -Wall -Wextra -Wwrite-strings -Wcast-qual 
-fdiagnostics-show-location=once -g  -O2 -D_GNU_SOURCE -m64 -c  
/root/downloads/gcc-4_2-branch/libstdc++-v3/libsupc++/del_op.cc -o  del_op.o
/root/downloads/gcc-4_2-branch/libstdc++-v3/libsupc++/del_op.cc:1:  sorry, 
unimplemented: 64-bit mode not compiled in
make[8]: *** [del_op.lo]  Error 1
make[8]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3/libsupc++'
make[7]: ***  [all-recursive] Error 1
make[7]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3'
make[6]: *** [all]  Error 2
make[6]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/64/libstdc++-v3'
make[5]: ***  [multi-do] Error 1
make[5]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/libstdc++-v3'
make[4]: *** [all-multi]  Error 2
make[4]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/libstdc++-v3'
make[3]: ***  [all-recursive] Error 1
make[3]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/libstdc++-v3'
make[2]: *** [all] Error  2
make[2]: Leaving directory  
`/opt/gcc-4_2-build/i686-pc-linux-gnu/libstdc++-v3'
make[1]: ***  [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory  `/opt/gcc-4_2-build'
make: *** [all] Error 2

The ./configure script (of gcc-4_2-branch) seems to detect the ability to  
produce 64 bit code and throws some "-m64" 's into some of the Makefiles  and
a few of the created libtools.
 
Hand editing the Makefiles to remove all "-m64" 's and then recompiling  
works for a while and then fails here:
 
/usr/bin/gcc-4.1 -shared  .libs/xmlj_dom.o .libs/xmlj_error.o  
.libs/xmlj_io.o .libs/xmlj_node.o .libs/xmlj_sax.o .libs/xmlj_transform.o  .libs/xmlj_util.o 
.libs/xmlj_xpath.o  ../../../native/jni/classpath/.libs/jcl.o  
/usr/lib/libxslt.so -L/usr/lib  /usr/lib/libxml2.so  -Wl,-soname -Wl,libxmlj.so.0 -o  
.libs/libxmlj.so.0.0.0
/usr/bin/ld: warning: i386:x86-64 architecture of  input file 
`.libs/xmlj_dom.o' is incompatible with i386 output
/usr/bin/ld:  warning: i386:x86-64 architecture of input file 
`.libs/xmlj_error.o' is  incompatible with i386 output
/usr/bin/ld: warning: i386:x86-64 architecture  of input file 
`.libs/xmlj_io.o' is incompatible with i386 output
/usr/bin/ld:  warning: i386:x86-64 architecture of input file 
`.libs/xmlj_node.o' is  incompatible with i386 output
/usr/bin/ld: warning: i386:x86-64 architecture  of input file 
`.libs/xmlj_sax.o' is incompatible with i386  output
/usr/bin/ld: warning: i386:x86-64 architecture of input file  
`.libs/xmlj_transform.o' is incompatible with i386 output
/usr/bin/ld:  warning: i386:x86-64 architecture of input file 
`.libs/xmlj_util.o' is  incompatible with i386 output
/usr/bin/ld: warning: i386:x86-64 architecture  of input file 
`.libs/xmlj_xpath.o' is incompatible with i386  output
/usr/bin/ld: warning: i386:x86-64 architecture of input file  
`../../../native/jni/classpath/.libs/jcl.o' is incompatible with i386  output
 
 
I have had NO trouble compiling gcc-4_2-branch (on Debian Linux) with  gcc 
versions:
 
gcc version 3.3.5 (Debian 1:3.3.5-13)
gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-13sarge1)
gcc version 3.4.2 (mingw-special)   -    /usr/bin/i586-mingw32msvc-gcc
gcc version 4.2.0 20070413 (prerelease)
 
 
I have had NO trouble compiling gcc-4_2-branch (on WinXP Cygwin) with gcc  
versions:
gcc version 4.1.1 (release)
gcc version 4.2.0 20061225 (prerelease)
 
I can even compile gcc-4_2-branch (newest version) with one of the  above 
working compilers and install it as the main system compiler; then  use
that to compile gcc-4_2-branch without any problems. What I am unable to do  
is get the version that you released (4.1.2) to work. I do understand
that it is a pre-release but I believe that an "official" 4.1.2 is avaiable  
(don't know if it shares the -m64 bug).
 
Most people who apt-get from the _http://ftp.us.debian.org/debian/dists/  ? 
/main/binary-i386/_ (http://ftp.us.debian.org/debian/dists/ ? 
/main/binary-i386/)  directory would NOT want -m64 UNLESS they  specifically asked for it on 
the command line. If the people who created the  binaries configured on an 
Opteron (K8) then they might have inadvertantly  allowed a default setting to be 
used by NOT specifically requesting a -m32  ABI.
 
You might consider an "official" version of 4.1.2 (from gnu.org) for your  
archives at _ftp.us.debian.org_ (ftp://ftp.us.debian.org)  (and  mirrors). If 
you _do_ like a pre-release version then your might want to whip up  a 4.2.0 
from the SVN (it really works quite well).
 
Please check / fix the version on your archive. I am going to remove it  from 
my HD and apt-get a new compiled version from elsewhere.
 
Thanks,
Rob
 



   



Reply to: