imx-codec package bug (missing hardfp libraries)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx-codec package bug (missing hardfp libraries)

1,416 Views
sfinx
Contributor I

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

0 Kudos
Reply
2 Replies

1,192 Views
igorpadykov
NXP Employee
NXP Employee

Hi First

i.MX6Q does not have fpu as described in Table 12-4. Cortex-A9 Core configuration

i.MX6DQ Reference Manual

http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

1,192 Views
sfinx
Contributor I

Hi,

I did not mentioned the imx6q at all. The bug is related to library not the CPU. I'm, using DART-6UL with Ultralight IMX6, it has the FPU.

As I can see the mixed EABI can't be loaded by ld.so prior to libc 2.21 which affect at least the Debian distro. The main concern is that hardfp libraries are usually faster than softftp.

And last - seems like nobody tried to make compile test using this package (mainly because of messy build system) - there are missing header files.

0 Kudos
Reply