[FFmpeg-trac] #2941(FFmpeg:new): Impossible to compile with Graphite / LTO / OpenMP optimizations

FFmpeg trac at avcodec.org
Fri Sep 6 21:11:16 CEST 2013


#2941: Impossible to compile with Graphite / LTO / OpenMP optimizations
----------------------------------+--------------------------------------
             Reporter:  decedion  |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  FFmpeg    |                  Version:  git-master
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 Ubuntu 13.04 64 bits

 {{{
 $ gcc -v
 Usando especificaciones internas.
 COLLECT_GCC=gcc
 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
 Objetivo: x86_64-linux-gnu
 Configurado con: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
 4.7.3-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
 --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-
 suffix=-4.7 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib
 --without-included-gettext --enable-threads=posix --with-gxx-include-
 dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/
 --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
 --enable-gnu-unique-object --enable-plugin --with-system-zlib --enable-
 objc-gc --with-cloog --enable-cloog-backend=ppl --disable-cloog-version-
 check --disable-ppl-version-check --enable-multiarch --disable-werror
 --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32
 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
 --host=x86_64-linux-gnu --target=x86_64-linux-gnu
 Modelo de hilos: posix
 gcc versión 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1)
 }}}


 {{{
 $ apt-cache policy binutils-gold
 binutils-gold:
   Instalados: 2.23.2-2ubuntu1
   Candidato:  2.23.2-2ubuntu1
   Tabla de versión:
  *** 2.23.2-2ubuntu1 0
         500 http://ubuntu.grn.cat/ubuntu/ raring/main amd64 Packages
         100 /var/lib/dpkg/status

 $ ll /usr/bin/ld
 lrwxrwxrwx 1 root root 7 abr 16 09:06 /usr/bin/ld -> ld.gold*
 }}}

 I have used this guide:
 http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

 I'm trying to compile with Graphite/LTO/OpenMP optimizations but it shows
 errors in link phase:

 {{{
 .........
 LD      ffmpeg_g
 /tmp/ccA0STuu.ltrans0.ltrans.o:ccA0STuu.ltrans0.o:function
 decode_cabac_residual_nondc_internal.414259: error: undefined reference to
 'ff_h264_cabac_tables'
 /tmp/ccA0STuu.ltrans0.ltrans.o:ccA0STuu.ltrans0.o:function
 decode_cabac_residual_nondc_internal.414259: error: undefined reference to
 'ff_h264_cabac_tables'
 /tmp/ccA0STuu.ltrans0.ltrans.o:ccA0STuu.ltrans0.o:function
 decode_cabac_residual_nondc_internal.414259: error: undefined reference to
 'ff_h264_cabac_tables'
 /tmp/ccA0STuu.ltrans0.ltrans.o:ccA0STuu.ltrans0.o:function
 decode_cabac_residual_nondc_internal.414259: error: undefined reference to
 'ff_h264_cabac_tables'
 /tmp/ccA0STuu.ltrans1.ltrans.o:ccA0STuu.ltrans1.o:function
 put_cavs_qpel8_mc01_mmxext.680404: error: undefined reference to
 'ff_pw_42'
 /tmp/ccA0STuu.ltrans1.ltrans.o:ccA0STuu.ltrans1.o:function
 put_cavs_qpel8_mc01_mmxext.680404: error: undefined reference to
 'ff_pw_42'
 /tmp/ccA0STuu.ltrans1.ltrans.o:ccA0STuu.ltrans1.o:function
 put_cavs_qpel8_mc01_mmxext.680404: error: undefined reference to
 'ff_pw_42'
 /tmp/ccA0STuu.ltrans1.ltrans.o:ccA0STuu.ltrans1.o:function
 put_cavs_qpel8_mc01_mmxext.680404: error: undefined reference to
 'ff_pw_42'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w04'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w04'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w05'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w20'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w04'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w04'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w05'
 /tmp/ccA0STuu.ltrans3.ltrans.o:ccA0STuu.ltrans3.o:function
 postProcess_MMX.684606: error: undefined reference to 'w20'
 /tmp/ccA0STuu.ltrans4.ltrans.o:ccA0STuu.ltrans4.o:function
 sad8_xy2_mmxext.627031: error: undefined reference to 'bone'
 /tmp/ccA0STuu.ltrans4.ltrans.o:ccA0STuu.ltrans4.o:function
 sad16_xy2_mmxext.627059: error: undefined reference to 'bone'
 .........
 }}}

 ----

 I've done several tests, all fail:


 == 1º ==

 {{{
 $ ./configure --enable-gpl --enable-libass --enable-libfaac --enable-
 libfdk-aac --enable-libmp3lame --disable-libopencore-amrnb --disable-
 libopencore-amrwb --disable-libspeex --enable-librtmp --disable-libtheora
 --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264
 --enable-nonfree --enable-version3 --extra-ldflags="-L/usr/local/lib"
 --disable-debug --disable-ffplay --disable-ffprobe --disable-ffserver
 }}}

 Environment FLAGS:

 {{{
 CFLAGS=-m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9 -fuse-
 linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-mine
 -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 CXXFLAGS=-m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9
 -fuse-linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-
 mine -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 LDFLAGS=-Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common
 -lgomp -m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9 -fuse-
 linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-mine
 -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 }}}



 == 2ª ==

 {{{
 $ ./configure --enable-gpl --enable-libass --enable-libfaac --enable-
 libfdk-aac --enable-libmp3lame --disable-libopencore-amrnb --disable-
 libopencore-amrwb --disable-libspeex --enable-librtmp --disable-libtheora
 --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264
 --enable-nonfree --enable-version3 --extra-ldflags="-L/usr/local/lib"
 --disable-debug --disable-ffplay --disable-ffprobe --disable-ffserver
 --enable-lto
 }}}

 Without any environment FLAGS.


 == 3ª ==

 {{{
 $ ./configure --enable-gpl --enable-libass --enable-libfaac --enable-
 libfdk-aac --enable-libmp3lame --disable-libopencore-amrnb --disable-
 libopencore-amrwb --disable-libspeex --enable-librtmp --disable-libtheora
 --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264
 --enable-nonfree --enable-version3 --extra-ldflags="-L/usr/local/lib"
 --disable-debug --disable-ffplay --disable-ffprobe --disable-ffserver
 --enable-lto
 }}}

 Environment FLAGS:

 {{{
 CFLAGS=-m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9 -fuse-
 linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-mine
 -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 CXXFLAGS=-m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9
 -fuse-linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-
 mine -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 LDFLAGS=-Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common
 -lgomp -m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9 -fuse-
 linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-mine
 -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 }}}


 == 4ª ==


 {{{
 $ ./configure --enable-lto
 }}}

 Environment FLAGS:

 {{{
 CFLAGS=-m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9 -fuse-
 linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-mine
 -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 CXXFLAGS=-m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9
 -fuse-linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-
 mine -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 LDFLAGS=-Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common
 -lgomp -m64 -fPIC -pipe -march=native -mtune=native -Ofast -flto=9 -fuse-
 linker-plugin -fomit-frame-pointer -floop-interchange -floop-strip-mine
 -floop-block -ftree-loop-distribution -funroll-loops -ftree-vectorize
 -fgraphite-identity -fopenmp -floop-parallelize-all -fivopts -w
 }}}


 == 5ª ==

 {{{
 $ ./configure --enable-lto
 }}}

 Without any environment FLAGS.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2941>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list