Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 78652 - gcc doesn't compile with USE=gcj on amd64 2005.0
Summary: gcc doesn't compile with USE=gcj on amd64 2005.0
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Jeremy Huddleston (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-19 04:37 UTC by Marcus Meng
Modified: 2005-02-06 22:04 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
The emerge output (gcc-3.4.3-r1-assembler-errors.txt,68.61 KB, text/plain)
2005-01-27 03:01 UTC, Rutger Hendriks
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marcus Meng 2005-01-19 04:37:15 UTC
I set up the 2005.0 profile as detailed on http://www.gentoo.org/proj/en/base/amd64/2005.0-upgrade-amd64.xml

At the time, I had gcc-3.4.3. I decided to upgrade to 3.4.3-r1, and it crashes with this error:

make[3]: Entering directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/32/zlib'
gcc -DPACKAGE=\"zlib\" -DVERSION=\"1.1.4\" -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1  -I. -I/var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib      -O2 -march=athlon64 -pipe  -m32 -c /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib/adler32.c
{standard input}: Assembler messages:
{standard input}:8: Error: suffix or operands invalid for `movzwq'
{standard input}:10: Error: bad register name `%r8d'
{standard input}:17: Error: bad register name `%r9'
{standard input}:20: Error: bad register name `%r8d'
{standard input}:22: Error: bad register name `%r8d'
{standard input}:23: Error: bad register name `%r8d'
{standard input}:27: Error: `(%rsi)' is not a valid 32 bit base/index expression
{standard input}:29: Error: `1(%rsi)' is not a valid 32 bit base/index expression
{standard input}:32: Error: `2(%rsi)' is not a valid 32 bit base/index expression
{standard input}:35: Error: `3(%rsi)' is not a valid 32 bit base/index expression
{standard input}:38: Error: `4(%rsi)' is not a valid 32 bit base/index expression
{standard input}:41: Error: `5(%rsi)' is not a valid 32 bit base/index expression
{standard input}:44: Error: `6(%rsi)' is not a valid 32 bit base/index expression
{standard input}:47: Error: `7(%rsi)' is not a valid 32 bit base/index expression
{standard input}:50: Error: `8(%rsi)' is not a valid 32 bit base/index expression
{standard input}:53: Error: `9(%rsi)' is not a valid 32 bit base/index expression
{standard input}:56: Error: `10(%rsi)' is not a valid 32 bit base/index expression
{standard input}:59: Error: `11(%rsi)' is not a valid 32 bit base/index expression
{standard input}:62: Error: `12(%rsi)' is not a valid 32 bit base/index expression
{standard input}:65: Error: `13(%rsi)' is not a valid 32 bit base/index expression
{standard input}:68: Error: `14(%rsi)' is not a valid 32 bit base/index expression
{standard input}:71: Error: `15(%rsi)' is not a valid 32 bit base/index expression
{standard input}:84: Error: `(%rsi)' is not a valid 32 bit base/index expression
{standard input}:91: Error: suffix or operands invalid for `movq'
{standard input}:92: Error: bad register name `%r9'
{standard input}:93: Error: suffix or operands invalid for `movq'
{standard input}:97: Error: suffix or operands invalid for `movq'
{standard input}:101: Error: bad register name `%r9'
{standard input}:102: Error: suffix or operands invalid for `movq'
{standard input}:109: Error: bad register name `%r8d'
{standard input}:112: Error: suffix or operands invalid for `movq'
make[3]: *** [adler32.o] Error 1
make[3]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/32/zlib'
make[2]: *** [multi-do] Error 1
make[2]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/zlib'
make[1]: *** [all-multi] Error 2
make[1]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/zlib'
make: *** [all-zlib] Error 2

!!! ERROR: sys-devel/gcc-3.4.3-r1 failed.
!!! Function gcc_do_make, Line 1067, Exitcode 2
!!! make failed with profiledbootstrap
!!! If you need support, post the topmost build error, NOT this status message.

Reproducible: Always
Steps to Reproduce:
1. Set up 2005.0 profile.
2. emerge gcc

Actual Results:  
It crashed with the error mentioned in the details.

Expected Results:  
It should have emerged correctly.

emerge info output:

Portage 2.0.51-r13 (default-linux/amd64/2005.0, gcc-3.4.3,
glibc-2.3.4.20041102-r0, 2.6.10-nitro1 x86_64)
=================================================================
System uname: 2.6.10-nitro1 x86_64 AMD Athlon(tm) 64 Processor 3200+
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.3.4 [2.3.4 (#1, Dec 26 2004, 11:54:56)]
dev-lang/python:     2.3.4
sys-devel/autoconf:  2.59-r5
sys-devel/automake:  1.8.5-r1
sys-devel/binutils:  2.15.90.0.1.1-r3
sys-devel/libtool:   1.5.2-r7
virtual/os-headers:  2.6.8.1-r4
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=athlon64 -mmmx -m3dnow -msse2 -mfpmath=sse,387 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=athlon64 -mmmx -m3dnow -msse2 -mfpmath=sse,387 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox"
GENTOO_MIRRORS="http://mirror.averse.net/pub/gentoo/
ftp://mirror.averse.net/pub/gentoo http://mymirror.asiaosc.org/gentoo/ 
http://gentoo.scphost.com http://www.zentek-international.com/mirrors/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/overlays/portage /usr/local/overlays/bmg-main
/usr/local/overlays/fluidportage/trunk"
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
USE="amd64 X aac alsa anthy audiofile berkdb canna cjk crypt cups curl dga
directfb fam fbcon flac gdbm gif gnome gpm gstreamer gtk gtk2 imap immqt
immqt-bc ipv6 jack java jpeg libclamav mad mysql ncurses nls nntp nptl nptlonly
oggvorbis opengl pam perl php png python qt readline samba sdl skey slang spell
ssl tcltk tetex tiff truetype unicode xml xml2 xprint xv zlib"
Unset:  LDFLAGS
Comment 1 Marcus Meng 2005-01-25 06:03:35 UTC
I took out fortran, gcj, gtkj, and objc, and now my error message has transformed into:

Code:
/usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../libc.so when searching for -lc
/usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../libc.a when searching for -lc
/usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
/usr/x86_64-pc-linux-gnu/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
make[3]: *** [32/libgcc_s_32.so] Error 1
make[3]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
make[2]: *** [stmp-multilib] Error 2
make[2]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
make[1]: *** [stage1_build] Error 2
make[1]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
make: *** [profiledbootstrap] Error 2

!!! ERROR: sys-devel/gcc-3.4.3-r1 failed.
!!! Function gcc_do_make, Line 1074, Exitcode 2
!!! make failed with profiledbootstrap
!!! If you need support, post the topmost build error, NOT this status message.


/usr/lib/libc.so is also kinda wierd. I'm not sure if it's supposed to be like this, but it's an executable text file that contains:

Code:
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )


Naturally, I can't execute that, though /lib/libc.so.6 runs fine and dumps out the usual information:

GNU C Library 20041102 release version 2.3.4, by Roland McGrath et al.
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.4.3  (Gentoo Linux 3.4.3, HTB-1.00).
Compiled on a Linux 2.6.8 system on 2005-01-25.
Available extensions:
        GNU libio by Per Bothner
        crypt add-on version 2.1 by Michael Glad and others
        Native POSIX Threads Library by Ulrich Drepper et al
        The C stubs add-on version 2.1.2.
        GNU Libidn by Simon Josefsson
        BIND-8.2.3-T5B
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
Comment 2 Rutger Hendriks 2005-01-26 02:01:02 UTC
Identical problems here, both on normal emerge of gcc and on contents of /usr/lib/libc.so

Since /usr/lib/libc.so links to /usr/lib64/libc.so and since that belongs to sys-libs/glibc I tried reinstalling that, but the contents of libc.so is still the 5 text lines.
I guess glibc is to blame here?
Comment 3 Rutger Hendriks 2005-01-26 04:17:52 UTC
I was thinking it might be a problem with other stuff on my pc (since glibc gives a weird /usr/lib/libc.so) therefore I emerge'd -e system and all goes well until it comes to gcc (which is around package 75 or so) and then the same file gives an error (adler32.c) but it is different now, so it seems I getting somewhere
We might just have 1 'wrong' package installed...
oh well, actually I don't know :P

anyways, here is the output now:

make[3]: Entering directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/32/zlib'
gcc -DPACKAGE=\"zlib\" -DVERSION=\"1.1.4\" -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1  -I. -I/var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib      -O2 -march=k8 -pipe  -m32 -c /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib/adler32.c
{standard input}: Assembler messages:
{standard input}:8: Error: bad register name `%rcx'
{standard input}:9: Error: bad register name `%rdi'
{standard input}:10: Error: bad register name `%r8d'
{standard input}:12: Error: bad register name `%rsi'
{standard input}:17: Error: bad register name `%r9'
{standard input}:20: Error: bad register name `%r8d'
{standard input}:22: Error: bad register name `%r8d'
{standard input}:23: Error: bad register name `%r8d'
{standard input}:27: Error: bad register name `%rsi)'
{standard input}:28: Error: bad register name `%rax'
{standard input}:29: Error: bad register name `%rsi)'
{standard input}:30: Error: bad register name `%rcx'
{standard input}:31: Error: bad register name `%rax'
{standard input}:32: Error: bad register name `%rsi)'
{standard input}:33: Error: bad register name `%rcx'
{standard input}:34: Error: bad register name `%rax'
{standard input}:35: Error: bad register name `%rsi)'
{standard input}:36: Error: bad register name `%rcx'
{standard input}:37: Error: bad register name `%rax'
{standard input}:38: Error: bad register name `%rsi)'
{standard input}:39: Error: bad register name `%rcx'
{standard input}:40: Error: bad register name `%rax'
{standard input}:41: Error: bad register name `%rsi)'
{standard input}:42: Error: bad register name `%rcx'
{standard input}:43: Error: bad register name `%rax'
{standard input}:44: Error: bad register name `%rsi)'
{standard input}:45: Error: bad register name `%rcx'
{standard input}:46: Error: bad register name `%rax'
{standard input}:47: Error: bad register name `%rsi)'
{standard input}:48: Error: bad register name `%rcx'
{standard input}:49: Error: bad register name `%rax'
{standard input}:50: Error: bad register name `%rsi)'
{standard input}:51: Error: bad register name `%rcx'
{standard input}:52: Error: bad register name `%rax'
{standard input}:53: Error: bad register name `%rsi)'
{standard input}:54: Error: bad register name `%rcx'
{standard input}:55: Error: bad register name `%rax'
{standard input}:56: Error: bad register name `%rsi)'
{standard input}:57: Error: bad register name `%rcx'
{standard input}:58: Error: bad register name `%rax'
{standard input}:59: Error: bad register name `%rsi)'
{standard input}:60: Error: bad register name `%rcx'
{standard input}:61: Error: bad register name `%rax'
{standard input}:62: Error: bad register name `%rsi)'
{standard input}:63: Error: bad register name `%rcx'
{standard input}:64: Error: bad register name `%rax'
{standard input}:65: Error: bad register name `%rsi)'
{standard input}:66: Error: bad register name `%rcx'
{standard input}:67: Error: bad register name `%rax'
{standard input}:68: Error: bad register name `%rsi)'
{standard input}:69: Error: bad register name `%rcx'
{standard input}:70: Error: bad register name `%rax'
{standard input}:71: Error: bad register name `%rsi)'
{standard input}:72: Error: bad register name `%rsi'
{standard input}:73: Error: bad register name `%rcx'
{standard input}:74: Error: bad register name `%rax'
{standard input}:75: Error: bad register name `%rcx'
{standard input}:84: Error: bad register name `%rsi)'
{standard input}:85: Error: bad register name `%rsi'
{standard input}:86: Error: bad register name `%rax'
{standard input}:87: Error: bad register name `%rcx'
{standard input}:91: Error: bad register name `%rcx'
{standard input}:92: Error: bad register name `%r9'
{standard input}:93: Error: bad register name `%rcx'
{standard input}:94: Error: bad register name `%rdx'
{standard input}:95: Error: bad register name `%rax'
{standard input}:96: Error: bad register name `%rax'
{standard input}:97: Error: bad register name `%rdi'
{standard input}:98: Error: bad register name `%rdx'
{standard input}:99: Error: bad register name `%rdx'
{standard input}:100: Error: bad register name `%rdx'
{standard input}:101: Error: bad register name `%r9'
{standard input}:102: Error: bad register name `%rdi'
{standard input}:103: Error: bad register name `%rdx'
{standard input}:104: Error: bad register name `%rax'
{standard input}:105: Error: bad register name `%rax'
{standard input}:106: Error: bad register name `%rdx'
{standard input}:107: Error: bad register name `%rdx'
{standard input}:108: Error: bad register name `%rdx'
{standard input}:109: Error: bad register name `%r8d'
{standard input}:112: Error: bad register name `%rdi'
{standard input}:113: Error: bad register name `%rax'
{standard input}:114: Error: bad register name `%rcx'
make[3]: *** [adler32.o] Error 1
make[3]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/32/zlib'
make[2]: *** [multi-do] Error 1
make[2]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/zlib'
make[1]: *** [all-multi] Error 2
make[1]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/zlib'
make: *** [all-zlib] Error 2

!!! ERROR: sys-devel/gcc-3.4.3-r1 failed.
!!! Function gcc_do_make, Line 1074, Exitcode 2
!!! make failed with profiledbootstrap
!!! If you need support, post the topmost build error, NOT this status message.
Comment 4 Marcus Meng 2005-01-26 04:22:42 UTC
I think I may have found a workaround. I downloaded the new glibc lib32s from http://mymirror.asiaosc.org/gentoo/releases/amd64/2005.0/profile_update/glibc-2.3.4.20041102-lib32.tar.bz2, unpacked them into the root directory, took "gcj" out of gcc's USE flags, and recompiled. It works now... I've got 3.4.3-r1 installed fine.

The assembler errors, if I had to guess, have something to do with GCJ. The incompatible .so errors were probably something to do with the new lib32 stuff that the 2005.0 profile update provides.

Perhaps someone else can try this to confirm if this does help?
Comment 5 Mike Doty (RETIRED) gentoo-dev 2005-01-26 05:58:12 UTC
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )

^^^that is valid syntax inside a .so

take a look at section 5.3 at http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/miscellaneous.html
Comment 6 Rutger Hendriks 2005-01-26 06:28:05 UTC
Ah Mike, didn't know that, thanx for pointing it out
with respect to the workaround, does this allow you to re-emerge gcc?
Comment 7 Mike Doty (RETIRED) gentoo-dev 2005-01-26 06:30:31 UTC
for the record, I'm not saying that the contents are proper, just that the syntax is.  I would have expected /usr/lib64 instead of /usr/lib, but I'm still on 2004.3
Comment 8 Marcus Meng 2005-01-26 06:31:27 UTC
Replying to #6:

Apparantly so. I've got GCC running fine on my computer now, so it seems to have worked.
Comment 9 Rutger Hendriks 2005-01-26 06:52:27 UTC
Replying to comment 7:
/lib is actually a symlink to /lib64
same goes for /usr/lib, it is a symlink to /usr/lib64

comment 8:
what this means then, is that the upgrade to 2005.0 actually didn't go as planned? and you have sort of redone it and now it works?
Okay, trying to redo it myself....it wants to recompile glibc (that must be the 4rd time already today:P) so will take a while, but I will get back with the results
Comment 10 Rutger Hendriks 2005-01-26 09:30:05 UTC
Okay, the Makefile for the profile update to 2005.0 finished, but emerging gcc-3.4.3-r1 still gives the bad register name errors detailed in comment 3

Comment 11 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-26 21:36:43 UTC
Rutger, please provide more context.  When is it trying to run:
gcc -DPACKAGE=\"zlib\" -DVERSION=\"1.1.4\" -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1  -I. -I/var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib      -O2 -march=k8 -pipe  -m32 -c /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib/adler32.c

That command line is NOT correct.  It should never be running gcc with -m32 as an argument. It should be running xgcc with -m32 as the argument.
Comment 12 Rutger Hendriks 2005-01-27 03:01:51 UTC
Created attachment 49641 [details]
The emerge output

Since the error comes up already in the beginning, just after some configure
steps, I've included it all :)

In short I get it in "Configuring in zlib" when configure is running in
multilib subdirs 32


# emerge info
Portage 2.0.51-r15 (default-linux/amd64/2005.0, gcc-3.4.3,
glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r14 x86_64)
=================================================================
System uname: 2.6.9-gentoo-r14 x86_64 AMD Athlon(tm) 64 Processor 3200+
Gentoo Base System version 1.4.16
Python: 	     dev-lang/python-2.3.4 [2.3.4 (#1, Jan 26 2005, 12:42:30)]
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[disabled]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.4
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.8.5-r2, 1.9.3, 1.6.3, 1.7.9, 1.4_p6, 1.8.5-r1
sys-devel/binutils:  2.15.92.0.2-r1
sys-devel/libtool:   1.5.2-r7
virtual/os-headers:  2.6.8.1-r4
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=k8 -fomit-frame-pointer -momit-leaf-frame-pointer -fweb
-frename-registers -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config
/usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown
/usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=k8 -fomit-frame-pointer -momit-leaf-frame-pointer -fweb
-frename-registers -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig candy ccache distlocks moo sandbox"
GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo
ftp://ftp.tiscali.nl/pub/mirror/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage"
USE="amd64 S3TC X aac aalib acpi acpi4linux alsa arts asterisk audiofile avi
ba-completion bash-completion berkdb bitmap-fonts cddb cdparanoia cdr chroot
crypt cups dba dga dio divx4linux dmx dts dv dvd dvdr dvdread edl encode esd
f77 faac faad fam fbcon fbdev festival ffmpeg fftw flac foomaticdb fortran ftp
gcj gd gdbm ggi gif gphoto2 gpm gs gstreamer gtk gtk2 icq ieee1394 imagemagick
imap imlib imlib2 ipv6 irmc jabber java javascript joystick jp2 jpeg junit
kdelcd lcms ldap libcaca libwww lirc live lzo lzw lzw-tiff mad makecheck mbox
mikmod mime mng motif mozaccess mozcalendar mozilla mozp3p mozsvg mozxmlterm
mpeg mpeg4 mpi mplayer msn multislot mysql mythtv nas ncurses net nethack
network nls nowin nptl nptlonly nvidia oav objc offensive oggvorbis opengl opie
oss pam pda perl pic plotutils png posix ppds python qt quicktime readline rtc
samba sasl sdl slang slp smime speex spell ssl svg tcltk tcpd tetex theora tiff
transcode truetype truetype-fonts type1-fonts usb userlocales v4l v4l2 videos
wmf xine xml xml2 xmms xosd xpm xrandr xscreensaver xv xvid xvmc yv12 zlib zvbi
linguas_nl linguas_en_GB"
Unset:	ASFLAGS, CBUILD, CTARGET, LDFLAGS
Comment 13 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-27 03:13:49 UTC
Ok, this looks related to gcj...

I'm surprised that you're not getting an error from gcc about -m64 and -m32 being used at the same time...
Comment 14 Rutger Hendriks 2005-01-27 04:12:37 UTC
Are they being used at the same time then? In the command that fails I only see -m32

<snip>
gcc -DPACKAGE=\"zlib\" -DVERSION=\"1.1.4\" -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1  -I. -I/var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib      -O2 -march=k8 -pipe  -m32 -c /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib/adler32.c
{standard input}: Assembler messages:
{standard input}:8: Error: bad register name `%rcx
<snip>

If I understand correctly, both a 32 bit and a 64 bit version will be compiled in this 2005.0 profile right? And this looks like the 32 bit version uses bad register names (shot in the dark: are these the added 64-bit registers?)

Is there any gcc output you want?
Comment 15 Rutger Hendriks 2005-01-27 04:15:09 UTC
Could you give a hint as to why gcj seems to be the problem? That's the java compiler, I do not see any mention of java around the error message ?
Comment 16 Marcus Meng 2005-01-27 04:19:25 UTC
Well, I really know nothing about this, but my guess is that since zlib deals with compression, the only thing that makes sense is java since java compresses .jar files. None of the other compilers in there, as I'm aware of, needs that. Eh. So that would be a completely random thought.
Comment 17 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-27 10:14:00 UTC
Rutger: It doesn't happen with USE=-gcj, that code only gets compiled when you ask for gcj.  GCJ is mentioned in your debug output.

-m64 is implied becasue it is executing gcc directly which appends -m64 is ABI=amd64 (which it does in this case).

I think the best solution is to change the build order and have these gcj support libraries built using xgcc or just use ones already on the system...
Comment 18 Rutger Hendriks 2005-01-27 10:58:40 UTC
I've tried USE=-gcj emerge -av gcc and that is compiling now happily. Thanks!
Guess I'll have to do without gcj for a while until this is resolved (not a big problem for me atm, but ... :P )
Comment 19 Rutger Hendriks 2005-01-27 12:03:53 UTC
Okay :)
the USE=-gcj emerge gcc has finished succesfully, i.e. didn't end prematurely. HOWEVER, I did see some error messages flying by (I have good eyes (when I put my lenses in:P) and a scroll-lock key:P)
I thought nothing of the errors, until gcc was merged and I tried to start kuickshow (the kde image viewer) and emerge -e system
Both complained about libgcc_s:

=============================
kuickshow: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
=============================

emerge -ea system somewhere in ncurses:
=============================
ranlib ../lib/libncurses++.a
x86_64-pc-linux-gnu-g++  -o demo ../obj_s/demo.o -L../lib -lncurses++ -L../lib -lform -lmenu -lpanel -lncurses -Wl,-rpath,/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/lib  -I../c++ -I../include -I. -DHAVE_CONFIG_H -I. -I../include  -D_GNU_SOURCE -DNDEBUG -O2 -march=k8 -fomit-frame-pointer -momit-leaf-frame-pointer -fweb -frename-registers -pipe -fPIC -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make[1]: *** [demo] Error 1
make[1]: Leaving directory `/var/tmp/portage/ncurses-5.4-r5/work/ncurses-5.4/c++'
make: *** [all] Error 2

!!! ERROR: sys-libs/ncurses-5.4-r5 failed.
!!! Function src_compile, Line 81, Exitcode 2
!!! make failed
!!! If you need support, post the topmost build error, NOT this status message.
=============================


Scrolling back to the emerge of gcc-3.4.3-r1 shows that the error messages were actually (among other things) about libgcc_s
Here are (some of?) the error messages that were output in USE=-gcj emerge gcc:


=============================
make[2]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
echo timestamp > stage1_build
echo stage1_build > stage_last
make stage1
make[2]: Entering directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
make -f libgcc.mk libgcc-stage-start stage=stage1
make[3]: Entering directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
for dir in libgcc 32 libgcc/32; do \
  if [ -d stage1/$dir ]; then true; else /bin/sh /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/gcc/mkinstalldirs stage1/$dir; fi; \
done
mkdir -p -- stage1/libgcc
mkdir -p -- stage1/32
mkdir -p -- stage1/libgcc/32
for dir in libgcc 32 libgcc/32; do \
  mv $dir/*.o stage1/$dir; \
  mv $dir/*.os stage1/$dir || true; \
  test ! -f $dir/stacknote.s || mv $dir/stacknote.s stage1/$dir; \
  test ! -f $dir/libgcc.a || mv $dir/lib* stage1/$dir; \
done
mv: cannot stat `libgcc/*.os': No such file or directory
mv: cannot stat `32/*.os': No such file or directory
mv: cannot stat `libgcc/32/*.os': No such file or directory
make[3]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
subdirs="cp f objc"; for dir in $subdirs; \
 do \
   if [ -d stage1/$dir ] ; then true ; else mkdir stage1/$dir ; fi ; \
 done
mv specs stage1/specs
mv *.o insn-flags.h insn-config.h insn-codes.h insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c insn-attr.h insn-attrtab.c insn-opinit.c insn-constants.h tm-preds.h tree-check.h insn-conditions.c min-insn-modes.c insn-modes.c insn-modes.h s-flags s-config s-codes s-mlib s-genrtl s-modes s-gtype gtyp-gen.h s-output s-recog s-emit s-extract s-peep s-check s-conditions s-attr s-attrtab s-opinit s-preds s-constants s-crt0 genemit genoutput genrecog genextract genflags gencodes genconfig genpeep genattrtab genattr genopinit gengenrtl gencheck genpreds genconstants gengtype genconditions genmodes genrtl.cgenrtl.h gt-*.h gtype-*.h gtype-desc.c xgcc cpp cc1  crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o  gcc-cross protoize unprotoize specs collect2 collect2 gcov-iov gcov gcov-dump *.[0-9][0-9].* *.[si] libcpp.a libbackend.a libgcc.mk g++ g++-cross cc1plus g77 g77-cross f771 cc1obj stage1
mv: cannot stat `s-crt0': No such file or directory
mv: cannot stat `crtbegin.o': No such file or directory
mv: cannot stat `crtbeginS.o': No such file or directory
mv: cannot stat `crtbeginT.o': No such file or directory
mv: cannot stat `crtend.o': No such file or directory
mv: cannot stat `crtendS.o': No such file or directory
mv: cannot stat `gcc-cross': No such file or directory
mv: cannot stat `protoize': No such file or directory
mv: cannot stat `unprotoize': No such file or directory
mv: cannot stat `specs': No such file or directory
mv: cannot stat `collect2': No such file or directory
mv: cannot stat `gcov': No such file or directory
mv: cannot stat `gcov-dump': No such file or directory
mv: cannot stat `*.[0-9][0-9].*': No such file or directory
mv: cannot stat `*.[si]': No such file or directory
mv: cannot stat `g++-cross': No such file or directory
mv: cannot stat `cc1plus': No such file or directory
mv: cannot stat `g77-cross': No such file or directory
mv: cannot stat `f771': No such file or directory
mv: cannot stat `cc1obj': No such file or directory
make[2]: [stage1-start] Error 1 (ignored)
if [ -f as ] ; then (cd stage1 && ln -s ../as .) ; else true ; fi
if [ -f ld ] ; then (cd stage1 && ln -s ../ld .) ; else true ; fi
if [ -f collect-ld ] ; then (cd stage1 && ln -s ../collect-ld .) ; else true ; fi
rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcov.a
rm -f stage1/libgcc_s*.so
rm -f stage1/libunwind.a stage1/libunwind*.so
cp libgcc.a stage1
` if [ -f /var/tmp/portage/gcc-3.4.3-r1/work/build/gcc/../binutils/ranlib ] ; then echo /var/tmp/portage/gcc-3.4.3-r1/work/build/gcc/../binutils/ranlib ; else if [ "x86_64-pc-linux-gnu" = "x86_64-pc-linux-gnu" ] ; then echo ranlib; else t='s,y,y,'; echo ranlib | sed -e $t ; fi; fi` stage1/libgcc.a
cp libgcov.a stage1
` if [ -f /var/tmp/portage/gcc-3.4.3-r1/work/build/gcc/../binutils/ranlib ] ; then echo /var/tmp/portage/gcc-3.4.3-r1/work/build/gcc/../binutils/ranlib ; else if [ "x86_64-pc-linux-gnu" = "x86_64-pc-linux-gnu" ] ; then echo ranlib; else t='s,y,y,'; echo ranlib | sed -e $t ; fi; fi` stage1/libgcov.a
if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage1; \
   ` if [ -f /var/tmp/portage/gcc-3.4.3-r1/work/build/gcc/../binutils/ranlib ] ; then echo /var/tmp/portage/gcc-3.4.3-r1/work/build/gcc/../binutils/ranlib ; else if [ "x86_64-pc-linux-gnu" = "x86_64-pc-linux-gnu" ] ; then echo ranlib; else t='s,y,y,'; echo ranlib | sed -e $t ; fi; fi` stage1/libgcc_eh.a; \
fi
cp libgcc_s*.so stage1
cp: cannot stat `libgcc_s_32.so': No such file or directory
make[2]: [stage1-start] Error 1 (ignored)
cp libunwind.a libunwind*.so stage1
cp: cannot stat `libunwind.a': No such file or directory
cp: cannot stat `libunwind*.so': No such file or directory
make[2]: [stage1-start] Error 1 (ignored)
for f in .. crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o; do if [ x${f} != x.. ]; then \
  cp stage1/${f} . ; \
else true; \
fi; done
mv cp/*.o stage1/cp
mv: cannot stat `cp/*.o': No such file or directory
make[2]: [c++.stage1] Error 1 (ignored)
mv -f f/*.o f/fini f/stamp-str f/str-*.h f/str-*.j g77spec.o stage1/f
mv: cannot stat `f/*.o': No such file or directory
mv: cannot stat `f/fini': No such file or directory
mv: cannot stat `f/stamp-str': No such file or directory
mv: cannot stat `f/str-*.h': No such file or directory
mv: cannot stat `f/str-*.j': No such file or directory
mv: cannot stat `g77spec.o': No such file or directory
make[2]: [f77.stage1] Error 1 (ignored)
mv objc/*.o stage1/objc
mv: cannot stat `objc/*.o': No such file or directory
make[2]: [objc.stage1] Error 1 (ignored)
for dir in . cp f objc ; \
do \
  rm -f $dir/*.{gcda,gcno} ; \
done
make[2]: Leaving directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/gcc'
echo timestamp > stage1_copy
echo stage2_build > stage_last
=============================


I guess I would like those libgcc_s.so files back :)
Comment 20 Rutger Hendriks 2005-01-27 12:18:39 UTC
Okay, luckily they are still installed, only in another directory now
they moved from
/usr/lib64/gcc-lib/x86_64-pc-linux-gnu/3.4.3/libgcc_s.so
to
/usr/lib64/gcc-lib/x86_64-pc-linux-gnu/lib64/libgcc_s.so
weird though, that they can't be found in ncurses-5.4-r5 when running emerge -e system, because 'ldconfig -v|grep libgcc' does show it.
Comment 21 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-27 23:25:38 UTC
Rutger, when did you last sync?

what is the output of:
grep '$Header' /usr/portage/eclass/multilib.eclass /var/db/pkg/sys-devel/gcc-3.4.3-r1/gcc-3.4.3-r1.ebuild
Comment 22 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-27 23:26:18 UTC
I meant:
grep '$Header' /usr/portage/eclass/toolchain.eclass /var/db/pkg/sys-devel/gcc-3.4.3-r1/gcc-3.4.3-r1.ebuild
Comment 23 Rutger Hendriks 2005-01-28 02:40:17 UTC
The last few days I've been syncing twice a day, once when I get up and once before I go to bed.

# grep '$Header' /usr/portage/eclass/toolchain.eclass /var/db/pkg/sys-devel/gcc-3.4.3-r1/gcc-3.4.3-r1.ebuild
/usr/portage/eclass/toolchain.eclass:# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain.eclass,v 1.94 2005/01/27 20:26:08 eradicator Exp $
/var/db/pkg/sys-devel/gcc-3.4.3-r1/gcc-3.4.3-r1.ebuild:# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.3-r1.ebuild,v 1.19 2005/01/19 12:59:17 kumba Exp $

It seems the problem has been fixed by running this command before I went to bed:
emerge glibc gcc;emerge gcc glibc;emerge glibc gcc
where /etc/portage/package.use contains sys-devel/gcc -gcj

Last night I couldn't start some kde programs, they needed libgcc_s.so which they apparently couldn't find.
Now they all work again:)
I'm running emerge -e system now to make sure all is well.

I hope/guess this concludes the little side-problem and we can continue again with the current topic of this bug, USE=gcj emerge gcc :)

Comment 24 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-28 03:03:05 UTC
ok... that's odd about the libgcc_s.so ending up in the wrong location... there was something with $(tc-arch) being broken a few weeks ago which resulted in a similar problem, so I'm guessing that might just be residual gunk from that... if you do run into that problem again, pleasse let me know, but I just double checked  the current gcc and the gcc that gets made in using the portage snapshot for 2005.0, and both are good... so it looks like the only issue remaining then is the USE=gcj stuff...  I'm going to try to fix that with a bump to gcc-config which will allow command line arguments to overwrite ${ABI}... probably some time this weekend.
Comment 25 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-30 21:41:18 UTC
Please emerge gcc-config-1.3.10 (You'll need to manually add your arch to the KEYWORDS list as it is currently -*) and give it a try.
Comment 26 Rutger Hendriks 2005-01-31 06:54:31 UTC
With the new gcc-config the compilation seems to go okay at the critical zlib part:

#USE="gcj" emerge gcc
<snip>
make[3]: Entering directory `/var/tmp/portage/gcc-3.4.3-r1/work/build/32/zlib'
gcc -DPACKAGE=\"zlib\" -DVERSION=\"1.1.4\" -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_MEMCPY=1 -DHAVE_STRERROR=1 -DHAVE_UNISTD_H=1  -I. -I/var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib      -O2 -march=k8 -pipe  -m32 -c /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/zlib/adler32.c
/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.3/gcc: gcc-wrapper: -m32 detected on the command line overrides implicit -m64 added by the wrapper.
/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.3/gcc: gcc-wrapper: -m32 detected on the command line overrides implicit -m64 added by the wrapper.

and installs like a charm I guess :)
What I do not understand from the new message is which option is used now, m32 or m64?
Comment 27 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-31 13:12:33 UTC
-m64 is implicitly set by the wrapper because portage is telling the toolchain it wants ABI=amd64, but the -m32 on the command line overrides this, so -m32 is used.  What do youu think would be a clearer message to indicate this?

This would be the same as you using 'gcc64 -m32 test.c' or 'gcc32 -m64 test.c'.

Comment 28 Jeremy Huddleston (RETIRED) gentoo-dev 2005-01-31 13:30:18 UTC
resolving fixed... and that's the last regression I know of from 2004.3 to 2005.0 =)
Comment 29 nobody 2005-02-06 22:04:09 UTC
Check that http://forums.gentoo.org/viewtopic.php?p=2064490#2064490