how to configure fftw3 library for Cortex A8

Hello,

I have installed fftw 3.2.2 from www.fftw.org.

I have configure it and installed on my host PC (x86 architecture).It
has installed fftw3f.a and fftw3f.la at /usr/local/lib dir.

I can run my application which uses this library on host PC by linking
with -lfftw3f option.

I want to run my application on Beagleboard. I need to configure fftw3
library for Cortex A8 (ARMV7-A) and then my application also. I am
using CodeSourcery tool chain and Angstrom RFS and binaries.

one way to use OE for this as I came to know from IRC chat.

I have tried to configure FFTW with --with-gcc-arch=armv7-a but I got
warning as
"configure: WARNING: unrecognized options: --with-gcc-arch-armv7-a".

I have tried to configure with --enable-prtable-binary then it has
created library with fftw3.a and fftw3.la.
I got linking error when tried to link this library in my application
with -L/path/to/lib and linked with -lfftw3 option then got "collect2:
ld returned 1 exit status"

how to check library is compatible for code sourcery tool chain? where
am i doing wrong?

Does it have any other options to use Code Sourcery toolchain and
Angstrom RFS binaries for configuring FFTW3 library ?

thanks,
Rachit Shah

<broken record mode>Don't do that</broken record mode>

Hey Rachit:
So CodeSourcery toolchain? That means you are cross-compiling.
Here is my CFLAGS, customize it to your own need.
As I’m using gentoo’s way to do the cross-compiling.
It surely build successfully.

CFLAGS="-Os -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fomit-frame-pointer -I/usr/armv7a-softfloat-linux-gnueabi/usr/include/ -I/usr/armv7a-softfloat-linux-gnueabi/include/"

Btw, I guess you are not using OpenEmbedded build system, why not take advantage of it,
Since there is already fftw recipe files resident there.

On Tue, Aug 11, 2009 at 2:46 AM, Rachit Shah<rachit81@gmail.com> wrot>

Hello,

I have installed fftw 3.2.2 from www.fftw.org.

I have configure it and installed on my host PC (x86 architecture).It
has installed fftw3f.a and fftw3f.la at /usr/local/lib dir.

I can run my application which uses this library on host PC by linking
with -lfftw3f option.

I want to run my application on Beagleboard. I need to configure fftw3
library for Cortex A8 (ARMV7-A) and then my application also. I am
using CodeSourcery tool chain and Angstrom RFS and binaries.

You should be able to build fftw with OE also.

Unfortunately, gcc will not do a good job at generating the best
possible code for fftw. It should be possible to hand optimize fftw
for much better performance. A good place to start is in the "simd"
directory.

Philip

Hello,
I configure openembedded using bitbake for beagle board.
How to download fftw recipe for bitbake and where is it?
Any one send me link.

Hello,
I run this command:
bitbake -b recipes/fftw/fftwf_3.2.bb

Generate fftwf_3.2-r1.1_armv7a.ipk,fftwf-dev_3.2-r1.1_armv7a.ipk,fftwf-
doc_3.2-r1.1_armv7a.ipk,fftwf-dbg_3.2-r1.1_armv7a.ipk package in /
angstrom-dev/deploy/glibc/ipk/armv7a folder.

Also generate fftw-3.2-r1 folder in angstrom-dev/work/armv7a-angstrom-
linux-gnueabi.

When i run following i got output like that,

find /OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/ -
type f
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.SRC_DISTRIBUTECOMMAND.17495
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.staging_packager.7332
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_package_stage_all.31539
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_rm_work.31487
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_rm_work_all.31547
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_rm_work.31487
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.staging_packager.7332
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.staging_helper.31444
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_configure.17522
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_rm_work_all.31491
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.staging_package_installer.7332
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_rm_work_all.7436
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_package_stage_all.31539
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_rm_work_all.31547
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_install.6100
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.staging_helper.17471
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_rm_work_all.31491
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_compile.24477
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_configure.17522
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.staging_helper.31444
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.populate_staging_preamble.6502
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_package_stage_all.7416
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_rm_work.31543
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_rm_work.7420
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_compile.24477
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_package_write.7329
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.staging_helper.31500
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_stage.6502
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_package_stage_all.7416
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_package_stage_all.31483
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.staging_package_installer.7332
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.staging_helper.7332
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_package_write.7329
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.populate_staging_postamble.6502
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.staging_helper.17471
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_rm_work.31543
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_package_stage_all.31483
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.SRC_DISTRIBUTECOMMAND.17495
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_install.6100
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.staging_helper.31500
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.populate_staging_postamble.6502
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.populate_staging_preamble.6502
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_rm_work_all.7436
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.staging_helper.7332
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
run.do_stage.6502
/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/fftw-3.2-r1/temp/
log.do_rm_work.7420

How to install fftw package or fftw recipe?

Gaurang

try
bitbake fftw
and (not to be rude) read the bitbake manual
-Jesse