From: David R. <dro...@sh...> - 2007-10-01 16:38:00
|
I have obtained version 5.2.05 of the IPP ("integrated performance primitives", optimized FFT and other DSP functions) libraries from Marvell, and I'm having trouble with them on my Verdex. I have attached a simple program that ought to do some FFT's, and I'm seeing errors that suggest that there's an ABI-level mismatch going on. If I link with -lm, my program gets to its first call to the actual FFT routine (ippsFFTFwd_RToCCS_32s_Sfs) and fails with an illegal instruction. dmesg yields: Alignment trap: not handling instruction ecf04102 at [<0000be88>] Unhandled fault: alignment exception (0x013) at 0x00016d2c If I'm reading my objdump output right, 0xbe88 is in the middle of the Marvell library. If I don't link with -lm, presumably my layout is different and I can actually run an FFT, but I still have trouble; when the library allocates a structure for its use, my callback allocator gives it memory at one address (0x1f008), but when I ask the library to free that structure, it passes a different argument to my callback free (0x1f010). This makes me think that the library still isn't agreeing with the runtime environment somehow. Any suggestions on how to fix would be welcome. I hope that I'm not deluding myself into finding architectural problems where I've actually made a stupid C mistake, but I think that's not the case here. Thanks, -david Additional details: The library file appears to my limited understanding to be an EABI file: or at least this command: arm-linux-uclibcgnueabi-objdump -x ippSP_WMMX2LNX_r.a | grep -i EABI returns a bunch of lines that say "private flags =3D 4000000: [Version4 EABI]" If I tweak my malloc callbacks to return 16-byte-aligned addresses, I still see the different-free-than-malloc behavior. My build commands are: /home/rochberg/work/stixtest/../gumstix-buildroot/build_arm_nofpu/stagin g_dir/bin/arm-linux-uclibcgnueabi-gcc -c -Wall -O2 fft.c -o fft.o /home/rochberg/work/stixtest/../gumstix-buildroot/build_arm_nofpu/stagin g_dir/bin/arm-linux-uclibcgnueabi-gcc fft.o ipp/lib/pvkit/ippSP_WMMX2LNX_r.a -lm -Wall -O2 -o fft I am running buildroot 1553 built on an Ubuntu 7.04 machine with a close-to-default configuration. I've attached my .config file |