Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 51617 - mpeg4ip-1.1 compile fails on huffman.cpp with error "formatnot a string literal, argument types not checked"
Summary: mpeg4ip-1.1 compile fails on huffman.cpp with error "formatnot a string liter...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High blocker (vote)
Assignee: Olivier Crete (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-21 00:04 UTC by Gregg Casillo
Modified: 2004-06-08 15:23 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gregg Casillo 2004-05-21 00:04:52 UTC
First, the error:

make[6]: Entering directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video/mpeg4-2000/tools/entropy'
if /bin/sh ../../../../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../../../.. -I../../../../../include -I../../type   -D__TRACE_AND_STATS_ -D__DOUBLE_PRECISION_ -D_REENTRANT -DNOCONTROLS -fexceptions -Wall -Werror -Wmissing-prototypes -Wno-char-subscripts -Woverloaded-virtual -Wno-unknown-pragmas -Wno-deprecated -Wformat=2 -D_OBSS_ -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -DUSE_MMX -DMPEG4IP -MT bitstrm.lo -MD -MP -MF ".deps/bitstrm.Tpo" \
  -c -o bitstrm.lo `test -f 'bitstrm.cpp' || echo './'`bitstrm.cpp; \
then mv -f ".deps/bitstrm.Tpo" ".deps/bitstrm.Plo"; \
else rm -f ".deps/bitstrm.Tpo"; exit 1; \
fi
if /bin/sh ../../../../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../../../.. -I../../../../../include -I../../type   -D__TRACE_AND_STATS_ -D__DOUBLE_PRECISION_ -D_REENTRANT -DNOCONTROLS -fexceptions -Wall -Werror -Wmissing-prototypes -Wno-char-subscripts -Woverloaded-virtual -Wno-unknown-pragmas -Wno-deprecated -Wformat=2 -D_OBSS_ -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -DUSE_MMX -DMPEG4IP -MT huffman.lo -MD -MP -MF ".deps/huffman.Tpo" \
  -c -o huffman.lo `test -f 'huffman.cpp' || echo './'`huffman.cpp; \
then mv -f ".deps/huffman.Tpo" ".deps/huffman.Plo"; \
else rm -f ".deps/huffman.Tpo"; exit 1; \
fi
mkdir .libs
 g++ -DHAVE_CONFIG_H -I. -I. -I../../../../.. -I../../../../../include -I../../type -D__TRACE_AND_STATS_ -D__DOUBLE_PRECISION_ -D_REENTRANT -DNOCONTROLS -fexceptions -Wall -Werror -Wmissing-prototypes -Wno-char-subscripts -Woverloaded-virtual -Wno-unknown-pragmas -Wno-deprecated -Wformat=2 -D_OBSS_ -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -DUSE_MMX -DMPEG4IP -MT bitstrm.lo -MD -MP -MF .deps/bitstrm.Tpo -c bitstrm.cpp  -fPIC -DPIC -o .libs/bitstrm.o
 g++ -DHAVE_CONFIG_H -I. -I. -I../../../../.. -I../../../../../include -I../../type -D__TRACE_AND_STATS_ -D__DOUBLE_PRECISION_ -D_REENTRANT -DNOCONTROLS -fexceptions -Wall -Werror -Wmissing-prototypes -Wno-char-subscripts -Woverloaded-virtual -Wno-unknown-pragmas -Wno-deprecated -Wformat=2 -D_OBSS_ -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -DUSE_MMX -DMPEG4IP -MT huffman.lo -MD -MP -MF .deps/huffman.Tpo -c huffman.cpp  -fPIC -DPIC -o .libs/huffman.o
distcc[1239] ERROR: compile /root/.ccache/bitstrm.tmp.poe.1235.ii on localhost failed
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h: In
   function `int std::__convert_from_v(char*, int, const char*, _Tv, int*
   const&, int) [with _Tv = double]':
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/locale_facets.tcc:911:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::_M_convert_float(_OutIter, std::ios_base&, _CharT, char, _ValueT) const [with _ValueT = double, _CharT = char, _OutIter = std::ostreambuf_iterator<char, std::char_traits<char> >]'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/locale_facets.tcc:1058:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::do_put(_OutIter, std::ios_base&, _CharT, double) const [with _CharT = char, _OutIter = std::ostreambuf_iterator<char, std::char_traits<char> >]'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/locale_facets.h:891:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::put(_OutIter, std::ios_base&, _CharT, double) const [with _CharT = char, _OutIter = std::ostreambuf_iterator<char, std::char_traits<char> >]'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/ostream.tcc:250:   instantiated from `std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits<char>]'
bitstrm.cpp:326:   instantiated from here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h:69: warning: format
   not a string literal, argument types not checked
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h:71: warning: format
   not a string literal, argument types not checked
make[6]: *** [bitstrm.lo] Error 1
make[6]: *** Waiting for unfinished jobs....
distcc[1386] ERROR: compile /root/.ccache/huffman.tmp.poe.1382.ii on neruda failed
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h: In
   function `int std::__convert_from_v(char*, int, const char*, _Tv, int*
   const&, int) [with _Tv = double]':
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/locale_facets.tcc:911:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::_M_convert_float(_OutIter, std::ios_base&, _CharT, char, _ValueT) const [with _ValueT = double, _CharT = char, _OutIter = std::ostreambuf_iterator<char, std::char_traits<char> >]'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/locale_facets.tcc:1058:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::do_put(_OutIter, std::ios_base&, _CharT, double) const [with _CharT = char, _OutIter = std::ostreambuf_iterator<char, std::char_traits<char> >]'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/locale_facets.h:891:   instantiated from `_OutIter std::num_put<_CharT, _OutIter>::put(_OutIter, std::ios_base&, _CharT, double) const [with _CharT = char, _OutIter = std::ostreambuf_iterator<char, std::char_traits<char> >]'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/bits/ostream.tcc:250:   instantiated from `std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits<char>]'
huffman.cpp:246:   instantiated from here
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h:69: warning: format
   not a string literal, argument types not checked
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/g++-v3/i686-pc-linux-gnu/bits/c++locale.h:71: warning: format
   not a string literal, argument types not checked
make[6]: *** [huffman.lo] Error 1
make[6]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video/mpeg4-2000/tools/entropy'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video/mpeg4-2000/tools'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video/mpeg4-2000'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1'
make: *** [all] Error 2

!!! ERROR: media-video/mpeg4ip-1.1 failed.
!!! Function src_compile, Line 49, Exitcode 2
!!! make failed

Next, my emerge info:
Portage 2.0.50-r6 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040420-r0, 2.6.5-gentoo-r1)
=================================================================
System uname: 2.6.5-gentoo-r1 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Gentoo Base System version 1.4.14
distcc 2.14 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distcc sandbox"
GENTOO_MIRRORS="http://mirrors.tds.net/gentoo http://gentoo.mirrors.pair.com/ ftp://mirrors.tds.net/gentoo http://mirror.datapipe.net/gentoo"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aac acpi alsa apache2 arts audiofile avi berkdb cdr crypt cups divx4linux dvd dvdr encode f77 flac foomaticdb gdbm gif gpm imagemagick imap imlib innodb jack java jpeg kde libg++ libwww live mad maildir mikmod mmx mpeg mysql ncurses nls nptl oggvorbis opengl pam pdflib perl png python qt quicktime readline samba scanner sdl speex sse ssl tcpd theora tiff truetype unicode usb vhosts x86 xml2 xvid zlib"

I tried compiling with 3.3.3-r3 and that failed with this error. So I updated to 3.3.3-r5. Same thing. I use distcc. I disabled that. Still same problem.

Next, I tried building on another machine with essentially the same build out: 2.6.5-r1 kernel, NPTL enabled glibc (latest ~x86), and gcc-3.3.3-r5. I got the same error on huffman.cpp.

Reproducible: Always
Steps to Reproduce:
1.
2.
3.

Actual Results:
Comment 1 Henry Bucklow 2004-05-30 01:47:04 UTC
I'd just like to confirm that compilation also fails in the same place using gcc-3.2.3.

Henry
Comment 2 Sig Lange 2004-06-01 08:43:19 UTC
I am able to resolve this issue, and bug 52071 by adding:

   export CFLAGS="-L/usr/X11R6/lib"
   export CXXFLAGS="-L/usr/X11R6/lib"
   export LDFLAGS="-L/usr/X11R6/lib"

to the src_compile function, just before "local myconf", not sure of the correct way of doing this... maybe with flag-o-matic? I will do a bit more testing/digging and see what I come up with.
Comment 3 Gregg Casillo 2004-06-03 11:34:28 UTC
No luck for me with Sig's solution:

gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT output.lo -MD -MP -MF .deps/output.Tpo -c output.c  -fPIC -DPIC -o .libs/output.o
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT reconstruct.lo -MD -MP -MF .deps/reconstruct.Tpo -c reconstruct.c  -fPIC -DPIC -o .libs/reconstruct.o
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT motion.lo -MD -MP -MF .deps/motion.Tpo -c motion.c -o motion.o >/dev/null 2>&1
output.c: In function `mpeg3video_rgb16_mmx':
output.c:57: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
output.c: In function `mpeg3video_ditherframe':
output.c:726: warning: use of cast expressions as lvalues is deprecated
output.c:751: warning: use of cast expressions as lvalues is deprecated
output.c:791: warning: use of cast expressions as lvalues is deprecated
output.c:816: warning: use of cast expressions as lvalues is deprecated
make[5]: *** [output.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT mpeg3video.lo -MD -MP -MF .deps/mpeg3video.Tpo -c mpeg3video.c  -fPIC -DPIC -o .libs/mpeg3video.o
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT seek.lo -MD -MP -MF .deps/seek.Tpo -c seek.c  -fPIC -DPIC -o .libs/seek.o
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT reconstruct.lo -MD -MP -MF .deps/reconstruct.Tpo -c reconstruct.c -o reconstruct.o >/dev/null 2>&1
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT seek.lo -MD -MP -MF .deps/seek.Tpo -c seek.c -o seek.o >/dev/null 2>&1
 gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../include -DHAVE_MMX -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -L/usr/X11R6/lib -DUSE_MMX -DMPEG4IP -MT mpeg3video.lo -MD -MP -MF .deps/mpeg3video.Tpo -c mpeg3video.c -o mpeg3video.o >/dev/null 2>&1
make[5]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video/libmpeg32/video'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video/libmpeg32'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common/video'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/common'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1'
make: *** [all] Error 2

!!! ERROR: media-video/mpeg4ip-1.1 failed.
!!! Function src_compile, Line 51, Exitcode 2
!!! make failed
Comment 4 Tuan Van (RETIRED) gentoo-dev 2004-06-03 15:07:18 UTC
@reporter:
> distcc[1239] ERROR: compile /root/.ccache/bitstrm.tmp.poe.1235.ii on localhost failed
...
> distcc 2.14 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
> ccache version 2.3 [enabled]

have you tried disable ccache *and* distcc?
Comment 5 Gregg Casillo 2004-06-05 02:01:10 UTC
No love with ccache and distcc switched off. I was able to build this on my laptop at work, but I'm not sure what is different between it and my desktop here at home. Pretty much keep everything updated at the same time.
Comment 6 Olivier Crete (RETIRED) gentoo-dev 2004-06-05 08:29:56 UTC
I can reproduce this one... 
you are still having the bug try adding
sed -i 's:-Werror::g' configure into the ebuild just after th-Wmissing-prototypes sed
it might help... Btw, I just updated the 1.1 ebuild in the tree 
Comment 7 Gregg Casillo 2004-06-08 14:01:50 UTC
Oliver's trick worked! One odd note. I had to emerge --nodeps as the mpeg4ip ebuild was complaining about faad2 as a blocker. This was on my desktop. On my laptop I have faad2-2.0-r1 installed as well as mpeg4ip-1.1.
Comment 8 Olivier Crete (RETIRED) gentoo-dev 2004-06-08 15:23:30 UTC
alright, this fix is in the CVS now..