[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