diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp
index 82ca50411a..4e01236d34 100644
--- a/modules/core/src/parallel.cpp
+++ b/modules/core/src/parallel.cpp
@@ -131,7 +131,9 @@
 
 
 #ifndef CV__EXCEPTION_PTR
-#  ifdef CV_CXX11
+#  if defined(__ANDROID__) && defined(ATOMIC_INT_LOCK_FREE) && ATOMIC_INT_LOCK_FREE < 2
+#    define CV__EXCEPTION_PTR 0  // Not supported, details: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938
+#  elif defined(CV_CXX11)
 #    define CV__EXCEPTION_PTR 1
 #  elif defined(CV_ICC)
 #    define CV__EXCEPTION_PTR 1
@@ -145,7 +147,7 @@
 #endif
 #ifndef CV__EXCEPTION_PTR
 #  define CV__EXCEPTION_PTR 0
-#else
+#elif CV__EXCEPTION_PTR
 #  include <exception>  // std::exception_ptr
 #endif