mpeg4ip fails to compile on several boxes with the following: gcc -DHAVE_CONFIG_H -I. -I. -I. -DDEBUG -I../.. -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -W -Wall -Wwrite-strings -Wbad-function-cast -Wmissing-prototypes -Wmissing-declarations -Werror -MT memory.lo -MD -MP -MF .deps/memory.Tpo -c memory.c -fPIC -DPIC -o .libs/memory.o net_udp.c: In function `udp_exit4': net_udp.c:447: warning: statement with no effect make[5]: *** [net_udp.lo] Error 1 make[5]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I. -DDEBUG -I../.. -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -W -Wall -Wwrite-strings -Wbad-function-cast -Wmissing-prototypes -Wmissing-declarations -Werror -MT memory.lo -MD -MP -MF .deps/memory.Tpo -c memory.c -o memory.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I. -DDEBUG -I../.. -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -W -Wall -Wwrite-strings -Wbad-function-cast -Wmissing-prototypes -Wmissing-declarations -Werror -MT ntp.lo -MD -MP -MF .deps/ntp.Tpo -c ntp.c -fPIC -DPIC -o .libs/ntp.o gcc -DHAVE_CONFIG_H -I. -I. -I. -DDEBUG -I../.. -march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -W -Wall -Wwrite-strings -Wbad-function-cast -Wmissing-prototypes -Wmissing-declarations -Werror -MT ntp.lo -MD -MP -MF .deps/ntp.Tpo -c ntp.c -o ntp.o >/dev/null 2>&1 make[5]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/lib/rtp' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/lib/rtp' make[3]: *** [all] Error 2 make[3]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/lib/rtp' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/mpeg4ip-1.1/work/mpeg4ip-1.1/lib' 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 63, Exitcode 2 !!! make failed I have tried emerging with and without distcc and ccache. Here's my emerge info: Portage 2.0.50-r9 (default-x86-2004.0, gcc-3.3.4, glibc-2.3.4.20040808-r0, 2.6.7-gentoo-r13) ================================================================= System uname: 2.6.7-gentoo-r13 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz Gentoo Base System version 1.5.2 distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 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/kde/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://gentoo.mirrors.pair.com/ http://open-systems.ufl.edu/mirrors/gentoo" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="aac acpi alsa apm audiofile avi berkdb crypt divx4linux encode flac gdbm gif imagemagick imlib innodb jpeg libg++ libwww mad mikmod mmx mpeg ncurses nls nptl oggvorbis pam perl png python quicktime readline samba sdl speex sse ssl tcpd theora tiff unicode x86 xml2 xvid zlib" Reproducible: Always Steps to Reproduce: 1. emerge mpeg4ip 2. compile fails with "net_udp.c: In function `udp_exit4': net_udp.c:447: warning: statement with no effect"
I can confirm this. I was about to file a report myself. I have gotten mpeg4ip-1.1 installed before, but some things weren't working right, namely gmp4player. I uninstalled today and try to reinstall. Here's my emerge info: Portage 2.0.50-r9 (default-x86-1.4, gcc-3.3.4, glibc-2.3.4.20040808-r0, 2.6.7-gentoo-r11) ================================================================= System uname: 2.6.7-gentoo-r11 i686 Intel(R) Pentium(R) 4 Mobile CPU 1.60GHz Gentoo Base System version 1.5.2 distcc[6595] (dcc_get_top_dir) Warning: HOME is not set; can't find distcc directory [enabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -mcpu=pentium4 -O2 -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.3/share/config:/usr/kde/3.3/env:/usr/kde/3.3/shutdown /usr/kde/3/share/config /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=pentium4 -mcpu=pentium4 -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distcc sandbox" GENTOO_MIRRORS="http://gentoo.mirrors.pair.com/ http://mirror.datapipe.net/gentoo" MAKEOPTS="-j10" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acpi alsa arts avi berkdb cdr crypt cups dvd encode foomaticdb freetds gdbm gif gpm imlib innodb java jpeg jpg kde libg++ libwww live mad mikmod mmx motif mpeg ncurses network nls nptl odbc oggvorbis opengl oss pam pcmcia pdflib perl png python qt quicktime readline samba sdl sse ssl svg svga tcltk tcpd tetex tiff truetype usb video_cards_radeon x86 xml2 xv zlib"
Whoops. I (me) filed the bug report earlier and didn't realize it. Sorry.
Well it looks like line 447 of mpeg4ip-1.1/lib/rtp/net_udp.c is a bareword, "abort" without the parentheses (i.e. "abort();"). I added the parentheses tarred and gzipped the source, put it back in /usr/portage/distfiles, recreated the digest, and emerged. Success! Not sure how I got it installed before, but I'm back in business. Now to see if I can get gmp4player to work, but that's another bug report. I'd create a patch for this if I wasn't so out of practice. My days of hacking C/C++ code are well behind me. Sorry.
Created attachment 40231 [details, diff] The long-awaited patch for net_udp.c
Created attachment 40232 [details, diff] Patch for gui_utils.cpp
These two patches allow it to compile and install properly, but when mp4player is run it generates the error message "mp4player: symbol lookup error: mp4player: undefined symbol: MP4IsIsmaCrypMediaTrack". This function is indeed defined in lib/mp4v2/mp4.cpp, so I don't know why it can't find it.
Got mpeg4ip-1.1 working again under amd64! mp4player is now able to play files from commandline. I need to untar the files, patch net_udp.c and gui_utils.cpp, ./bootstrap, then make. The ./bootstrap is the part I missed. With that done, it works nicely.
thanks for the fix.. sorry for taking so long to fix the bug.. but no one had assigned the bug to me.. And btw, please always submit patches in the unified diff format (diff -u) and not in the default format...