2009-09-29 10:00:18 Missing atan2_fr16 compilation error (2008R15)
Laurent Brard (FRANCE)
Message: 80638
Hello,
I am getting an undefined reference error for function `_atan2_fr16' when I try to use the function arg16 from the bfdsp library:
bfin-linux-uclibc-gcc -DENABLE_TRACE -D_ORTP_SOURCE -DOSIP_MT -pipe -Wall -g -O2 -mcpu=bf537-0.2 -fno-strict-aliasing -ffast-math -mfast-fp -mcpu=bf537-0.2 -o intercom intercom-intercom.o intercom-intercom-tools.o intercom-intercom-sound.o intercom-intercom-api.o intercom-intercom-anr.o -Wl,-z -Wl,now ../coreapi/.libs/liblinphone.a -leXosip2 -losipparser2 -losip2 /home/laurent/projet/t0504/src/bf2008R15/uClinux/user/blkfin-apps/linphone/build-linphone-2.0.1/mediastreamer2/src/.libs/libmediastreamer.a /home/laurent/projet/t0504/src/bf2008R15/uClinux/user/blkfin-apps/linphone/build-linphone-2.0.1/oRTP/src/.libs/libortp.a /home/laurent/projet/t0504/src/bf2008R15/uClinux/staging/usr/lib/libasound.so -L/home/laurent/projet/t0504/src/bf2008R15/uClinux/staging/usr/lib /home/laurent/projet/t0504/src/bf2008R15/uClinux/staging/usr/lib/libspeex.so -lm -lpthread -lrt -ldl /home/laurent/projet/t0504/src/bf2008R15/uClinux/staging/usr/lib/libosipparser2.so -lbfdsp -Wl,--rpath -Wl,/home/laurent/projet/t0504/src/bf2008R15/uClinux/staging/usr/lib -Wl,--rpath -Wl,/home/laurent/projet/t0504/src/bf2008R15/uClinux/staging/usr/lib
/home/mws/crosstool/blackfin/2008r15/bfin-linux-uclibc/bin/../bfin-linux-uclibc/runtime/usr/lib/libbfdsp.a(arg16.o): In function `__arg_fr16':
arg16.c:(.text+0xe): undefined reference to `_atan2_fr16'
collect2: ld returned 1 exit status
make[3]: *** [intercom] Erreur 1
make[3]: quittant le répertoire « /home/laurent/projet/t0504/src/bf2008R15/uClinux/user/blkfin-apps/linphone/build-linphone-2.0.1/intercom »
When I look at the toolchain build log I can see that the function has been compiled and included in the libbfdsp library:
###
Building libs
..cd libdsp && make 'AR=bfin-elf-ar' 'AS=bfin-elf-as' 'CC=bfin-elf-gcc' 'CXX=bfin-elf-g++' 'INSTALL=install' 'INSTALL_DATA=install -m 644' 'LIBC_HAS_NO_CMATH=' 'MULTILIB_FLAGS=' 'MULTILIB=' 'DESTDIR=' 'SUFFIX=' 'TAR=tar' 'USR=' clean
make[1]: entrant dans le rÃpertoire « /home/laurent/projet/t0504/src/bf2008R15/toolchain/blackfin-toolchain-08r1.5-14/libs/libdsp »
rm -rf *.o *.a
make[1]: quittant le rÃpertoire « /home/laurent/projet/t0504/src/bf2008R15/toolchain/blackfin-toolchain-08r1.5-14/libs/libdsp »
###
make MULTILIB_FLAGS=""
cd libdsp && make 'AR=bfin-elf-ar' 'AS=bfin-elf-as' 'CC=bfin-elf-gcc' 'CXX=bfin-elf-g++' 'INSTALL=install' 'INSTALL_DATA=install -m 644' 'LIBC_HAS_NO_CMATH=' 'MULTILIB_FLAGS=' 'MULTILIB=' 'DESTDIR=' 'SUFFIX=' 'TAR=tar' 'USR=' all
make[1]: entrant dans le rÃpertoire « /home/laurent/projet/t0504/src/bf2008R15/toolchain/blackfin-toolchain-08r1.5-14/libs/libdsp »
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c a_compress16.asm -o a_compress16.o
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c acos_fr16.asm -o acos_fr16.o
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c a_expand16.asm -o a_expand16.o
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c ashfti64.asm -o ashfti64.o
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c asin_fr16.asm -o asin_fr16.o
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c atan2_fr16.asm -o atan2_fr16.o
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c atan_fr16.asm -o atan_fr16.o
bfin-elf-gcc -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c autocoh_fr16.asm -o autocoh_fr16.o
...
bfin-elf-gcc -mcpu=bf532-none -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c u32tof64.asm -o u32tof64.o
bfin-elf-gcc -mcpu=bf532-none -O2 -D__NO_LIBRARY_ATTRIBUTES__ -I../include -x assembler-with-cpp -c u64tof64.asm -o u64tof64.o
bfin-elf-ar cru libbfdsp.a a_compress16.o acos_fr16.o a_expand16.o ashfti64.o asin_fr16.o atan2_fr16.o atan_fr16.o autocoh_fr16.o autocorr_fr16.o cabfr16.o cdiv_fr16.o cfft2d_fr16.o cfftf_fr16.o cfft_fr16.o cfir_fr16.o clip_asm.o clip_fr16.o cmatmmlt_asm.o conv2d3x3_asm.o conv2dasm.o convolve_asm.o cos_fr16.o counti.o crosscoh_fr16.o crosscorr_fr16.o csadd.o cssub.o cvecdot_fr16.o cvecsmult_fr16.o cvecvmult_fr16.o cvvadd.o cvvsub.o div16.o divfract32.o fir_decima16.o fir_fr16.o fir_interp16.o floatdisf.o floatdiuf.o fract24_8mul.o fract28_4mul.o histogram_fr16.o ifft2d_fr16.o ifft_fr16.o iirdf1_fr16.o iir_fr16.o isinf.o isnan.o lib_mult64.o lib_sqrt_seeds.o lshfti64.o matmmlt_fr16.o mean_fr16.o mu_compress16.o mu_expand16.o muli64.o mult64_32x32.o multu64_32x32.o mulu64.o remi64.o remu64.o rfft2d_fr16.o rfft_fr16.o rms_fr16.o roundflti.o rsqrtd.o rsqrtf.o sdiv32.o sdiv64.o sign_fr16.o sin_fr16.o sqrtd.o sqrtf.o sqrt_fr16.o srem32.o tan_fr16.o transpm.o transpmd.o transpm_fr16.o trncr4i8.o trncr4u8.o udiv32.o udiv64.o urem32.o var_fr16.o vecdot.o vmax.o vmaxloc.o vmin.o vminloc.o vsadd.o vsmlt.o vssub.o vvadd.o vvmlt.o vvsub.o zerocross.o zero_crossd.o zero_crossf.o absfl16.o absfl32.o add_fl16.o addfl32.o cmp_fl16.o cmpfl32.o div_fl16.o divfl32.o fitsfl16.o fl162fl.o fl162fr16.o fl2fl16.o fl2fl32.o fl322fl.o fl322fr32.o fr162fl16.o fr322fl32.o mul_fl16.o mulfl32.o negfl16.o negfl32.o normfl16.o normfl32.o sub_fl16.o subfl32.o abs16.o arg16.o autocoh.o autocohd.o autocorr.o autocorrd.o cadd16.o caddd.o cartesian16.o cartesian.o cartesiand.o cdiv.o cdivd.o clipll.o cmatmmlt.o cmatmmltd.o cmlt16.o cmltd.o coeff_iirdf1_fr16.o conj16.o copysignd.o cot.o cotd.o countll.o crosscoh.o crosscohd.o crosscorr.o crosscorrd.o csub16.o csubd.o cvecdotd.o cvecdotf.o cvecsaddd.o cvecsaddf.o cvecsmlt.o cvecsmltd.o cvecssubd.o cvecssubf.o cvecvaddd.o cvecvaddf.o cvecvmltd.o cvecvmltf.o cvecvsubd.o cvecvsubf.o fclipd.o fclipf.o gen_bart.o gen_black.o gen_gauss.o gen_hamm.o gen_hann.o gen_harris.o gen_kaiser.o gen_rect.o gen_trian.o gen_vonh.o histogram.o histogramd.o Lib_cos16_2PIx.o matmmltd.o matmmltf.o max16.o max.o maxll.o mean.o meand.o means.o min16.o min.o minll.o norm.o normd.o polar16.o polar.o polard.o rms.o rmsd.o signf.o trncr4u4.o twiddle_fr16.o twidfft2d_fr16.o twidfftf_fr16.o twidfftrad2_fr16.o twidfftrad4_fr16.o var.o vard.o vecdotd.o vecdotf.o vecmaxd.o vecmaxf.o vecmaxlocd.o vecmind.o vecminf.o vecminlocd.o vecsaddd.o vecsaddf.o vecsmltd.o vecsmltf.o vecssubd.o vecssubf.o vecvaddd.o vecvaddf.o vecvmltd.o vecvmltf.o vecvsubd.o vecvsubf.o vmaxlocf.o vminlocf.o cfftrad4_fr16.o ifftrad4_fr16.o rfftrad4_fr16.o
bfin-elf-ar cru libbffastfp.a addfl64.o cmpfl64.o divfl64.o f32tof64.o f32toi32z.o f32tou32z.o f64tof32.o f64toi32z.o f64toi64z.o f64tou32z.o f64tou64z.o fltcmp.o fltsif.o fltuif.o fpadd.o fpdiv.o fpmult.o i32tof64.o i64tof64.o mulfl64.o subfl64.o u32tof64.o u64tof64.o
make[1]: quittant le rÃpertoire « /home/laurent/projet/t0504/src/bf2008R15/toolchain/blackfin-toolchain-08r1.5-14/libs/libdsp »
###
...
I have not found a way to fix this.
Thank you in advance,
Laurent
QuoteReplyEditDelete
2009-09-30 03:16:07 Re: Missing atan2_fr16 compilation error (2008R15)
Mike Frysinger (UNITED STATES)
Message: 80680
if you actually read the source, you'll see it creats an _atan2_fr16 symbol, not atan2_fr16.
QuoteReplyEditDelete
2009-09-30 04:09:12 Re: Missing atan2_fr16 compilation error (2008R15)
Laurent Brard (FRANCE)
Message: 80706
Thank you Mike,
Indeed if I create my own arg_fr16() function and call _atan2_fr16() instead of atan2_fr16() it works fine.
Still the function arg_fr16() in arg16.c in the libdsp should be fixed to call _atan2_fr16().
Laurent.