#48938: ffmpeg build failure on 10.6 --------------------------------+------------------------- Reporter: chilli.namesake@… | Owner: devans@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.3 Resolution: | Keywords: snowleopard Port: ffmpeg | --------------------------------+------------------------- Changes (by ryandesign@…): * owner: macports-tickets@… => devans@… * keywords: ffmpeg, buildfailure, 10.6, snowleopard => snowleopard * cc: ryandesign@…, jeremyhu@… (added) Comment: Snow Leopard is still supported to the extent that if something isn't working we will try to take a look at it if we can. But if the developers have made changes that make a software package require a newer version of OS X, then there's not much we can do about that. I don't know yet if that's the case here though or not. ----- The log shows that the first error is: {{{ :info:build libavfilter/avf_showcqt.c:38:10: error: #include expects "FILENAME" or <FILENAME> }}} This type of error is repeated a few times. Lines 36-39 of libavfilter/avf_showcqt.c are: {{{ #if CONFIG_LIBFREETYPE #include <ft2build.h> #include FT_FREETYPE_H #endif }}} This means that `CONFIG_LIBFREETYPE` is defined (as it should be), but that `FT_FREETYPE_H` (which should be defined in a file included by ft2build.h) is not defined. I think this happens because the compiler was invoked without specifying the directory where ft2build.h can be found (the argument `-I/opt/local/include/freetype2` is missing) though I don't understand why we didn't get a "file not found" error. It might be because this is not a normal compiler invocation, but rather an invocation of the preprocessor. This is a bug in ffmpeg (or else a bug in the gcc compiler exposed by ffmpeg's code, which ffmpeg should work around), reported with a proposed fix [https://lists.ffmpeg.org/pipermail/ffmpeg- devel/2015-September/178418.html here] (where it says that the clang compiler is not affected). This might not be a relevant error, since the build proceeds past it, but **we should probably apply this patch**. ----- The next error in the log is: {{{ :info:build ffplay.c:3217:46: error: missing binary operator before token "(" }}} Line 3217 of ffplay.c is: {{{ #if defined(__APPLE__) && SDL_VERSION_ATLEAST(1, 2, 14) }}} This implies that `SDL_VERSION_ATLEAST` is not defined. It should have been defined in SDL_version.h which is included by SDL.h which is included by ffplay.c. The reason is the same as above: this is another preprocessor invocation. The above fix should fix this as well. ----- The next error, and possibly the real problem, begins hundreds of lines of similar errors: {{{ :info:build In file included from /usr/lib/gcc/i686-apple- darwin10/4.2.1/include/xmmintrin.h:40, :info:build from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:29, :info:build from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32, :info:build from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125, :info:build from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20, :info:build from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21, :info:build from ffmpeg_videotoolbox.c:19: :info:build /usr/lib/gcc/i686-apple-darwin10/4.2.1/include/mmintrin.h:67: error: no previous prototype for ‘_mm_empty’ }}} We've had a report of that type of error with ffmpeg years ago in #36961 but it was closed without a resolution, and since that was only seen by two users and was with a now years-old version of ffmpeg that might not be relevant anymore. We also had a report of that error with mesa in #46827. In both tickets, Jeremy suggested removing "`-Werror=missing-prototypes`" from the build system. **We should try this**. -- Ticket URL: <https://trac.macports.org/ticket/48938#comment:2> MacPorts <https://www.macports.org/> Ports system for OS X