Building MediaSDK

Thursday, January 11, 2018

Have to build without "warnings as error" using:

% perl tools/builder/build_mfx.pl --cmake=intel64.make.release --no-warn-as-error

Builds fails with:

../../__lib/release/libencode_hw.a(mfx_h264_scd.cpp.o): In function `MfxHwH264Encode::ASC::Get_CpuFeature_AVX2()':
/home/ddd/Work/msdk/_studio/mfx_lib/encode_hw/h264/src/mfx_h264_scd.cpp:582: undefined reference to `__cpu_model'
../../__lib/release/libencode_hw.a(mfx_h264_scd.cpp.o): In function `MfxHwH264Encode::ASC::Get_CpuFeature_SSE41()':
mfx_h264_scd.cpp:(.text+0x4f43): undefined reference to `__cpu_model'
../../__lib/release/libencode_hw.a(mfx_h264_scd.cpp.o): In function `_GLOBAL__sub_I_mfx_h264_scd.cpp':
mfx_h264_scd.cpp:(.text.startup+0x2d): undefined reference to `__cpu_model'
../../__lib/release/libvpp_hw.a(mfx_scd.cpp.o): In function `SceneChangeDetector::Init(int, int, int, unsigned int, CmDevice*)':
/home/ddd/Work/msdk/_studio/shared/src/mfx_scd.cpp:12008: undefined reference to `__cpu_model'

Fix is adding -lgcc at end of build line:

% cd ~/Work/msdk/__cmake/intel64.make.release/_studio/mfx_lib
% /usr/bin/c++ -fPIC -msse4.2 -std=c++11 -m64 -g -pipe -fPIC -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -Wall -Wno-deprecated-declarations -Wno-unknown-pragmas -Wno-unused  -Wformat -Wformat-security -DNDEBUG -L/usr/local/lib -Wl,--no-undefined,-z,relro,-z,now,-z,noexecstack -Wl,--default-symver -Wl,--version-script=/home/ddd/Work/msdk/_studio/mfx_lib/libmfx.map -fstack-protector   -Wl,--no-undefined,-z,relro,-z,now,-z,noexecstack -fstack-protector  -shared -Wl,-soname,libmfxhw64.so -o ../../__bin/release/libmfxhw64.so CMakeFiles/mfxhw64.dir/scheduler/src/mfx_scheduler_core.cpp.o CMakeFiles/mfxhw64.dir/scheduler/src/mfx_scheduler_core_ischeduler.cpp.o CMakeFiles/mfxhw64.dir/scheduler/src/mfx_scheduler_core_iunknown.cpp.o CMakeFiles/mfxhw64.dir/scheduler/src/mfx_scheduler_core_task.cpp.o CMakeFiles/mfxhw64.dir/scheduler/src/mfx_scheduler_core_task_management.cpp.o CMakeFiles/mfxhw64.dir/scheduler/src/mfx_scheduler_core_thread.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_async.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_decode.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_enc.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_encode.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_pak.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_plugin.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_query.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_session.cpp.o CMakeFiles/mfxhw64.dir/shared/src/libmfxsw_vpp.cpp.o CMakeFiles/mfxhw64.dir/shared/src/mfx_session.cpp.o CMakeFiles/mfxhw64.dir/shared/src/mfx_user_plugin.cpp.o CMakeFiles/mfxhw64.dir/shared/src/mfx_brc_common.cpp.o CMakeFiles/mfxhw64.dir/shared/src/mfx_mpeg2_dec_common.cpp.o CMakeFiles/mfxhw64.dir/shared/src/mfx_vc1_dec_common.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/cm_mem_copy.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/mfx_vpp_vaapi.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/libmfx_allocator.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/libmfx_allocator_vaapi.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/libmfx_core.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/libmfx_core_factory.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/libmfx_core_vaapi.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/mfx_umc_alloc_wrapper.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/mfx_static_assert_structs.cpp.o CMakeFiles/mfxhw64.dir/__/shared/src/mfx_mfe_adapter.cpp.o -Xlinker --start-group ../../__lib/release/libmfx_trace_hw.a ../../__lib/release/libbitrate_control.a ../../__lib/release/libh264_dec_hw.a ../../__lib/release/libjpeg_common.a ../../__lib/release/libjpeg_dec_hw.a ../../__lib/release/libmpeg2_dec_hw.a ../../__lib/release/libumc.a ../../__lib/release/libvm.a ../../__lib/release/libvm_plus.a ../../__lib/release/libumc_va_hw.a ../../__lib/release/libcmrt_cross_platform_hw.a ../../__lib/release/libdecode_hw.a ../../__lib/release/libencode_hw.a ../../__lib/release/libh264_la.a ../../__lib/release/libgenx_h264_encode_embeded.a ../../__lib/release/libmfx_common.a ../../__lib/release/libmfx_common_hw.a ../../__lib/release/libvpp_hw.a ../../__lib/release/libh264_common.a ../../__lib/release/libh264_preenc.a ../../__lib/release/libh264_enc.a ../../__lib/release/libh264_pak.a ../../__lib/release/libvc1_common.a ../../__lib/release/libvc1_dec_hw.a ../../__lib/release/libmfx_trace.a -lpthread -ldl -lva ../../__lib/release/libSafeString.a -Xlinker --end-group -lgcc

4K monitor still not arrived. Sigh. Checked the Amazon tracking, they say they "attempted to deliver". But no delivery slip, and I was there the whole day, and specifically at the announced time (11:58). Grmbl.