Merge "Fix openmp tests."
diff --git a/build/core/build-binary.mk b/build/core/build-binary.mk
index bb808a3..ab96800 100644
--- a/build/core/build-binary.mk
+++ b/build/core/build-binary.mk
@@ -70,6 +70,11 @@
 
 include $(BUILD_SYSTEM)/system_libs.mk
 
+# The only way to statically link libomp.a is with
+# `-Wl,-Bstatic -lomp -Wl,-Bdynamic`, so we need to accept `-lomp`.
+# https://github.com/android-ndk/ndk/issues/1028
+NDK_SYSTEM_LIBS += libomp.so
+
 libs_in_ldflags := $(filter-out $(NDK_SYSTEM_LIBS:lib%.so=-l%),$(libs_in_ldflags))
 
 ifneq (,$(strip $(libs_in_ldflags)))
diff --git a/tests/device/openmp/CMakeLists.txt b/tests/device/openmp/CMakeLists.txt
index d44d620..8a2ab24 100644
--- a/tests/device/openmp/CMakeLists.txt
+++ b/tests/device/openmp/CMakeLists.txt
@@ -1,8 +1,13 @@
 cmake_minimum_required(VERSION 3.6.0)
 
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
-set(CMAKE_EXECUTABLE_LINKER_FLAGS "${CMAKE_EXECUTABLE_LINKER_FLAGS} -fopenmp")
-
 add_executable(openmp jni/openmp.c)
+set_target_properties(openmp PROPERTIES COMPILE_OPTIONS -fopenmp)
+target_link_libraries(openmp -Wl,-Bstatic -lomp -Wl,-Bdynamic)
+
 add_executable(openmp2 jni/openmp2.c)
+set_target_properties(openmp2 PROPERTIES COMPILE_OPTIONS -fopenmp)
+target_link_libraries(openmp2 -Wl,-Bstatic -lomp -Wl,-Bdynamic)
+
 add_executable(fib jni/fib.c)
+set_target_properties(fib PROPERTIES COMPILE_OPTIONS -fopenmp)
+target_link_libraries(fib -Wl,-Bstatic -lomp -Wl,-Bdynamic)
diff --git a/tests/device/openmp/jni/Android.mk b/tests/device/openmp/jni/Android.mk
index 96e24b4..36c187d 100644
--- a/tests/device/openmp/jni/Android.mk
+++ b/tests/device/openmp/jni/Android.mk
@@ -4,20 +4,20 @@
 LOCAL_MODULE := openmp
 LOCAL_SRC_FILES := openmp.c
 LOCAL_CFLAGS += -fopenmp
-LOCAL_LDFLAGS += -fopenmp
+LOCAL_LDFLAGS += -Wl,-Bstatic -lomp -Wl,-Bdynamic
 include $(BUILD_EXECUTABLE)
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := openmp2
 LOCAL_SRC_FILES := openmp2.c
 LOCAL_CFLAGS += -fopenmp
-LOCAL_LDFLAGS += -fopenmp
+LOCAL_LDFLAGS += -Wl,-Bstatic -lomp -Wl,-Bdynamic
 include $(BUILD_EXECUTABLE)
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := fib
 LOCAL_SRC_FILES := fib.c
 LOCAL_CFLAGS += -fopenmp
-LOCAL_LDFLAGS += -fopenmp
+LOCAL_LDFLAGS += -Wl,-Bstatic -lomp -Wl,-Bdynamic
 include $(BUILD_EXECUTABLE)