| # This test is to demostrate the issue: |
| # |
| # hidden symbol '__cxa_begin_cleanup' in ./obj/local/armeabi/libgnustl_static.a(eh_arm.o) |
| # is referenced by DSO ./obj/local/armeabi/libidiv.so |
| # hidden symbol '__cxa_type_match' in ./obj/local/armeabi/libgnustl_static.a(eh_arm.o) |
| # is referenced by DSO ./obj/local/armeabi/libidiv.so |
| # |
| # File idiv.cpp contains code potentially causes divide-by-zero exception. libidiv.so |
| # is built with libgnustl_static.a which provides __cxa_begin_cleanup and |
| # __cxa_type_match needed by unwinder in libgcc.a. Unfortunately both are built |
| # with hidden visibility, and causes warnings as the above when libidiv.so is used |
| # to link other binaries. |
| # |
| # The fix is to unhide both __cxa_begin_cleanup and __cxa_type_match |
| # |
| |
| LOCAL_PATH := $(call my-dir) |
| |
| include $(CLEAR_VARS) |
| LOCAL_MODULE := libidiv |
| LOCAL_SRC_FILES:= idiv.cpp |
| LOCAL_CFLAGS := -Wall -Werror -Wno-unused-parameter |
| include $(BUILD_SHARED_LIBRARY) |
| |
| include $(CLEAR_VARS) |
| LOCAL_MODULE := libthrow |
| LOCAL_SRC_FILES:= throw.cpp |
| LOCAL_CFLAGS := -Wall -Werror -frtti -fexceptions |
| LOCAL_SHARED_LIBRARIES = libidiv |
| include $(BUILD_SHARED_LIBRARY) |