I am rebuilding Android from source (to flash onto a device, right now using emulator), trying to add a single command line tool. I've put my source in repo/exernal/... and written Android.mk
.
I get the following undefines:
__cxa_allocate_exception __cxa_begin_catch __cxa_end_catch __cxa_end_cleanup __cxa_free_exception __cxa_get_exception_ptr __cxa_rethrow __cxa_throw __gxx_personality_v0
I've searched through the other issues here with the same undefines, but can't quite seem to find the solution for Android.
The final link command gets generated as:
prebuilt/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-g++ -nostdlib -Bdynamic -Wl,-T,build/core/armelf.x -Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,nocopyreloc -o out/target/product/generic/obj/EXECUTABLES/wavsender_intermediates/LINKED/wavsender -Lout/target/product/generic/obj/lib -Wl,-rpath-link=out/target/product/generic/obj/lib -lc -llog -lcutils -lnetutils -lc -lstdc++ -lm out/target/product/generic/obj/lib/crtbegin_dynamic.o out/target/product/generic/obj/EXECUTABLES/wavsender_intermediates/ohSongcast/WavSender/WavSender.o out/target/product/generic/obj/STATIC_LIBRARIES/liblog_intermediates/liblog.a out/target/product/generic/obj/STATIC_LIBRARIES/libcutils_intermediates/libcutils.a out/target/product/generic/obj/STATIC_LIBRARIES/libopenhome_intermediates/libopenhome.a out/target/product/generic/obj/STATIC_LIBRARIES/libgtest_intermediates/libgtest.a out/target/product/generic/obj/STATIC_LIBRARIES/libstlport_static_intermediates/libstlport_static.a out/target/product/generic/obj/STATIC_LIBRARIES/libstdc++_intermediates/libstdc++.a out/target/product/generic/obj/STATIC_LIBRARIES/libgabi++_intermediates/libgabi++.a -Wl,-z,noexecstack -Wl,--icf=safe -Wl,--fix-cortex-a8 prebuilt/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/armv7-a/libgcc.a out/target/product/generic/obj/lib/crtend_android.o
Android.mk is:
include $(CLEAR_VARS) LOCAL_MODULE := wavsender LOCAL_MODULE_TAGS := eng LOCAL_CFLAGS += -fexceptions -D_GNU_SOURCE -DPLATFORM_ANDROID LOCAL_SRC_FILES += WavSender.cpp LOCAL_SHARED_LIBRARIES := libc libcutils libnetutils LOCAL_STATIC_LIBRARIES := libcutils libopenhome LOCAL_STATIC_LIBRARIES += libopenhome libgtest libstlport_static libstdc++ libgabi++ LOCAL_LDLIBS += -lstdc++ include external/stlport/libstlport.mk include $(BUILD_EXECUTABLE)
Can anyone see a problem or point me in a direction to get the correct behavior from arm-linux-androideabi-g++ ?
Consider removing libstd++ as a static in Android.mk it should default to the standard Android implementation and you should be fine
Actually, I see you added it both as a static and dynamic libraries.
Remove either static libstdc++ or the dynamic one. If that doesn't do it try removing both
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With