After changing to the new 2004.3 AMD64 profile and finetuning my USE flags, mjpegtools-1.6.2-r3 no longer compiles. The added flags appear to be dv and yv12: # emerge -pv mjpegtools These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] media-video/mjpegtools-1.6.2-r3 (-3dnow) +X +avi -debug +dv* +gtk (-mmx) +quicktime +sdl (-sse) +yv12* 0 kB Reproducible: Always Steps to Reproduce: 1. emerge mjpegtools Actual Results: [snip] *** Warning: Linking the shared library libmplex2.la against the *** static library ../utils/libmjpegutils.a is not portable! x86_64-pc-linux-gnu-g++ -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/crtbeginS.o .libs/libmplex2_la-ac3strm_in.o .libs/libmplex2_la-audiostrm_out.o .libs/libmplex2_la-bits.o .libs/libmplex2_la-buffer.o .libs/libmplex2_la-dtsstrm_in.o .libs/libmplex2_la-inputstrm.o .libs/libmplex2_la-interact.o .libs/libmplex2_la-lpcmstrm_in.o .libs/libmplex2_la-mpastrm_in.o .libs/libmplex2_la-multiplexor.o .libs/libmplex2_la-padstrm.o .libs/libmplex2_la-stillsstream.o .libs/libmplex2_la-stream_params.o .libs/libmplex2_la-systems.o .libs/libmplex2_la-vector.o .libs/libmplex2_la-videostrm_in.o .libs/libmplex2_la-videostrm_out.o -Wl,--rpath -Wl,/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2 -Wl,--rpath -Wl,/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2 -L/usr/x86_64-pc-linux-gnu/lib -L/usr/x86_64-pc-linux-gnu/bin ../utils/libmjpegutils.a -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2 -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/../../../../x86_64-pc-linux-gnu/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/../../../../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/../../.. -L/lib/../lib -L/usr/lib/../lib /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/libstdc++.so -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/../../../../lib/crtn.o -march=athlon64 -Wl,-soname -Wl,libmplex2-1.6.so.0 -o .libs/libmplex2-1.6.so.0.2.2 /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.2/../../../../x86_64-pc-linux-gnu/bin/ld: ../utils/libmjpegutils.a(mjpeg_logging.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC ../utils/libmjpegutils.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[2]: *** [libmplex2.la] Error 1 make[2]: Leaving directory `/var/tmp/portage/mjpegtools-1.6.2-r3/work/mjpegtools-1.6.2/mplex' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/mjpegtools-1.6.2-r3/work/mjpegtools-1.6.2' make: *** [all] Error 2 !!! ERROR: media-video/mjpegtools-1.6.2-r3 failed. !!! Function src_compile, Line 97, Exitcode 2 !!! compile problem !!! If you need support, post the topmost build error, NOT this status message. Portage 2.0.51-r3 (default-linux/amd64/2004.3, gcc-3.4.2, glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r3 x86_64) ================================================================= System uname: 2.6.9-gentoo-r3 x86_64 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System version 1.6.5 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.92.0.2-r1 Headers: sys-kernel/linux26-headers-2.6.8.1-r1 Libtools: sys-devel/libtool-1.5.2-r6 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-march=athlon64 -O3 -pipe" CHOST="x86_64-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="-march=athlon64 -O3 -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="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.au.gentoo.org/gentoo-portage" USE="amd64 X aalib acpi adns alsa apache2 arts avi berkdb bitmap-fonts cdr cjk crypt cups divx4linux dmx dv dvd dvdr encode esd f77 fam fbcon flac foomaticdb fpx freetype gdbm gif gimpprint gpm gps graphviz gtk imagemagick imap imlib jack java jbig jp2 jpeg junit kde lcms lzw lzw-tiff mad maildir mikmod motif mpeg multilib ncurses nls nptl nptlonly nvidia offensive oggvorbis opengl pam pda perl png ppds python qt quicktime readline sdk sdl slang snmp spamassassin speex ssl tcltk tcpd theora tiff truetype usb userlocales virus-scan wmf xml xml2 xpm xrandr xv yv12 zlib"
Addendum: mjpegtools-1.6.2-r1 fails with the same error: *** Warning: Linking the shared library libmplex2.la against the *** static library ../utils/libmjpegutils.a is not portable! x86_64-pc-linux-gnu-g++ -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/crtbeginS.o .libs/libmplex2_la-ac3strm_in.o .libs/libmplex2_la-audiostrm_out.o .libs/libmplex2_la-bits.o .libs/libmplex2_la-buffer.o .libs/libmplex2_la-dtsstrm_in.o .libs/libmplex2_la-inputstrm.o .libs/libmplex2_la-interact.o .libs/libmplex2_la-lpcmstrm_in.o .libs/libmplex2_la-mpastrm_in.o .libs/libmplex2_la-multiplexor.o .libs/libmplex2_la-padstrm.o .libs/libmplex2_la-stillsstream.o .libs/libmplex2_la-stream_params.o .libs/libmplex2_la-systems.o .libs/libmplex2_la-vector.o .libs/libmplex2_la-videostrm_in.o .libs/libmplex2_la-videostrm_out.o -Wl,--rpath -Wl,/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3 -Wl,--rpath -Wl,/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/../../../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/../../../x86_64-pc-linux-gnu/lib/../lib -L/usr/x86_64-pc-linux-gnu/lib -L/usr/x86_64-pc-linux-gnu/bin ../utils/libmjpegutils.a -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../.. -L/lib/../lib -L/usr/lib/../lib /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/libstdc++.so -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../lib/crtn.o -march=athlon64 -Wl,-soname -Wl,libmplex2-1.6.so.0 -o .libs/libmplex2-1.6.so.0.2.2 /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/bin/ld: ../utils/libmjpegutils.a(mjpeg_logging.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC ../utils/libmjpegutils.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[2]: *** [libmplex2.la] Error 1 make[2]: Leaving directory `/var/tmp/portage/mjpegtools-1.6.2-r1/work/mjpegtools-1.6.2/mplex' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/mjpegtools-1.6.2-r1/work/mjpegtools-1.6.2' make: *** [all] Error 2 !!! ERROR: media-video/mjpegtools-1.6.2-r1 failed. !!! Function src_compile, Line 86, Exitcode 2 !!! compile problem !!! If you need support, post the topmost build error, NOT this status message.
Adding something like: if use amd64; then autoreconf || or die fi to the .ebuild solved the problem for me..
Based on the "use ppc" code in the ebuild, I think your "or" is extraneous? At any rate, this worked for me too - thanks! Can this be added to the CVS? if use amd64; then autoreconf || die fi
Worked for me tooo!
in CVS now, thanks!