From 517c8af545eefa8baf9a5439f242a4bd021f9085 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sun, 4 Oct 2015 15:07:13 +0200 Subject: [PATCH] [win+java] maybe libwinpthread is causing the segfaults on JNI startup that we see So disable completely the use of pthread on windows, just to see if it helps. If so, this will still have to be cleaned up properly. --- src/bindings/java/org/simgrid/NativeLib.java | 4 +-- tools/cmake/CompleteInFiles.cmake | 4 ++- tools/cmake/Java.cmake | 36 ++++++++++---------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/bindings/java/org/simgrid/NativeLib.java b/src/bindings/java/org/simgrid/NativeLib.java index cdb7710c5d..61b4606b53 100644 --- a/src/bindings/java/org/simgrid/NativeLib.java +++ b/src/bindings/java/org/simgrid/NativeLib.java @@ -20,8 +20,8 @@ public final class NativeLib { if (isNativeInited) return; - if (System.getProperty("os.name").toLowerCase().startsWith("win")) - NativeLib.nativeInit("winpthread-1"); + //if (System.getProperty("os.name").toLowerCase().startsWith("win")) + // NativeLib.nativeInit("winpthread-1"); NativeLib.nativeInit("simgrid"); NativeLib.nativeInit("surf-java"); diff --git a/tools/cmake/CompleteInFiles.cmake b/tools/cmake/CompleteInFiles.cmake index 7575a6a161..ed50629d62 100644 --- a/tools/cmake/CompleteInFiles.cmake +++ b/tools/cmake/CompleteInFiles.cmake @@ -159,7 +159,9 @@ else() endif() CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS) -CHECK_INCLUDE_FILE("pthread.h" HAVE_PTHREAD_H) +if(NOT WIN32) + CHECK_INCLUDE_FILE("pthread.h" HAVE_PTHREAD_H) +endif() CHECK_INCLUDE_FILE("valgrind/valgrind.h" HAVE_VALGRIND_VALGRIND_H) CHECK_INCLUDE_FILE("socket.h" HAVE_SOCKET_H) CHECK_INCLUDE_FILE("stat.h" HAVE_STAT_H) diff --git a/tools/cmake/Java.cmake b/tools/cmake/Java.cmake index b7637055a1..8b00711c9e 100644 --- a/tools/cmake/Java.cmake +++ b/tools/cmake/Java.cmake @@ -138,24 +138,24 @@ if(enable_lib_in_jar) COMMAND ${CMAKE_COMMAND} -E echo "-- Cmake put the native code in ${JAVA_NATIVE_PATH}" COMMAND "${Java_JAVA_EXECUTABLE}" -classpath "${SIMGRID_JAR}" org.simgrid.NativeLib ) - if(MINGW) - find_library(WINPTHREAD_DLL - NAME winpthread winpthread-1 - PATHS C:\\MinGW C:\\MinGW64 C:\\MinGW\\bin C:\\MinGW64\\bin - ) - add_custom_command( - TARGET simgrid-java_jar POST_BUILD - COMMENT "Add the MinGW libs into simgrid.jar..." - DEPENDS ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO} - - COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE - COMMAND ${CMAKE_COMMAND} -E make_directory ${JAVA_NATIVE_PATH} - COMMAND ${CMAKE_COMMAND} -E copy ${WINPTHREAD_DLL} ${JAVA_NATIVE_PATH} - - COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR} NATIVE - COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE - ) - endif(MINGW) + #if(MINGW) + # find_library(WINPTHREAD_DLL + # NAME winpthread winpthread-1 + # PATHS C:\\MinGW C:\\MinGW64 C:\\MinGW\\bin C:\\MinGW64\\bin + # ) + # add_custom_command( + # TARGET simgrid-java_jar POST_BUILD + # COMMENT "Add the MinGW libs into simgrid.jar..." + # DEPENDS ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO} + # + # COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE + # COMMAND ${CMAKE_COMMAND} -E make_directory ${JAVA_NATIVE_PATH} + # COMMAND ${CMAKE_COMMAND} -E copy ${WINPTHREAD_DLL} ${JAVA_NATIVE_PATH} + # + # COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR} NATIVE + # COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE + # ) + #endif(MINGW) endif(enable_lib_in_jar) include_directories(${JNI_INCLUDE_DIRS} ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) -- 2.20.1