Bug 48758 - aiksaurus fails to link with gcc 3.4, linktool somehow messes up
Bug#: 48758 Product:  Gentoo Linux Version: unspecified Platform: AMD64
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: gcc-porting@gentoo.org Reported By: mikko.tiihonen@iki.fi
Component: Applications
URL: 
Summary: aiksaurus fails to link with gcc 3.4, linktool somehow messes up
Keywords:  
Status Whiteboard: 
Opened: 2004-04-22 22:30 0000
Description:   Opened: 2004-04-22 22:30 0000
/bin/sh ../libtool --mode=link g++  -march=k8 -pipe -O2 -fomit-frame-pointer
-frename-registers -fweb --param max-delay-slot-insn-search=300 --param
max-delay-slot-live-search=1000 --param max-pending-list-length=100 --param
max-gcse-passes=4 --param max-gcse-memory=104857600 --param
max-crossjump-edges=400   -o libAiksaurus.la -rpath /usr/lib -no-undefined
-release 1.0 -version-info 0:1:0 -export-dynamic Aiksaurus.lo
AiksaurusException.lo AsciiCompare.lo MeaningsFile.lo WordsFile.lo
AiksaurusC.lo  
g++ -shared /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/crtbeginS.o  .libs/Aiksaurus.o
.libs/AiksaurusException.o .libs/AsciiCompare.o .libs/MeaningsFile.o
.libs/WordsFile.o .libs/AiksaurusC.o  -L/usr/x86_64-pc-linux-gnu/lib
-L/usr/x86_64-pc-linux-gnu/bin -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0
-L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../x86_64-pc-linux-gnu/lib
-L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../lib64
-L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../.. -L/lib/../lib64
-L/usr/lib/../lib64 /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/libstdc++.so -lm -lc
-lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/crtendS.o
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../lib64/crtn.o  -march=k8 -o
.libs/libAiksaurus-1.0.so.0.0.1
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../lib64/crti.o(.init+0x0): In
function `_init':
/mnt/2/portage-tmp/portage/glibc-2.3.3_pre20040207/work/glibc-2.3.2/buildhere/csu/crti.S:11:
multiple definition of `_init'
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../lib64/crti.o(.init+0x0):/mnt/2/portage-tmp/portage/glibc-2.3.3_pre20040207/work/glibc-2.3.2/buildhere/csu/crti.S:11:
first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../lib64/crti.o(.fini+0x0): In
function `_fini':
: multiple definition of `_fini'
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/../../../../lib64/crti.o(.fini+0x0):
first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/crtbeginS.o(.data.rel+0x0): multiple
definition of `__dso_handle'
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.0/crtbeginS.o(.data.rel+0x0): first
defined here
collect2: ld returned 1 exit status
make: *** [libAiksaurus.la] Error 1


Reproducible: Always
Steps to Reproduce:




Portage 2.0.50-r6 (default-amd64-2004.0, gcc-3.4.0, glibc-2.3.3_pre20040207-r0,
2.6.5-gentoo-r1)
=================================================================
System uname: 2.6.5-gentoo-r1 x86_64 4
Gentoo Base System version 1.4.9
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CFLAGS="-march=k8 -pipe -O2 -fomit-frame-pointer -frename-registers -fweb
--param max-delay-slot-insn-search=300 --param max-delay-slot-live-search=1000
--param max-pending-list-length=100 --param max-gcse-passes=4 --param
max-gcse-memory=104857600 --param max-crossjump-edges=400"
CHOST="x86_64-pc-linux-gnu"
COMPILER="gcc3"
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/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=k8 -pipe -O2 -fomit-frame-pointer -frename-registers -fweb
--param max-delay-slot-insn-search=300 --param max-delay-slot-live-search=1000
--param max-pending-list-length=100 --param max-gcse-passes=4 --param
max-gcse-memory=104857600 --param max-crossjump-edges=400"
DISTDIR="/mnt/2/portage-ebuilds/distfiles"
FEATURES="autoaddcvs ccache sandbox userpriv usersandbox"
GENTOO_MIRRORS="http://trumpetti.atm.tut.fi/gentoo/
ftp://trumpetti.atm.tut.fi/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/mnt/2/portage-ebuilds/packages"
PORTAGE_TMPDIR="/mnt/2/portage-tmp"
PORTDIR="/mnt/2/portage-ebuilds"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.se.gentoo.org/gentoo-portage"
USE="X alsa amd64 apm avi berkdb crypt doc encode ethereal foomaticdb freetype
gdbm gif gnome gpm gtk gtk2 imlib jpeg libg++ libwww mikmod mozilla moznoirc
mozsvg mpeg mysql ncurses nls nogcj nptl oggvorbis opengl oss pam pdflib perl
png postgres python quicktime readline ruby ruby18 sdl slang spell ssl tcpd
tetex truetype xml2 xmms xv zlib"

------- Comment #1 From Mikko Tiihonen 2004-04-22 22:34:03 0000 -------
The linking is successfull when I change the "g++" to "gcc" on the libtool
line:
/bin/sh ../libtool --mode=link gcc -march=.....

I do not know if the problem is in libtool that cannot handle g++ correctly or
does the configure script just mess up the Makefiles.

------- Comment #2 From Eric Brown 2004-04-23 13:39:24 0000 -------
mine didn't have any problems emerging.. maybe it's your CFLAGS?

------- Comment #3 From Mikko Tiihonen 2004-04-25 23:01:05 0000 -------
I tried emerging with both CFLAGS and CXXFLAGS empty, but the error message is
exactly the same. Also re-emerging linktool did not help.

This is how far I got when I started emerge --emptytree world with gcc 3.4 so I
do not think that the compiler is the problem either.

It could be that the libtool that aiksaurus uses (1.5a) just doesn't handle
x86_64 linking correctly.

------- Comment #4 From Mikko Tiihonen 2004-04-25 23:04:43 0000 -------
Created an attachment (id=30058) [details]
Full log when compiled with empty CFLAGS and CXXFLAGS

------- Comment #5 From Seemant Kulleen (RETIRED) 2004-07-17 10:25:13 0000 -------
aiksaurus-1.2.1 should fix this as well.