Closed Bug 1153013 Opened 5 years ago Closed 5 years ago

build fails with dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:82:47: error: unknown attribute 'alloc_size' ignored [-Werror,-Wunknown-attributes]

Categories

(Core :: Audio/Video, defect)

40 Branch
x86_64
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla40
Tracking Status
firefox40 --- fixed

People

(Reporter: keeler, Assigned: keeler)

Details

Attachments

(1 file)

3:39.52 Unified_cpp_fmp4_ffmpeg_libav540.o
 3:41.66 In file included from /home/keeler/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/media/fmp4/ffmpeg/libav54/Unified_cpp_fmp4_ffmpeg_libav540.cpp:2:
 3:41.66 In file included from /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/../FFmpegAudioDecoder.cpp:10:
 3:41.67 In file included from /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/../FFmpegAudioDecoder.h:10:
 3:41.67 In file included from /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/../FFmpegDataDecoder.h:11:
 3:41.68 In file included from /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/../FFmpegLibs.h:13:
 3:41.68 In file included from /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavformat/avformat.h:207:
 3:41.68 In file included from /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavformat/avio.h:31:
 3:41.68 In file included from /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/common.h:355:
 3:41.69 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:82:47: error: unknown attribute 'alloc_size' ignored [-Werror,-Wunknown-attributes]
 3:41.69 void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1);
 3:41.69                                               ^
 3:41.69 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:69:47: note: expanded from macro 'av_alloc_size'
 3:41.70     #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
 3:41.70                                               ^
 3:41.70 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:93:1: error: unknown attribute 'alloc_size' ignored [-Werror,-Wunknown-attributes]
 3:41.70 av_alloc_size(1, 2) static inline void *av_malloc_array(size_t nmemb, size_t size)
 3:41.71 ^
 3:41.71 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:69:47: note: expanded from macro 'av_alloc_size'
 3:41.71     #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
 3:41.72                                               ^
 3:41.72 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:112:42: error: unknown attribute 'alloc_size' ignored [-Werror,-Wunknown-attributes]
 3:41.72 void *av_realloc(void *ptr, size_t size) av_alloc_size(2);
 3:41.73                                          ^
 3:41.74 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:69:47: note: expanded from macro 'av_alloc_size'
 3:41.75     #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
 3:41.75                                               ^
 3:41.75 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:132:48: error: unknown attribute 'alloc_size' ignored [-Werror,-Wunknown-attributes]
 3:41.75 void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1);
 3:41.75                                                ^
 3:41.75 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:69:47: note: expanded from macro 'av_alloc_size'
 3:41.76     #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
 3:41.76                                               ^
 3:41.76 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:144:1: error: unknown attribute 'alloc_size' ignored [-Werror,-Wunknown-attributes]
 3:41.76 av_alloc_size(1, 2) static inline void *av_mallocz_array(size_t nmemb, size_t size)
 3:41.76 ^
 3:41.76 /home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h:69:47: note: expanded from macro 'av_alloc_size'
 3:41.76     #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__)))
 3:41.76                                               ^
 3:41.76 5 errors generated.
 3:41.76 
 3:41.76 In the directory  /home/keeler/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/media/fmp4/ffmpeg/libav54
 3:41.76 The following command failed to execute properly:
 3:41.76 /usr/bin/ccache clang++ -o Unified_cpp_fmp4_ffmpeg_libav540.o -c -I../../../../../dist/stl_wrappers -I../../../../../dist/system_wrappers -include /home/keeler/mozilla-central/config/gcc_hidden.h -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DMOZ_GLUE_IN_PROGRAM -DAB_CD=en-US -DNO_NSPR_10_SUPPORT -I/home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54 -I. -I/home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/.. -I/home/keeler/mozilla-central/dom/media/fmp4/ffmpeg/libav54/include -I../../../../../dist/include -I/home/keeler/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/nspr -I/home/keeler/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/include/nss -fPIC -Qunused-arguments -DMOZILLA_CLIENT -include ../../../../../mozilla-config.h -MD -MP -MF .deps/Unified_cpp_fmp4_ffmpeg_libav540.o.pp -Qunused-arguments -Qunused-arguments -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Werror=endif-labels -Werror=int-to-pointer-cast -Werror=missing-braces -Werror=parentheses -Werror=pointer-arith -Werror=return-type -Werror=sequence-point -Werror=switch -Werror=trigraphs -Werror=type-limits -Werror=unused-label -Werror=non-literal-null-conversion -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-error=uninitialized -Wno-error=deprecated-declarations -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DDEBUG -DTRACING -g -fno-omit-frame-pointer -Werror /home/keeler/mozilla-central/obj-x86_64-unknown-linux-gnu/dom/media/fmp4/ffmpeg/libav54/Unified_cpp_fmp4_ffmpeg_libav540.cpp
 3:41.76 /home/keeler/mozilla-central/config/rules.mk:930: recipe for target 'Unified_cpp_fmp4_ffmpeg_libav540.o' failed
 3:41.76 gmake[5]: *** [Unified_cpp_fmp4_ffmpeg_libav540.o] Error 1
 3:41.76 /home/keeler/mozilla-central/config/recurse.mk:74: recipe for target 'dom/media/fmp4/ffmpeg/libav54/target' failed
 3:41.77 gmake[4]: *** [dom/media/fmp4/ffmpeg/libav54/target] Error 2
 3:41.77 gmake[4]: *** Waiting for unfinished jobs....
 3:42.18 libdom_xul_templates.a.desc
 3:44.75 libdom_svg.a.desc
 3:44.78 /home/keeler/mozilla-central/config/recurse.mk:36: recipe for target 'compile' failed
 3:44.78 gmake[3]: *** [compile] Error 2
 3:44.78 /home/keeler/mozilla-central/config/rules.mk:541: recipe for target 'default' failed
 3:44.78 gmake[2]: *** [default] Error 2
 3:44.78 /home/keeler/mozilla-central/client.mk:400: recipe for target 'realbuild' failed
 3:44.78 gmake[1]: *** [realbuild] Error 2
 3:44.78 client.mk:171: recipe for target 'build' failed
 3:44.78 gmake: *** [build] Error 2
 3:44.81 2 compiler warnings present.
you're using clang. a quick search indicated a bug in clang (or maybe it was removed on purpose) support of gcc attributes.

this is 3rd party libav headers.

don't use -Werror,-Wunknown-attributes ?
only way this attribute is defined is if AV_GCC_VERSION_AT_LEAST(3,1) is true.
Well, clang is a supported compiler and --enable-warnings-as-errors helps prevent breakage on inbound, so for now why don't we just go with disabling unknown-attibute warnings when using clang to compile those directories.
Attachment #8591101 - Flags: review?(jyavenard)
Attachment #8591101 - Flags: review?(jyavenard) → review+
Still would be keen to know why AV_GCC_VERSION_AT_LEAST(4,3) returns true when using clang!

av_alloc_size shouldn't be defined when not using gcc
Thanks for the quick review. clang 3.5 appears to define __GNUC__ as 4 and __GNUC_MINOR__ as 3, so AV_GCC_VERSION_AT_LEAST(4,3) ends up being true. Looks like clang used to sort-of support alloc_size but now doesn't: https://github.com/neovim/neovim/issues/429

I filed a bug with libav: https://bugzilla.libav.org/show_bug.cgi?id=844 but I don't know how much traction that is going to get.
https://hg.mozilla.org/mozilla-central/rev/9edcd70834db
Assignee: nobody → dkeeler
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
You need to log in before you can comment on or make changes to this bug.