AnsweredAssumed Answered

imx-codec package bug (missing hardfp libraries)

Question asked by First Last on Jul 16, 2016
Latest reply on Jul 17, 2016 by First Last

Hello,

 

There is an error in imx-codec package distribution (all versions including latest 4.0.9) for IMX CPU's. The packages has the install option for CPU's with FPU (--enable-fhw configure option). But it contains only test binaries for hard FPU option and missed the corresponding fhw libraries. The package include libraries only with Soft FPU emulation. This leads to constant errors while running any tests in Yocto/Debian for IMX6 CPU:

 

........

# ./test_g.729ab_dec_arm11_elinux_fhw

./test_g.729ab_dec_arm11_elinux_fhw: error while loading shared libraries: lib_g.729ab_dec_arm11_elinux.so.3: cannot open shared object file: No such file or directory

 

# ldconfig -p |grep lib_g.729ab_dec_arm11_elinux.so.3

lib_g.729ab_dec_arm11_elinux.so.3 (libc6) => /opt/fsl/lib/imx-mm/audio codec/lib_g.729ab_dec_arm11_elinux.so.3

 

# ldd ./test_g.729ab_dec_arm11_elinux_fhw

  libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76ebc000)

  libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76dcc000)

  librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76db6000)

  /lib/ld-linux-armhf.so.3 (0x76f30000)

  lib_g.729ab_dec_arm11_elinux.so.3 => not found

  libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76d93000)

 

# readelf -h ./test_g.729ab_dec_arm11_elinux_fhw

ELF Header:

  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00

  Class:                             ELF32

  Data:                              2's complement, little endian

  Version:                           1 (current)

  OS/ABI:                            UNIX - System V

  ABI Version:                       0

  Type:                              EXEC (Executable file)

  Machine:                           ARM

  Version:                           0x1

  Entry point address:               0x8d10

  Start of program headers:          52 (bytes into file)

  Start of section headers:          7196 (bytes into file)

  Flags:                             0x5000002, has entry point, Version5 EABI

  Size of this header:               52 (bytes)

  Size of program headers:           32 (bytes)

  Number of program headers:         8

  Size of section headers:           40 (bytes)

  Number of section headers:         37

  Section header string table index: 34

 

# readelf -h /opt/fsl/lib/imx-mm/audio-codec/lib_g.729ab_dec_arm11_elinux.so

ELF Header:

  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00

  Class:                             ELF32

  Data:                              2's complement, little endian

  Version:                           1 (current)

  OS/ABI:                            UNIX - System V

  ABI Version:                       0

  Type:                              DYN (Shared object file)

  Machine:                           ARM

  Version:                           0x1

  Entry point address:               0x171c

  Start of program headers:          52 (bytes into file)

  Start of section headers:          77316 (bytes into file)

  Flags:                             0x4000002, has entry point, Version4 EABI

  Size of this header:               52 (bytes)

  Size of program headers:           32 (bytes)

  Number of program headers:         3

  Size of section headers:           40 (bytes)

  Number of section headers:         29

  Section header string table index: 26

....

 

and inability of linking any tests using gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf compiler. Please fix the package by adding missing hard-fp libraries.

 

TIA, Rus

 

Update1: Yocto can run soft-floating tests, but Debian still not.

 

Update2: Debian can run softfp tests after upgrading to libc-2.21

 

Update3: The package has another missing file g729_common_api.h

Outcomes