IPP 8.0 Error loading module codec_g729.so undefined symbol: __intel_cpu_feature_indicator_x

1,030 views
Skip to first unread message

todor.a...@gmail.com

unread,
Apr 19, 2014, 6:55:08 PM4/19/14
to asteri...@googlegroups.com
Hello,

I successfully compiled the codecs using IPP 8.0.0.061 on CentOS 6.5 x86_64.
However, when trying to load the g729 codec in Asterisk 12.1.1, I encounter the following error:

WARNING[25454]: loader.c:523 load_dynamic_module: Error loading module 'codec_g729.so': /usr/lib64/asterisk/modules/codec_g729.so: undefined symbol: __intel_cpu_feature_indicator_x
WARNING[25454]: loader.c:1032 load_resource: Module 'codec_g729.so' could not be loaded.

The codec g723 loads successfully.

When I compile the codecs with IPP 7.1.1.117, both modules can be compiled and loaded successfully.

todor.a...@gmail.com

unread,
Apr 19, 2014, 6:58:18 PM4/19/14
to asteri...@googlegroups.com, todor.a...@gmail.com
I forgot to mention that during the compilation, I encounter the following warnings:

*** Warning: Linking the shared library codec_g729.la against the
*** static library /opt/intel/composerxe/ipp/lib/intel64/libippsc.a is not portable!

*** Warning: Linking the shared library codec_g729.la against the
*** static library /opt/intel/composerxe/ipp/lib/intel64/libipps.a is not portable!

*** Warning: Linking the shared library codec_g729.la against the
*** static library /opt/intel/composerxe/ipp/lib/intel64/libippcore.a is not portable!

*** Warning: Linking the shared library codec_g729.la against the
*** static library /opt/intel/composerxe/ipp/../compiler/lib/intel64/libirc.a is not portable!

*** Warning: Linking the shared library codec_g729.la against the
*** static library /opt/intel/composerxe/ipp/../compiler/lib/intel64/libsvml.a is not portable!

Arkadi Shishlov

unread,
Apr 20, 2014, 4:30:17 AM4/20/14
to asteri...@googlegroups.com
> *** Warning: Linking the shared library codec_g729.la against the
> *** static library
> /opt/intel/composerxe/ipp/../compiler/lib/intel64/libirc.a is not portable!

This is unfortunately the only way IPP 8 could be made to work to
produce standalone *.so as shared and static library names clashes in
IPP 8. That was not the case with IPP 7 and below.
-static for -shared doesn't work, thus ld preference is to to link
with *.so instead of *.a.

composer_xe_2013_sp1.1.106 works fine for me with binutils 2.22 and
gcc 4.6.3 on Ubuntu 12.04 x86_64.
Try 'nm codec_g729.so | grep intel_cpu_feature_indicator'.
The symbol should come from libirc.a.
Probably there an order problem in the list of libXYZ.a when linking
shared module. This is not an issue when library is specified via
-lXYZ.
Reply all
Reply to author
Forward
0 new messages