[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #13 from Martin Liška --- (In reply to Carl Eugen Hoyos from comment #12) > Should be fixed: > http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=10f46815 > https://trac.ffmpeg.org/ticket/7491 > > I wonder a little how the FFmpeg developers were supposed to find out about > this bug... Good, thanks for mainline fix!
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 Carl Eugen Hoyos changed: What|Removed |Added CC||cehoyos at ag dot or.at --- Comment #12 from Carl Eugen Hoyos --- Should be fixed: http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=10f46815 https://trac.ffmpeg.org/ticket/7491 I wonder a little how the FFmpeg developers were supposed to find out about this bug...
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #11 from Martin Liška --- It was changed on trunk in: commit 371072bf395be11f36ef31bb3cfec06bbfc58597 Author: lawDate: Fri Sep 1 16:26:00 2017 + * varasm.c (bss_initializer_p): Do not put constants into .bss (categorize_decl_for_section): Handle bss_initializer_p returning false when DECL_INITIAL is NULL. * gcc.target/i386/const-in-bss.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251602 138bc75d-0d04-0410-961f-82ee72b054a4 Note the using an undefined behavior gives optimizer opportunity to optimize to any way. In this case GCC 7 generated working and GCC 8 not working code in case of ffmpeg.
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #10 from Manuel Lauss --- Built with gcc-7.3.0 and LTO it works fine; is this a bug in 7.3.0 instead then?
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 Martin Liška changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |INVALID --- Comment #9 from Martin Liška --- So it's really caused by --enable-hardcoded-tables. With that you have in sinewin.c pre-processed source file: extern const INTFLOAT __attribute__ ((aligned (32))) ff_sine_960[960]; As you can se, it's const (a.k.a. READONLY). Thus doing a write to it in ff_sine_window_init causes a segfault. Thus closing as invalid.
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 Martin Liška changed: What|Removed |Added Status|WAITING |ASSIGNED Assignee|unassigned at gcc dot gnu.org |marxin at gcc dot gnu.org --- Comment #8 from Martin Liška --- Stupid mistake from me. Now I can reproduce that: LD_LIBRARY_PATH=./libavcodec/ gdb --args ./ffmpeg -i small.mp4
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #7 from Martin Liška --- (In reply to Manuel Lauss from comment #6) > (In reply to Martin Liška from comment #5) > > (In reply to Manuel Lauss from comment #4) > > > (In reply to Martin Liška from comment #3) > > > > (In reply to Manuel Lauss from comment #2) > > > > > This is the most minimal ffmpeg config that can trigger the segfault. > > > > > The > > > > > interesting switch is "--enabled-hardcoded-tables". I use the "mpv" > > > > > Player > > > > > with a standard mp4 video file to trigger it > > > > > (https://github.com/mpv-player/mpv/archive/v0.27.2.zip) > > > > > > > > Good. so we have minimal set of options for ffmpeg. Now please explain > > > > me > > > > how to build the MPV tool? Is it really needed? Can't one trigger that > > > > directly with ffmepg? Please upload somewhere the mp4 file so that I can > > > > reproduce it. > > > > > > The segfault happens during initialization of ffmpeg when mpv player > > > starts. > > > I can also trigger it with firefox on e.g. youtube: it crashes the tab. > > > > Ok, so please download following sample video: > > http://techslides.com/demos/sample-videos/small.mp4 > > > > And try to run ffmpeg to print info: > > ./ffmpeg -i small.mp4 > > > > Does it also segfault? > > Yes, same backtrace, same fault location. Hm, I put __builtin_abort to: static av_cold void aac_static_table_init(void) function. And it's unfortunately called. Probably because: $ ./ffmpeg -i small.mp4 test.mp3 ... Decoder (codec aac) not found for input stream #0:1 Are you sure the configure options enable the codec (AAC)?
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #6 from Manuel Lauss --- (In reply to Martin Liška from comment #5) > (In reply to Manuel Lauss from comment #4) > > (In reply to Martin Liška from comment #3) > > > (In reply to Manuel Lauss from comment #2) > > > > This is the most minimal ffmpeg config that can trigger the segfault. > > > > The > > > > interesting switch is "--enabled-hardcoded-tables". I use the "mpv" > > > > Player > > > > with a standard mp4 video file to trigger it > > > > (https://github.com/mpv-player/mpv/archive/v0.27.2.zip) > > > > > > Good. so we have minimal set of options for ffmpeg. Now please explain me > > > how to build the MPV tool? Is it really needed? Can't one trigger that > > > directly with ffmepg? Please upload somewhere the mp4 file so that I can > > > reproduce it. > > > > The segfault happens during initialization of ffmpeg when mpv player starts. > > I can also trigger it with firefox on e.g. youtube: it crashes the tab. > > Ok, so please download following sample video: > http://techslides.com/demos/sample-videos/small.mp4 > > And try to run ffmpeg to print info: > ./ffmpeg -i small.mp4 > > Does it also segfault? Yes, same backtrace, same fault location.
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #5 from Martin Liška --- (In reply to Manuel Lauss from comment #4) > (In reply to Martin Liška from comment #3) > > (In reply to Manuel Lauss from comment #2) > > > This is the most minimal ffmpeg config that can trigger the segfault. The > > > interesting switch is "--enabled-hardcoded-tables". I use the "mpv" > > > Player > > > with a standard mp4 video file to trigger it > > > (https://github.com/mpv-player/mpv/archive/v0.27.2.zip) > > > > Good. so we have minimal set of options for ffmpeg. Now please explain me > > how to build the MPV tool? Is it really needed? Can't one trigger that > > directly with ffmepg? Please upload somewhere the mp4 file so that I can > > reproduce it. > > The segfault happens during initialization of ffmpeg when mpv player starts. > I can also trigger it with firefox on e.g. youtube: it crashes the tab. Ok, so please download following sample video: http://techslides.com/demos/sample-videos/small.mp4 And try to run ffmpeg to print info: ./ffmpeg -i small.mp4 Does it also segfault? > > > ad mpv: unpack, configure with the following line (you need python3): > CCFLAGS="-O3 -march=znver1 -mtune=znver1 -flto=16 -fno-fat-lto-objects > -pipe" LINKFLAGS="-O3 -march=znver1 -mtune=znver1 -flto=16 > -fno-fat-lto-objects -pipe -Wl,--no-as-needed" ./waf --prefix=/usr > --libdir=/usr/lib64 --confdir=/etc/mpv --docdir=/usr/share/doc/mpv-0.27.2 > --htmldir=/usr/share/doc/mpv-0.27.2/html --enable-libmpv-shared > --disable-libmpv-static --disable-static-build --disable-optimize > --disable-debug-build --enable-html-build --disable-pdf-build > --enable-cplugins --disable-zsh-comp --disable-test --disable-android > --enable-iconv --disable-libsmbclient --enable-lua --lua=luajit > --disable-javascript --enable-x11 --disable-build-date configure > > ./waf build How the player knows where to find the built ffmpeg libraries?
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #4 from Manuel Lauss --- (In reply to Martin Liška from comment #3) > (In reply to Manuel Lauss from comment #2) > > This is the most minimal ffmpeg config that can trigger the segfault. The > > interesting switch is "--enabled-hardcoded-tables". I use the "mpv" Player > > with a standard mp4 video file to trigger it > > (https://github.com/mpv-player/mpv/archive/v0.27.2.zip) > > Good. so we have minimal set of options for ffmpeg. Now please explain me > how to build the MPV tool? Is it really needed? Can't one trigger that > directly with ffmepg? Please upload somewhere the mp4 file so that I can > reproduce it. The segfault happens during initialization of ffmpeg when mpv player starts. I can also trigger it with firefox on e.g. youtube: it crashes the tab. ad mpv: unpack, configure with the following line (you need python3): CCFLAGS="-O3 -march=znver1 -mtune=znver1 -flto=16 -fno-fat-lto-objects -pipe" LINKFLAGS="-O3 -march=znver1 -mtune=znver1 -flto=16 -fno-fat-lto-objects -pipe -Wl,--no-as-needed" ./waf --prefix=/usr --libdir=/usr/lib64 --confdir=/etc/mpv --docdir=/usr/share/doc/mpv-0.27.2 --htmldir=/usr/share/doc/mpv-0.27.2/html --enable-libmpv-shared --disable-libmpv-static --disable-static-build --disable-optimize --disable-debug-build --enable-html-build --disable-pdf-build --enable-cplugins --disable-zsh-comp --disable-test --disable-android --enable-iconv --disable-libsmbclient --enable-lua --lua=luajit --disable-javascript --enable-x11 --disable-build-date configure ./waf build
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2018-03-31 Ever confirmed|0 |1 --- Comment #3 from Martin Liška --- (In reply to Manuel Lauss from comment #2) > This is the most minimal ffmpeg config that can trigger the segfault. The > interesting switch is "--enabled-hardcoded-tables". I use the "mpv" Player > with a standard mp4 video file to trigger it > (https://github.com/mpv-player/mpv/archive/v0.27.2.zip) Good. so we have minimal set of options for ffmpeg. Now please explain me how to build the MPV tool? Is it really needed? Can't one trigger that directly with ffmepg? Please upload somewhere the mp4 file so that I can reproduce it.
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #2 from Manuel Lauss --- This is the most minimal ffmpeg config that can trigger the segfault. The interesting switch is "--enabled-hardcoded-tables". I use the "mpv" Player with a standard mp4 video file to trigger it (https://github.com/mpv-player/mpv/archive/v0.27.2.zip) configure --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-3.4.2-r1/html --mandir=/usr/share/man --enable-share d --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags=-O3 -ggdb -march=znver1 -mtune=znver1 -flto=16 -fno-fat-lto-objects -pipe --disable-static --enable-avfilter --enable-avresample --disable-stripping --disable-encoders --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=alsa --disable-indev=oss --disable -indev=jack --disable-outdev=alsa --disable-outdev=oss --disable-outdev=sdl --disable-bzlib --disable-runtime-cpudetect --disable-debug --disable-gcrypt --disable-gnutls --disable-gmp --enable-gpl --enable-hardco ded-tables --disable-iconv --disable-lzma --disable-network --disable-opencl --disable-openssl --disable-postproc --disable-libsmbclient --disable-ffplay --disable-sdl2 --disable-vaapi --disable-vdpau --disable-x lib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-zlib --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --disable-opengl --disable-libv4l2 - -disable-libpulse --disable-libdrm --disable-libopencore-amrwb --disable-libopencore-amrnb --disable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libcelt --disable-libgme --disable-libgsm --disa ble-mmal --disable-libmodplug --disable-libopus --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --disable-librsvg --disable-libvorbis --disable-libvpx --disable-libzvbi --disable-appkit -- disable-libbs2b --disable-chromaprint --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-ladspa --disable-libass --disable-libfreetype --disable-librubberband --disable-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2 --disa ble-mipsfpu --disable-altivec --disable-amd3dnow --disable-amd3dnowext --disable-fma4 --disable-xop --cpu=znver1 --enable-lto --disable-doc --disable-htmlpages --enable-manpages
[Bug lto/85132] ffmpeg runtime segfault with lto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85132 --- Comment #1 from Martin Liška --- Hi Manual. Can you please reduce a bit the configure options. The package requires many libraries as dependency. How do you invoke ffmpeg to expose the crash?