EV56 system, trying to compile esound fails as follows: gcc -mcpu=ev56 -Wa,-mev6 -O3 -pipe -fPIC -o .libs/esdcat esdcat.o ./.libs/libesd.so -L/usr/lib /usr/lib/libaudiofile.a -lm ./.libs/libesd.so: undefined reference to `_OtsMove' ./.libs/libesd.so: undefined reference to `__floor' ./.libs/libesd.so: undefined reference to `_OtsZero' ./.libs/libesd.so: undefined reference to `_OtsDivide64Unsigned' ./.libs/libesd.so: undefined reference to `_OtsDivide64' ./.libs/libesd.so: undefined reference to `_OtsFill' collect2: ld returned 1 exit status
Adding -lots and -lcpml to the linking corrects this problem. I corrected it by adding a quick sed entry to the ebuild.
Portage 2.0.48-r7 (default-alpha-1.4, gcc-3.2.3, glibc-2.3.2-r1) ================================================================= System uname: 2.4.20 alpha EV56 GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="alpha crypt cups encode foomaticdb gif gnome jpeg kde libg++ mikmod ncurses nls opengl oss pdflib png qt quicktime sdl spell truetype X xml2 xmms xv zlib gnome-libs gdbm berkdb slang readline java guile mysql gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gtk motif" COMPILER="gcc3" CHOST="alphaev56-unknown-linux-gnu" CFLAGS="-mcpu=ev56 -Wa,-mev6 -O3 -pipe -fPIC" CXXFLAGS="-O2 -pipe" ACCEPT_KEYWORDS="alpha ~alpha" MAKEOPTS="-j3" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles"
The problem is if you compile a library with ccc, anything that links with it (even if your compiling with gcc) will need to be linked with libots. This isnt a problem, theres a function called otsify() in ccc.eclass that will add all of the libots functions to a library which then will not require -lots. The problem is detecting when someone is using ccc without disrupting the dependencies of other arches. otsify() would be great otherwise, all the speed benefits of using ccc without any of the problems of mixing ccc/gcc compiles.
This is a problem though, assigning to self to try and find a solution.
Pretty stale bug, reopen if this is still a problem with current versions in portage.