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
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>.
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?
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.
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?
/* 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
Ah Mike, didn't know that, thanx for pointing it out with respect to the workaround, does this allow you to re-emerge gcc?
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
Replying to #6: Apparantly so. I've got GCC running fine on my computer now, so it seems to have worked.
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
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
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.
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
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...
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?
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 ?
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.
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...
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 )
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 :)
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.
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
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
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 :)
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.
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.
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?
-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'.
resolving fixed... and that's the last regression I know of from 2004.3 to 2005.0 =)
Check that http://forums.gentoo.org/viewtopic.php?p=2064490#2064490