Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#55746 closed defect (fixed)

ffmpeg-devel@20180118: fails to build on 10.9

Reported by: Ionic (Mihai Moldovan) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.4.99
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: ffmpeg-devel

Description

warning: unknown warning option '-Werror=partial-availability'; did you mean '-Werror=availability'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-bool-operation'; did you mean '-Wno-bool-conversion'? [-Wunknown-warning-option]
warning: unknown warning option '-Werror=partial-availability'; did you mean '-Werror=availability'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-bool-operation'; did you mean '-Wno-bool-conversion'? [-Wunknown-warning-option]
libavcodec/videotoolboxenc.c:44:70: error: expected ')'
                                           const uint8_t * _Nullable *parameterSetPointerOut,
                                                                     ^
libavcodec/videotoolboxenc.c:42:43: note: to match this '('
typedef OSStatus (*getParameterSetAtIndex)(CMFormatDescriptionRef videoDesc,
                                          ^
libavcodec/videotoolboxenc.c:412:40: error: too many arguments to function call, expected 3, have 6
                                       NULL,
                                       ^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:77:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^
libavcodec/videotoolboxenc.c:427:44: error: too many arguments to function call, expected 3, have 6
                                           &ps_size,
                                           ^~~~~~~~~
libavcodec/videotoolboxenc.c:468:40: error: too many arguments to function call, expected 3, have 6
                                       NULL,
                                       ^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:77:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^
libavcodec/videotoolboxenc.c:486:44: error: too many arguments to function call, expected 3, have 6
                                           &ps_size,
                                           ^~~~~~~~~
libavcodec/videotoolboxenc.c:602:40: error: too many arguments to function call, expected 3, have 6
                                       NULL,
                                       ^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:77:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^
libavcodec/videotoolboxenc.c:1287:35: warning: incompatible pointer types assigning to 'getParameterSetAtIndex' (aka 'OSStatus (*)(CMFormatDescriptionRef, size_t, const uint8_t *)') from 'OSStatus (CMFormatDescriptionRef, size_t, const uint8_t **, size_t *, size_t *, int *)' [-Wincompatible-pointer-types]
        vtctx->get_param_set_func = CMVideoFormatDescriptionGetH264ParameterSetAtIndex;
                                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings and 6 errors generated.
gmake: *** [ffbuild/common.mak:60: libavcodec/videotoolboxenc.o] Error 1
gmake: *** Waiting for unfinished jobs....
2 warnings generated.

The issue is theoretically easy to fix by leaving out the _Nullable attribute, which is only supported by newer clang versions. I'll figure out what the earliest OS X version to support that is by compiling test code with different clang versions and checking against the Xcode versions table.

Change History (2)

comment:1 Changed 6 years ago by Mihai Moldovan <ionic@…>

Resolution: fixed
Status: newclosed

In a7d4a9cf718d8bbca721d5549aa6d3a1fad687d5/macports-ports:

ffmpeg-devel: support older Xcode versions by patching out _Nullable attribute usage for < 7.0.

Fixes: #55746

comment:2 Changed 6 years ago by pineapplemachine (Sophie Kirschner)

I am currently encountering an identical error on OSX 10.9 with Xcode 6.2 while attempting to compile ffmpeg 4.0.2.

CC	libavcodec/videotoolbox.o
warning: unknown warning option '-Werror=partial-availability'; did you mean '-Werror=availability'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-bool-operation'; did you mean '-Wno-bool-conversion'? [-Wunknown-warning-option]
2 warnings generated.
CC	libavcodec/videotoolboxenc.o
warning: unknown warning option '-Werror=partial-availability'; did you mean '-Werror=availability'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-bool-operation'; did you mean '-Wno-bool-conversion'? [-Wunknown-warning-option]
libavcodec/videotoolboxenc.c:44:70: error: expected ')'
                                           const uint8_t * _Nullable *parameterSetPointerOut,
                                                                     ^
libavcodec/videotoolboxenc.c:42:43: note: to match this '('
typedef OSStatus (*getParameterSetAtIndex)(CMFormatDescriptionRef videoDesc,
                                          ^
libavcodec/videotoolboxenc.c:412:40: error: too many arguments to function call, expected 3, have 6
                                       NULL,
                                       ^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:77:16: note: expanded from
      macro 'NULL'
#  define NULL ((void*)0)
               ^
libavcodec/videotoolboxenc.c:427:44: error: too many arguments to function call, expected 3, have 6
                                           &ps_size,
                                           ^~~~~~~~~
libavcodec/videotoolboxenc.c:468:40: error: too many arguments to function call, expected 3, have 6
                                       NULL,
                                       ^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:77:16: note: expanded from
      macro 'NULL'
#  define NULL ((void*)0)
               ^
libavcodec/videotoolboxenc.c:486:44: error: too many arguments to function call, expected 3, have 6
                                           &ps_size,
                                           ^~~~~~~~~
libavcodec/videotoolboxenc.c:602:40: error: too many arguments to function call, expected 3, have 6
                                       NULL,
                                       ^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include/stddef.h:77:16: note: expanded from
      macro 'NULL'
#  define NULL ((void*)0)
               ^
libavcodec/videotoolboxenc.c:1284:35: warning: incompatible pointer types assigning to 'getParameterSetAtIndex' (aka 'OSStatus
      (*)(CMFormatDescriptionRef, size_t, const uint8_t *)') from 'OSStatus (CMFormatDescriptionRef, size_t, const uint8_t **, size_t *, size_t *, int
      *)' [-Wincompatible-pointer-types]
        vtctx->get_param_set_func = CMVideoFormatDescriptionGetH264ParameterSetAtIndex;
                                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings and 6 errors generated.
make: *** [libavcodec/videotoolboxenc.o] Error 1

Information about my clang installation:

sophie:ffmpeg-4.0.2 pineapple$ clang --version
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
Note: See TracTickets for help on using tickets.