cURL / Mailing Lists / curl-library / Single Mail

curl-library

Why there is undefined symbol __cxa_begin_cleanup in libcurl.so

From: mao xu <sonmerfield_at_yahoo.com.cn>
Date: Wed, 6 Jun 2012 19:09:49 +0800 (CST)

I'm cross-compiling libcurl with ARM toolchain provided by android NDK r8. My output libcurl.so has an undefined symbo __cxa_begin_cleanup. Use command "readelf -s" can find it :
168: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __cxa_begin_cleanup
When creating my executable with libcurl.so and some other libraries, a link error reported:
hidden symbol __cxa_begin_cleanup in libstdc++ is referenced by DSO.
This symbol in libstdc++.so is a hidden symbol , so linker can not resolve the undefined symbol in libcurl.so .
I check other share libraries. Some of them contain this symbol also, but it's not undefined symbol in those libraries. They seems copy that symbol's implementation to themselves from libstdc++, while libcurl does not copy.
My command to produce libcurl.so is :
arm-linux-androideabi-gcc -shared  .libs/file.o (and other .o files)   -L/opt/android-ndk-r8-standalone/arm-linux-androideabi/libs/armeabi-v7a -L/opt/android-ndk-r8-standalone/sysroot/usr/lib -lz -mandroid -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb   -Wl,-soname -Wl,libcurl.so.5 -o .libs/libcurl.so.5.2.0
I'v tried adding "-nostdlib -lgcc" to the command, but produce same result.
Could anybody help me to resolve this issue. It has blocked me for many days.
Thanks in advance.
sonmerfield

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2012-06-06