FreeBSD 10.1 I tried use version from pkg and port tried build with/without OpenGl/VDPAU/JACK support and maximum what I got, it: $ mpv anything.mp3/mp4 "Illegal instruction" same with bakaplayer(as expected it's just gui).
Can you be a little more specific by providing: 1. uname -a 2. Tiny description on how you are updating ports and/or packages. 3. Full syslog message about this situation (can be found at /var/log/messages). 4. Core dump backtrace: - you will need to locate your core file, it should reside in the directory you are standing; - now you should open it with gdb: "gdb `which mpv` mpv.core"; - show backtrace by typing "bt full" and post it here.
1. uname -a FreeBSD {myhost} 10.1-RELEASE-p6 FreeBSD 10.1-RELEASE-p6 #0: Tue Feb 24 18:57:59 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386 2. # pkg update(usually pkg upgrade) or/and portmaster -a 3.Mar 21 03:23:35 {myhost} pkg: mpv-0.8.3,1 deinstalled Mar 21 03:23:39 {myhost} pkg-static: mpv-0.8.3,1 installed Mar 21 03:24:12 {myhost} kernel: pid 22249 (mpv), uid 1001: exited on signal 4 Mar 21 03:29:34 {myhost} kernel: pid 25543 (mpv), uid 1001: exited on signal 4 Mar 21 03:29:47 {myhost} kernel: pid 25588 (mpv), uid 1001: exited on signal 4 Mar 21 03:33:11 {myhost} pkg: mpv-0.8.3,1 deinstalled Mar 21 03:33:14 {myhost} pkg-static: mpv-0.8.3,1 installed Mar 21 03:33:58 {myhost} kernel: pid 27202 (mpv), uid 1001: exited on signal 4 Mar 21 03:34:07 {myhost} kernel: pid 27203 (mpv), uid 1001: exited on signal 4 4. # gdb mpv -c mpv.coreGNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd"...(no debugging symbols found)... warning: exec file is newer than core file. Core was generated by `mpv'. Program terminated with signal 4, Illegal instruction. #0 0x29f43d73 in ?? () (gdb) bt full #0 0x29f43d73 in ?? () No symbol table info available. #1 0x00000038 in ?? () No symbol table info available. #2 0x28172000 in ?? () No symbol table info available. #3 0x28172200 in ?? () No symbol table info available. #4 0x28172400 in ?? () No symbol table info available. #5 0x28172600 in ?? () No symbol table info available. #6 0x28172800 in ?? () No symbol table info available. #7 0x28172a00 in ?? () No symbol table info available. #8 0x28172c00 in ?? () No symbol table info available. #9 0x0000000f in ?? () No symbol table info available. #10 0x0000000e in ?? () No symbol table info available. #11 0x28173200 in ?? () No symbol table info available. #12 0x28173400 in ?? () No symbol table info available. #13 0x28173600 in ?? () No symbol table info available. #14 0x28173800 in ?? () No symbol table info available. #15 0x28173a00 in ?? () No symbol table info available. #16 0x28173c00 in ?? () No symbol table info available. #17 0x28173e00 in ?? () No symbol table info available. #18 0x28174000 in ?? () No symbol table info available. #19 0x28174200 in ?? () No symbol table info available. #20 0x28174400 in ?? () No symbol table info available. #21 0x28174600 in ?? () No symbol table info available. #22 0x28174800 in ?? () No symbol table info available. #23 0x28174a00 in ?? () No symbol table info available. #24 0x28174c00 in ?? () No symbol table info available. #25 0x28174e00 in ?? () No symbol table info available. #26 0x28175000 in ?? () No symbol table info available. #27 0x28175200 in ?? ()
(In reply to c.kworr from comment #1) (In reply to sasamotikomi from comment #2) Do i need provide some additional information? # pkg info mpv mpv-0.8.3,1 Name : mpv Version : 0.8.3,1 Installed on : Sat Mar 28 05:01:49 2015 Origin : multimedia/mpv Architecture : freebsd:10:x86:32 Prefix : /usr/local Categories : multimedia audio Licenses : GPLv2 Maintainer : gblach@FreeBSD.org WWW : http://mpv.io/ Comment : Free and open-source general-purpose video player Options : BS2B : off CACA : off CDIO : off DOCS : on ENCA : off JACK : off LADSPA : off LCMS2 : off LIBBLURAY : off LIBGUESS : off LIRC : off LUAJIT : off OPENGL : off PULSEAUDIO : off SMB : off V4L : off VAAPI : off VDPAU : off XINERAMA : off YTDL : off ZSH : off Shared Libs required: libswscale.so.2 libswresample.so.0 liblua-5.2.so libjpeg.so.8 libdvdread.so.4 libdvdnav.so.4 libavutil.so.52 libavformat.so.55 libavfilter.so.4 libavdevice.so.55 libavcodec.so.55 libass.so.5 libXv.so.1 libXrandr.so.2 libXext.so.6 libX11.so.6 Shared Libs provided: libmpv.so.1 Annotations : repo_type : binary repository : FreeBSD Flat size : 2.42MiB Description : Mpv is a free and open-source general-purpose video player. Mpv is based on the MPlayer and mplayer2 projects which it greatly improves. WWW: http://mpv.io/
(In reply to sasamotikomi from comment #3) Dunno, I was just trying to help. There are a lot of different possibilities on what's really is going on. They can be tested but this will take time. I can't really say what was the culprit but: 1. Try to select one way - use packages or ports. This is not rule of thumb, this way you can have more consistent setup. 2. What is your CPU exactly? Clang had some problems compiling for older i386 CPUs. You can try playing with CPUTYPE in /etc/make.conf by setting it to 'native', or some older variant of your current core. 3. You can also play with GCC. To build port with GCC you need to set USE_GCC=yes before building it. 4. Your stacktrace is useless as it was generated for another binary. And installed binary actually has no debug information. Comment out 'post-stage:' target in Makefile to not strip it and try again. @gblach: maybe it would be nice to add DEBUG option to install unstripped binaries? 5. The error can originate from some other library which mpv only uses. Probably this would mean we need to repeat steps 2 and 3 on that library. To understand which library is source of problems we need to obtain a good stacktrace at least with function names. 6. Instead of using GCC you can try using more fresh clang, like lang/clang36. For that instead of setting USE_GCC set CC=clang36 and try building port that way. The worst thing here is that we actually can't reproduce this problem as it's nailing down to your (or default) compiler producing code that is not suitable to run on your CPU.
It is the -O2 flag that makes mpv segfaults with every file. So my blind guess is clang is the problem. Set the CFLAGS environment variable to something like "-Wall -g" or just "" will solve it. ( I know there is --disable-optimize in Makefile but it didn't work the first time for me). I'm not sure about this as I cannot replicate it anymore : If I have not yet tried setting CFLAGS, the system will enable -O2 on every mpv compilation, even with --disable-optimize in mpv Makefile. If I have tried at least once, then that symptom goes away. I suspect the mpv binaries that I get using pkg install suffers from the above symptom too, which means it is built with -O2 enabled regardless of --disable-optimize. I only have DEVELOPER="yes" in /etc/make.conf. I have not changed anything related to pkg settings. I upgraded my ports yesterday using portsnap fetch and portsnap update. I only use 'pkg delete mpv' to remove mpv binaries and build ports and 'make install'. FreeBSD ksix.freebsd 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 22:51:51 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC i386
(In reply to c.kworr from comment #4) 1. check 2. Sempron 2500+ literally CPUTYPE=athlon-xp 3. I tried use GCC/CLANG34/35/36 4. I try run it from root and got: /etc/make.conf DEVELOPER="yes" CFLAGS="" #0 0x2a0ebd73 in cvRegisterType () from /usr/local/lib/libopencv_core.so.2 [New Thread 2b403080 (LWP 101204/mpv)] (gdb) bt full #0 0x2a0ebd73 in cvRegisterType () from /usr/local/lib/libopencv_core.so.2 No symbol table info available. #1 0x2a0fb15b in std::__1::__deque_base<char, std::__1::allocator<char> >::clear () from /usr/local/lib/libopencv_core.so.2 No symbol table info available. #2 0x2a1298d2 in cv::dotProd_<unsigned char> () from /usr/local/lib/libopencv_core.so.2 No symbol table info available. #3 0x29fb288d in _init () from /usr/local/lib/libopencv_core.so.2 No symbol table info available. #4 0x00000000 in ?? () No symbol table info available. (gdb) 6. CC=clang36 requested fully path to compiler: CC=/usr/local/bin/clang36 CXX=/usr/local/bin/clang++36 CPP=/usr/local/bin/clang-cpp36 (In reply to Frans Suber from comment #5) No, look like isn't compilers problem exactly same with GCC/CLANG34/35/36. It isn't optimize flags problem, except flag for i386 is -SSE2 or something, I don't know what really flag's is used.
(In reply to sasamotikomi from comment #6) Also I got ~104-110 GCC relased warning then use Glang and ~10-20 about unused value. With CPUTYPE=athlon-xp in make.conf stacktrace is same.
This is hard for me to reproduce as I don't use any i386 HW, as well as the submitter doesn't seem to know how to properly compile the port to use debuging as the 2 stacks he added are as useless as a hameless man. All these compiler flags causes more harm than it helps, so skip it, you have more chances of it not causing a problem using no flags than trying to add in all these flags to gain a 0.001% increase in speed hardly anything worth while. But I will work on it when I have free time currently finding work is more important that submiters need for mpv at this point in time.....
I'll update mpv to the new stable release 0.9.1 ref: https://github.com/mpv-player/mpv/releases/tag/v0.9.1
Created attachment 156497 [details] Update mpv to v0.9.1
Please, be sure to uninstall multimedia/ffmpeg before trying to update mpv port. Then, you can safely install ffmpeg port again.
Created attachment 156518 [details] Update mpv to v0.9.1 - Added CONFLICTS_BUILD variable to avoid ffmpeg build error. - Cleanup Makefile (e.g. LIRC support was removed) See ChangeLog from previous release for further details: https://github.com/mpv-player/mpv/releases/tag/v0.9.0
A commit references this bug: Author: pi Date: Fri May 8 20:41:27 UTC 2015 New revision: 385830 URL: https://svnweb.freebsd.org/changeset/ports/385830 Log: multimedia/mpv: 0.8.3 -> 0.9.1 - Added CONFLICTS_BUILD variable to avoid ffmpeg build error - Cleanup Makefile (e.g. LIRC support was removed) ChangeLog https://github.com/mpv-player/mpv/releases/tag/v0.9.1 PR: 198758 Submitted by: Carlos Jacobo Puga Medina <cpm@fbsd.es> (maintainer) Changes: head/multimedia/mpv/Makefile head/multimedia/mpv/distinfo head/multimedia/mpv/files/ head/multimedia/mpv/files/patch-wscript head/multimedia/mpv/pkg-plist
tested build on 10.1a, 9.3a, 8.4i, looks all fine. Now we need feedback from the crash reports if it is fixed ?
(In reply to Carlos Jacobo Puga Medina from comment #11) Nothing changes, still "Illegal instruction".
(In reply to sasamotikomi from comment #15) Please, try to play a video with '-v' and paste here the log. % mpv -v any.file
Created attachment 156737 [details] patch - Fix crash on i386 - Fix YTDL option Tested on 10.1/i386
Ok, the problem seems to be related with the libass ASM routines. So I will fix it ASAP.
(In reply to Carlos Jacobo Puga Medina from comment #18) To solve this problem, just apply the last patch and rebuild multimedia/libass without ASM option. After that mpv works like a charm!
A commit references this bug: Author: pi Date: Wed May 13 06:14:39 UTC 2015 New revision: 386202 URL: https://svnweb.freebsd.org/changeset/ports/386202 Log: multimedia/mpv: change optimization on i386 PR: 198758 Submitted by: Carlos Jacobo Puga Medina <cpm@fbsd.es> (maintainer) Changes: head/multimedia/mpv/Makefile
(In reply to Carlos Jacobo Puga Medina from comment #19) Again, change nothing for me: # pkg info libass libass-0.12.1 Name : libass Version : 0.12.1 Installed on : Wed May 13 11:56:58 MSK 2015 Origin : multimedia/libass Architecture : freebsd:10:x86:32 Prefix : /usr/local Categories : multimedia devel Licenses : ISCL Maintainer : multimedia@FreeBSD.org WWW : https://github.com/libass/libass Comment : Portable ASS/SSA subtitle renderer Options : ASM : off ENCA : on FONTCONFIG : on HARFBUZZ : on $ mpv anything $ Illegal instruction # mpv anything # Illegal instruction (core dumped) mplayer work fine for me so it's not libass.
Carlos changed the CFLAGS for i386, so did you also rebuild mpv ?
(In reply to Kurt Jaeger from comment #22) Yes, I rebuild mpv. # pkg info mpv mpv-0.9.1_1,1 Name : mpv Version : 0.9.1_1,1 Options : BS2B : off CACA : off CDIO : off DOCS : off ENCA : off JACK : on LADSPA : off LCMS2 : off LIBBLURAY : off LIBGUESS : off LUAJIT : off OPENGL : on PULSEAUDIO : off SMB : off V4L : off VAAPI : off VDPAU : on XINERAMA : off YTDL : off ZSH : off
(In reply to sasamotikomi from comment #23) It's so weird. Rebuild all mpv build dependencies with VDPAU disabled. % uname -a FreeBSD bsdaemon 10.1-STABLE FreeBSD 10.1-STABLE #0 r282689: Sun May 10 02:05:35 UTC 2015 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC i386 I used the following options: % make pretty-print-config -BS2B +DOCS +ENCA -LADSPA -LCMS2 -LIBGUESS -LUAJIT -ZSH IN[ -CDIO -LIBBLURAY -V4L -YTDL -SMB ] VO[ -CACA -OPENGL -VAAPI -VDPAU +XINERAMA ] AO[ -JACK -PULSEAUDIO ]
(In reply to Carlos Jacobo Puga Medina from comment #24) It's does not matter: $ uname -a FreeBSD {MYHOST} 10.1-RELEASE-p9 FreeBSD 10.1-RELEASE-p9 #0: Tue Apr 7 01:07:33 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386 With -STABLE I have problem with fonts: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199310 # make pretty-print-config -BS2B +DOCS +ENCA -LADSPA -LCMS2 -LIBGUESS -LUAJIT -ZSH IN[ -CDIO -LIBBLURAY -V4L -YTDL -SMB ] VO[ -CACA -OPENGL -VAAPI -VDPAU +XINERAMA ] AO[ -JACK -PULSEAUDIO ] result is same: mpv anything Illegal instruction (core dumped)
(In reply to sasamotikomi from comment #25) Did you rebuild all mpv dependencies? # portmaster -Rf mpv
(In reply to Carlos Jacobo Puga Medina from comment #26) It's really opencv problem, opencv crash ffmpeg, mplayer work just because not use ffmpeg from start: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199715 Reason: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200234 Can you remove useless -O0 and switch back from ffmpeg26 to ffmpeg( conflicted with to many ports who still use ffmpeg) or use ffmpeg26 as optional option.
Created attachment 156835 [details] Fix conflict between ffmpeg and ffmpeg26
(In reply to sasamotikomi from comment #27) CFLAGS= -O0 is necessary to avoid the following problem on i386: AO: [oss] 44100Hz mono 1ch s32 Unable to convert audio input format to output format. Audio filter chain: [in] 44100Hz mono 1ch floatp [out] 44100Hz mono 1ch s32 <- [ao] 44100Hz mono 1ch s32 Could not create audio filter chain. Couldn't find matching filter/ao format! Audio: no audio The conflict between ffmpeg and ffmpeg26 has been solved. Note that mpv-0.9.1 needs at least FFmpeg 2.4.0.
Can we close this issue?
A commit references this bug: Author: pi Date: Wed May 20 05:06:16 UTC 2015 New revision: 386837 URL: https://svnweb.freebsd.org/changeset/ports/386837 Log: multimedia/mpv: fix conflict between ffmpeg and ffmpeg26 PR: 198758 Submitted by: Carlos J Puga Medina <cpm@fbsd.es> (maintainer) Changes: head/multimedia/mpv/Makefile
Committed, thanks.
(In reply to Carlos Jacobo Puga Medina from comment #30) I reopen bug, problem isn't fixed: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200466 also can you open two separate bug with OSS and libass.
(In reply to sasamotikomi from comment #33) I don't have any problem with opencv port. Indeed, I have it enabled on i386 and ffmpeg builds without errors. If I've understood correctly, disabling the opencv support, then mpv works as intended?
(In reply to Carlos Jacobo Puga Medina from comment #34) Do you use i386 VM or real pre-sse2/3 hardware? Becouse it's easy to repeat on real i386 hardware and possible pre-sse3 amd64. Yes, you understand correctly, disabling the opencv support, then ffmpeg works as intended. Also I can't repeat OSS problem with channel and libass "crash": I get commented crash fix and add few optimization flags. # Fix crash on i386 #.if ${ARCH} == "i386" #CFLAGS:= ${CFLAGS:N-O*} -O0 #.endif CFLAGS+= -03 -msse And build failed: ===> Configuring for mpv-0.9.2,1 Setting top to : /usr/ports/multimedia/mpv/work/mpv-0.9.2 Setting out to : /usr/ports/multimedia/mpv/work/mpv-0.9.2/build Checking for waf version in 1.8.4-1.9.0 : ok Checking for program 'cc' : /usr/local/bin/clang36 Checking for program 'pkg-config' : pkgconf Checking for program 'ar' : /usr/bin/ar Checking for program 'perl' : /usr/local/bin/perl Checking for program 'rst2man' : /usr/local/bin/rst2man Checking for program 'rst2pdf' : not found Checking for program 'windres' : not found Checking for 'gcc' (C compiler) : not found Checking for 'clang' (C compiler) : /usr/local/bin/clang36 Detected target OS: : os-freebsd Checking for compiler flags -Werror=implicit-function-declaration : no Checking for compiler flags -Wno-error=deprecated-declarations : no Checking for compiler flags -Wno-error=unused-function : no Checking for compiler flags -Wempty-body : no Checking for compiler flags -Wdisabled-optimization : no Checking for compiler flags -Wstrict-prototypes : no Checking for compiler flags -Wno-format-zero-length : no Checking for compiler flags -Werror=format-security : no Checking for mpv CLI player : yes Checking for shared library : yes Checking for static library : disabled Checking for static build : disabled Checking for whether to include binary compile time : yes Checking for whether to optimize : disabled Checking for whether to compile-in debugging information : disabled Checking for manpage generation : yes Checking for pdf manual generation : disabled Checking for dynamic loader : no Checking for dlopen : not found any of libdl, os-win32, os-cygwin Checking for compilation of default filters for vf_dlopen : disabled Checking for zsh completion : disabled Checking for inline assembly (currently without effect) : yes Checking for test suite (using cmocka) : disabled Checking for generate a clang compilation database : disabled Checking for compiler support for noexecstack : no Checking for linker support for --nxcompat --no-seh --dynamicbase : no Checking for -lm : no Checking for MinGW : os-win32 not found Checking for POSIX environment : no Checking for development environment : not found any of mingw, posix Unable to find either POSIX or MinGW-w64 environment, or compiler does not work. ===> Script "configure" failed unexpectedly. Please report the problem to cpm@fbsd.es [maintainer] and attach the "/usr/ports/multimedia/mpv/work/mpv-0.9.2/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a /usr/local/sbin/pkg-static info -g -Ea). *** Error code 1
(In reply to sasamotikomi from comment #35) Yes, I'm using a real i386 hardware. Please, be sure that you have installed the FreeBSD sources. Checking for POSIX environment : no Checking for development environment : not found any of mingw, posix Unable to find either POSIX or MinGW-w64 environment, or compiler does not work.
This PR can be closed, if the OP doesn't have more issues.
(In reply to Carlos J Puga Medina from comment #37) Yes, that problem is fixed I don't close this PR just because you will forget write two separate PR's (libASS ASM and OSS+Cflags = crash, OSS bug I can reproduce but libass).
(In reply to sasamotikomi from comment #38) LOL, why I should open a couple of PRs? I think that you are the responsible to do that :)
(In reply to Carlos J Puga Medina from comment #39) Nevermind I done it: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202587 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202588 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202589
(In reply to sasamotikomi from comment #40) OK, let me check!