Looks like vorbis-tools has a complaint with libFLAC during compilation Reproducible: Always Steps to Reproduce: 1. emerge vorbis-tools (actully part of emerge kde) 2. have the same problem outside of portage (tar xfvz ... ; cd ... ; ./configure ; make Actual Results: gcc -O20 -ffast-math -fsigned-char -march=pentium4 -O3 -pipe -fomit-frame-pointer - msse2 -mfpmath=sse -o oggenc oggenc.o audio.o encode.o platform.o resample.o ../ share/libutf8.a ../share/libgetopt.a -L/usr/lib /usr/lib/libvorbisenc.so /usr/lib/ libvorbis.so /usr/lib/libOggFLAC.so /usr/lib/libFLAC.so -lm /usr/lib/libogg.so audio.o(.data+0x30): undefined reference to `flac_id' audio.o(.data+0x38): undefined reference to `flac_open' audio.o(.data+0x3c): undefined reference to `flac_close' audio.o(.data+0x48): undefined reference to `oggflac_id' audio.o(.data+0x50): undefined reference to `flac_open' audio.o(.data+0x54): undefined reference to `flac_close' collect2: ld returned 1 exit status make[2]: *** [oggenc] Error 1 make[2]: Leaving directory `/var/tmp/portage/vorbis-tools-1.0.1/work/vorbis-tools-1.0. 1/oggenc' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/vorbis-tools-1.0.1/work/vorbis-tools-1.0. 1/oggenc' make: *** [all-recursive] Error 1 !!! ERROR: media-sound/vorbis-tools-1.0.1 failed. !!! Function src_compile, Line 36, Exitcode 2 !!! (no error message) !!! If you need support, post the topmost build error, NOT this status message. Expected Results: compiled without error and installed Portage 2.0.51-r3 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.6.9- gentoo-r1 i686) ================================================================= System uname: 2.6.9-gentoo-r1 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.14.90.0.8-r1 Headers: sys-kernel/linux-headers-2.4.21-r1 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer -msse2 -mfpmath=sse" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/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/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distlocks sandbox" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/ distributions/gentoo" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aalib acpi alsa apache2 apm arts avi berkdb bitmap-fonts caps cdparanoia cdr crypt cups dga directfb divx4linux dvd dvdr encode f77 faad fam fbcon flac foomaticdb fortran gd ggi gif gmp gphoto2 gpm gtk2 idea imagemagick imap imlib ipv6 javascript jikes joystick jpeg kde lcms libwww live mad matroska mbox memlimit mikmod mmx mpeg mpi mysql nas ncurses nls oggvorbis opengl pam pdflib perl png qt quicktime readline rtc samba scanner sdl silc speex spell sse sse2 ssl svga tcpd theora tiff truetype unicode usb vanilla wifi wmf x86 xinerama xml xml2 xmms xv xvid zlib linguas_en_US linguas_ru"
In the default emerge-driven build, the easyflac.c and flac.c modules in vorbis-tools-1.0.1 are not compiled, and the autoconf/configure process does not properly append them to the list of object files needed to build oggenc. If the object modules flac.o and easyflac.o are added to the oggenc_OBJECTS macro in the Makefile of the directory above, oggenc will compile.
Thanks for the comment. I don't know how much of that I really understood. :) I untarred the original source (outside of portage), ran ./configure, and then changed line 166 in vorbis-tools-1.0.1/oggenc/Makefile: - oggenc_OBJECTS = $(am_oggenc_OBJECTS) + oggenc_OBJECTS = $(am_oggenc_OBJECTS) flac.o easyflac.o When I ran make, it still didn't compile, but I got a different error: depfile='.deps/flac.Po' tmpdepfile='.deps/flac.TPo' \ depmode=gcc3 /bin/sh ../depcomp \ gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"vorbis-tools\" -DVERSION=\"1.0.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_ARGZ_H=1 -DHAVE_LIMITS_H=1 -DHAVE_LOCALE_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_FEOF_UNLOCKED=1 -DHAVE_FGETS_UNLOCKED=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_STPCPY=1 -DHAVE_STRCHR=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE___ARGZ_COUNT=1 -DHAVE___ARGZ_STRINGIFY=1 -DHAVE___ARGZ_NEXT=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_CURL=1 -DHAVE_PTHREAD=1 -DHAVE_LIBFLAC=1 -DHAVE_LIBSPEEX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_ATEXIT=1 -DHAVE_ON_EXIT=1 -DHAVE_LANGINFO_CODESET=1 -I. -I. -I../include -I../intl -O20 -ffast-math -fsigned-char -c `test -f 'flac.c' || echo './'`flac.c source='easyflac.c' object='easyflac.o' libtool=no \ depfile='.deps/easyflac.Po' tmpdepfile='.deps/easyflac.TPo' \ depmode=gcc3 /bin/sh ../depcomp \ gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"vorbis-tools\" -DVERSION=\"1.0.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_ARGZ_H=1 -DHAVE_LIMITS_H=1 -DHAVE_LOCALE_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_FEOF_UNLOCKED=1 -DHAVE_FGETS_UNLOCKED=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_STPCPY=1 -DHAVE_STRCHR=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE___ARGZ_COUNT=1 -DHAVE___ARGZ_STRINGIFY=1 -DHAVE___ARGZ_NEXT=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_CURL=1 -DHAVE_PTHREAD=1 -DHAVE_LIBFLAC=1 -DHAVE_LIBSPEEX=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_ATEXIT=1 -DHAVE_ON_EXIT=1 -DHAVE_LANGINFO_CODESET=1 -I. -I. -I../include -I../intl -O20 -ffast-math -fsigned-char -c `test -f 'easyflac.c' || echo './'`easyflac.c make[1]: *** No rule to make target `../share/libutf8.a', needed by `oggenc'. Stop. make[1]: Leaving directory `/tmp/vorbis-tools-1.0.1/oggenc' make: *** [all-recursive] Error 1 Thank you for your help.
I wonder why it compiled for me...
Oops. My fault on that one. I forgot to change back from vorbis-tools-1.0.1/oggenc to vorbis-tools-1.0.1 when running make (after editing Makefile), so libutf8 didn't get built when oggenc needed it. Sorry. I assume this gets fixed eventually, and I can force my way around it this time just by pausing emerge and editing the Makefile myself, but (to learn something for the future) how should I handle having to make a change (when using portage) between unpacking source and compiling it? Thank you again for your help.
marking invalid then...
Shouldn't (to fix the problem) the ebuild patch vorbis-tools-1.0.1/oggenc/Makefile to add flac.o and easyflac.o to the oggenc_OBJECTS line? It still won't compile without editing the Makefile (something that seems likely to catch other people).
/bin/sh ../libtool --mode=link i686-pc-linux-gnu-gcc -O20 -ffast-math -fsigned-char -march=i686 -O2 -pipe -fomit-frame-pointer -o oggenc oggenc.o audio.o encode.o platform.o resample.o flac.o easyflac.o ../share/libutf8.a ../share/libgetopt.a -L/usr/lib -lvorbisenc -L/usr/lib -lvorbis -lm -L/usr/lib -logg -lOggFLAC -lFLAC -lm -L/usr/lib -logg mkdir .libs i686-pc-linux-gnu-gcc -O20 -ffast-math -fsigned-char -march=i686 -O2 -pipe -fomit-frame-pointer -o oggenc oggenc.o audio.o encode.o platform.o resample.o flac.o easyflac.o ../share/libutf8.a ../share/libgetopt.a -L/usr/lib /usr/lib/libvorbisenc.so /usr/lib/libvorbis.so /usr/lib/libOggFLAC.so /usr/lib/libFLAC.so -lm /usr/lib/libogg.so make[2]: Leaving directory `/mnt/raid0/tmp/g32/portage/vorbis-tools-1.0.1/work/vorbis-tools-1.0.1/oggenc' make[1]: Leaving directory `/mnt/raid0/tmp/g32/portage/vorbis-tools-1.0.1/work/vorbis-tools-1.0.1/oggenc' It does include it for me...
I had the same problem on two different machines. The vorbis-tools-1.0.1/oggenc/Makefile (line 166) says: oggenc_OBJECTS = $(am_oggenc_OBJECTS) which causes the compile to fail. Adding (as suggested by James) flac.o easyflac.o to the end of that line allows the compile to succeed.
This is rediculous... why can't I reproduce it... Can you post a complete log of you running 'emerge -v vorbis-tools' please...
bouncing back to herd as I can't reproduce the problem...
It looks unbelievable but I had the same problem. But after reemerging net-misc/curl (which was somehow corrupted and required by grip) the problem is solved :-)
emerging net-misc/curl again really solved the problem... strange ;)
marking this one as invalid, then