diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake index 76d1d83bb5..5fba24c30b 100644 --- a/cmake/OpenCVFindLibsPerf.cmake +++ b/cmake/OpenCVFindLibsPerf.cmake @@ -18,6 +18,13 @@ if(WITH_IPP) endif() ocv_include_directories(${IPP_INCLUDE_DIRS}) list(APPEND OPENCV_LINKER_LIBS ${IPP_LIBRARIES}) + + # Details: #10229 + if(ANDROID AND NOT OPENCV_SKIP_ANDROID_IPP_FIX_1) + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--exclude-libs,libippicv.a -Wl,--exclude-libs,libippiw.a ${CMAKE_SHARED_LINKER_FLAGS}") + elseif(ANDROID AND NOT OPENCV_SKIP_ANDROID_IPP_FIX_2) + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic ${CMAKE_SHARED_LINKER_FLAGS}") + endif() endif() endif() diff --git a/cmake/templates/OpenCV.mk.in b/cmake/templates/OpenCV.mk.in index addde3a268..207cd0fd62 100644 --- a/cmake/templates/OpenCV.mk.in +++ b/cmake/templates/OpenCV.mk.in @@ -88,6 +88,16 @@ LOCAL_STATIC_LIBRARIES:=$(USER_LOCAL_STATIC_LIBRARIES) LOCAL_SHARED_LIBRARIES:=$(USER_LOCAL_SHARED_LIBRARIES) LOCAL_LDLIBS:=$(USER_LOCAL_LDLIBS) +# Details: #10229 +ifeq ($(OPENCV_SKIP_ANDROID_IPP_FIX_1),) + LOCAL_LDFLAGS += -Wl,--exclude-libs,libippicv.a + LOCAL_LDFLAGS += -Wl,--exclude-libs,libippiw.a +else + ifeq ($(OPENCV_SKIP_ANDROID_IPP_FIX_2),) + LOCAL_LDFLAGS += -Wl,-Bsymbolic + endif +endif + LOCAL_C_INCLUDES += $(OPENCV_LOCAL_C_INCLUDES) LOCAL_CFLAGS += $(OPENCV_LOCAL_CFLAGS)