Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

fail to build ffmpeg with icc 14

applemax82
Beginner
821 Views
Hi, I use the following command to build the latest ffmpeg from master branch: ./configure --cc=/opt/intel/bin/icc --enable-version3 --enable-asm --enable-avfilter --disable-static --enable-shared --enable-gpl --enable-nonfree --prefix=/usr/local/ --extra-cflags='-I/usr/local/include --extra-ldflags='-L/usr/local/lib --enable-stripping make But I fail to compile ffmpeg, and error message is shown as below: icc: command line warning #10121: overriding '-std=gnu99' with '-std=c99' libavutil/cpu.c(48): error: identifier "ATOMIC_VAR_INIT" is undefined static atomic_int cpu_flags = ATOMIC_VAR_INIT(-1); ^ libavutil/cpu.c(48): error: function call is not allowed in a constant expression static atomic_int cpu_flags = ATOMIC_VAR_INIT(-1); ^ compilation aborted for libavutil/cpu.c (code 2) make: *** [libavutil/cpu.o] Error 2 make: *** Waiting for unfinished jobs.... In file included from /opt/intel/include/xmmintrin.h(24), from /opt/intel/include/emmintrin.h(39), from /opt/intel/include/pmmintrin.h(21), from /opt/intel/include/tmmintrin.h(14), from /opt/intel/include/smmintrin.h(23), from /opt/intel/include/nmmintrin.h(24), from /opt/intel/include/wmmintrin.h(23), from /opt/intel/include/immintrin.h(14), from libavutil/x86/intmath.h(30), from libavutil/intmath.h(33), from libavutil/common.h(106), from libavutil/display.h(25), from libavutil/display.c(25): /opt/intel/include/mmintrin.h(162): warning #2959: function prototype is missing the argument types extern __m64 __ICL_INTRINCC _mm_setzero_si64(); ^ Why? icc version is shown as below: icc (ICC) 14.0.2 20140120 Copyright (C) 1985-2014 Intel Corporation. All rights reserved. [root@push work]# icc --version icc (ICC) 14.0.2 20140120 Copyright (C) 1985-2014 Intel Corporation. All rights reserved. Thanks Regards Andrew
0 Kudos
3 Replies
Judith_W_Intel
Employee
820 Views

 

Is there a reason you are using version 14? The latest supported release is 18.

0 Kudos
applemax82
Beginner
820 Views

is it enough to build ffmpeg using icc 14.

I think there is no need updating icc except for this issue.

0 Kudos
applemax82
Beginner
820 Views

I fail to build the latest ffmpeg from master branch via icc 18. Compiling command and error messages are shown as follows:

building command:

./configure --cc=/opt/intel/bin/icc --enable-version3 --enable-asm --enable-avfilter --disable-static --enable-shared --enable-gpl --enable-nonfree --prefix=/usr/local/ --extra-cflags='-I/usr/local/include --extra-ldflags='-L/usr/local/lib --enable-stripping

make -j10

error messages:

libavcodec/h264_cabac.c(1264): (col. 1) remark: ff_h264_init_cabac_states has been targeted for automatic cpu dispatch
CC libavcodec/h264dec.o
libavcodec/h264_ps.c(727): (col. 1) remark: ff_h264_decode_picture_parameter_set has been targeted for automatic cpu dispatch
libavcodec/h264_loopfilter.c(722): (col. 1) remark: ff_h264_filter_mb has been targeted for automatic cpu dispatch
libavcodec/h264chroma_template.c(207): (col. 1) remark: put_h264_chroma_mc1_8_c has been targeted for automatic cpu dispatch
libavcodec/h264_refs.c(300): (col. 1) remark: ff_h264_build_ref_list has been targeted for automatic cpu dispatch
CC libavcodec/h264dsp.o
libavcodec/h264_slice.c(2763): error: a value of type "int" cannot be assigned to an entity of type "atomic_int"
                  sl->er.error_count = 0;
                                     ^
 
libavcodec/h264_slice.c(2787): error: expression must have arithmetic or pointer type
                  h->slice_ctx[0].er.error_count += h->slice_ctx.er.error_count;
                  ^
 
compilation aborted for libavcodec/h264_slice.c (code 2)
make: *** [libavcodec/h264_slice.o] Error 2
make: *** Waiting for unfinished jobs....
libavcodec/h264chroma_template.c(207): (col. 1) remark: put_h264_chroma_mc2_8_c has been targeted for automatic cpu dispatch
libavcodec/h264chroma_template.c(207): (col. 1) remark: put_h264_chroma_mc8_8_c has been targeted for automatic cpu dispatch
libavcodec/h264dec.c(104): (col. 1) remark: ff_h264_draw_horiz_band has been targeted for automatic cpu dispatch
libavcodec/h264_refs.c(609): (col. 1) remark: ff_h264_execute_ref_pic_marking has been targeted for automatic cpu dispatch
libavcodec/h264dec.c(484): (col. 1) remark: ff_h264_flush_change has been targeted for automatic cpu dispatch
libavcodec/h264chroma_template.c(208): (col. 1) remark: avg_h264_chroma_mc8_8_c has been targeted for automatic cpu dispatch
libavcodec/h264dec.c(963): (col. 1) remark: h264_decode_frame has been targeted for automatic cpu dispatch
libavcodec/h264chroma_template.c(207): (col. 1) remark: put_h264_chroma_mc1_16_c has been targeted for automatic cpu dispatch
libavcodec/h264chroma_template.c(207): (col. 1) remark: put_h264_chroma_mc2_16_c has been targeted for automatic cpu dispatch
libavcodec/h264dec.c(601): (col. 1) remark: decode_nal_units has been targeted for automatic cpu dispatch
libavcodec/h264chroma_template.c(207): (col. 1) remark: put_h264_chroma_mc8_16_c has been targeted for automatic cpu dispatch
libavcodec/h264_refs.c(80): (col. 1) remark: build_def_list has been targeted for automatic cpu dispatch
libavcodec/h264dec.c(448): (col. 1) remark: decode_init_thread_copy has been targeted for automatic cpu dispatch
libavcodec/h264dec.c(393): (col. 1) remark: h264_decode_init has been targeted for automatic cpu dispatch
libavcodec/h264chroma_template.c(208): (col. 1) remark: avg_h264_chroma_mc8_16_c has been targeted for automatic cpu dispatch
libavcodec/h264addpx_template.c(51): (col. 1) remark: ff_h264_add_pixels8_16_c has been targeted for automatic cpu dispatch

 

But I succeed in building the latest ffmpeg via gcc.

Why?

0 Kudos
Reply