From: Pierre Veyre Date: Wed, 25 Sep 2013 09:50:05 +0000 (+0200) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid X-Git-Tag: v3_9_90~91 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/fd1d8acdec3f70b71f6153c2205df3f16a57627d?hp=5f1b7209de9aa1fa4d24ff0ff80c6937a7a28ce7 Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid --- diff --git a/buildtools/Cmake/AddTests.cmake b/buildtools/Cmake/AddTests.cmake index ac253555a9..b5ac51da54 100644 --- a/buildtools/Cmake/AddTests.cmake +++ b/buildtools/Cmake/AddTests.cmake @@ -42,12 +42,12 @@ if(NOT enable_memcheck) ADD_TEST(tesh-self-bg-set-signal ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" bg-set-signal.tesh) ADD_TEST(tesh-self-background ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" background.tesh) - # BEGIN TESH TESTS - # test for code coverage ADD_TEST(help ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help) ADD_TEST(help-models ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help-models) + # BEGIN TESH TESTS + # teshsuite/xbt ADD_TEST(xbt-log-large ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/xbt/log_large_test.tesh) ADD_TEST(xbt-log-parallel ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/xbt/parallel_log_crashtest.tesh) @@ -78,7 +78,7 @@ if(NOT enable_memcheck) endif() - IF(enable_debug) # these tests need the assertion mechanism + IF(enable_debug AND NOT MEMCHECK) # these tests need the assertion mechanism ADD_TEST(tesh-simdag-parser-bogus-symmetric ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms two_hosts_asymetric.tesh) ENDIF() @@ -322,7 +322,9 @@ if(NOT enable_memcheck) endif() IF(HAVE_TRACING) - ADD_TEST(tracing-help ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help-tracing) + IF(NOT MEMCHECK) + ADD_TEST(tracing-help ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help-tracing) + ENDIF() ADD_TEST(tracing-ms ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/ms.tesh) ADD_TEST(tracing-simdag ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/simdag --cd ${CMAKE_BINARY_DIR}/examples/simdag ${CMAKE_HOME_DIRECTORY}/examples/simdag/test_simdag_tracing.tesh) ADD_TEST(tracing-trace_platform ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/trace_platform.tesh) @@ -362,7 +364,9 @@ if(NOT enable_memcheck) ADD_TEST(smpi-struct-thread ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:thread --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/struct.tesh) ADD_TEST(smpi-pt2pt-thread ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:thread --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/pt2pt.tesh) ADD_TEST(smpi-compute-thread ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:thread --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/compute.tesh) - ADD_TEST(smpi-shared-thread ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:thread --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh) + if (NOT WIN32) + ADD_TEST(smpi-shared-thread ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:thread --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh) + endif() if(CONTEXT_UCONTEXT) ADD_TEST(smpi-bcast-ucontext ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/bcast.tesh) ADD_TEST(smpi-reduce-ucontext ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/reduce.tesh) @@ -372,7 +376,9 @@ if(NOT enable_memcheck) ADD_TEST(smpi-struct-ucontext ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/struct.tesh) ADD_TEST(smpi-pt2pt-ucontext ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/pt2pt.tesh) ADD_TEST(smpi-compute-ucontext ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/compute.tesh) - ADD_TEST(smpi-shared-ucontext ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh) + if (NOT WIN32) + ADD_TEST(smpi-shared-ucontext ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh) + endif() endif() if(HAVE_RAWCTX) ADD_TEST(smpi-bcast-raw ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/bcast.tesh) @@ -383,7 +389,9 @@ if(NOT enable_memcheck) ADD_TEST(smpi-struct-raw ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/struct.tesh) ADD_TEST(smpi-pt2pt-raw ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/pt2pt.tesh) ADD_TEST(smpi-compute-raw ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/compute.tesh) - ADD_TEST(smpi-shared-raw ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh) + if (NOT WIN32) + ADD_TEST(smpi-shared-raw ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh) + endif() endif() if(HAVE_TRACING) ADD_TEST(smpi-tracing-ptp ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --cd ${CMAKE_BINARY_DIR}/examples/smpi ${CMAKE_HOME_DIRECTORY}/examples/smpi/tracing/smpi_traced.tesh) diff --git a/buildtools/Cmake/Flags.cmake b/buildtools/Cmake/Flags.cmake index 2a2a96f31a..c573f8151a 100644 --- a/buildtools/Cmake/Flags.cmake +++ b/buildtools/Cmake/Flags.cmake @@ -25,8 +25,16 @@ endif() if(enable_compile_optimizations) set(optCFLAGS "-O3 -finline-functions -funroll-loops -fno-strict-aliasing ") - if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.5") - set(optCFLAGS "${optCFLAGS}-flto ") + if(WIN32) + if (COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.7") + # On windows, we need 4.8 or higher to enable lto because of http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293 + set(optCFLAGS "${optCFLAGS} -flto ") + endif() + else() + # On non-windows, 4.6 is enough for that + if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.5") + set(optCFLAGS "${optCFLAGS} -flto ") + endif() endif() else() set(optCFLAGS "-O0 ") diff --git a/buildtools/Cmake/Scripts/generate_memcheck_tests.pl b/buildtools/Cmake/Scripts/generate_memcheck_tests.pl index 7b06561259..33fd3bb01a 100755 --- a/buildtools/Cmake/Scripts/generate_memcheck_tests.pl +++ b/buildtools/Cmake/Scripts/generate_memcheck_tests.pl @@ -38,6 +38,7 @@ my ($indent); while ( defined( $line = ) ) { chomp $line; if ( $line =~ /BEGIN TESH TESTS/ ) { + print "SET( MEMCHECK 1) \n"; $dump = 1; next; } diff --git a/examples/msg/mc/bugged1_liveness.c b/examples/msg/mc/bugged1_liveness.c index b020037ea5..bd59651aaa 100644 --- a/examples/msg/mc/bugged1_liveness.c +++ b/examples/msg/mc/bugged1_liveness.c @@ -29,12 +29,13 @@ int coordinator(int argc, char *argv[]) int CS_used = 0; msg_task_t task = NULL, answer = NULL; xbt_dynar_t requests = xbt_dynar_new(sizeof(char *), NULL); + char *req; while(1){ MSG_task_receive(&task, "coordinator"); const char *kind = MSG_task_get_name(task); if (!strcmp(kind, "request")) { - char *req = MSG_task_get_data(task); + req = MSG_task_get_data(task); if (CS_used) { XBT_INFO("CS already used. Queue the request."); xbt_dynar_push(requests, &req); @@ -50,7 +51,6 @@ int coordinator(int argc, char *argv[]) } else { if (!xbt_dynar_is_empty(requests)) { XBT_INFO("CS release. Grant to queued requests (queue size: %lu)", xbt_dynar_length(requests)); - char *req; xbt_dynar_pop(requests, &req); if(strcmp(req, "1") != 0){ MSG_task_send(MSG_task_create("grant", 0, 1000, NULL), req); @@ -66,6 +66,7 @@ int coordinator(int argc, char *argv[]) MSG_task_destroy(task); task = NULL; kind = NULL; + req = NULL; } return 0; diff --git a/examples/msg/mc/bugged1_liveness_visited.tesh b/examples/msg/mc/bugged1_liveness_visited.tesh index 0e115e71a6..2e5bd61d03 100644 --- a/examples/msg/mc/bugged1_liveness_visited.tesh +++ b/examples/msg/mc/bugged1_liveness_visited.tesh @@ -1,7 +1,7 @@ #! ./tesh ! expect signal SIGABRT -! timeout 20 +! timeout 60 $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/deploy_bugged1_liveness_visited.xml --cfg=model-check:1 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --cfg=contexts/factory:ucontext --cfg=model-check/visited:100 > [ 0.000000] (0:@) Configuration change: Set 'model-check' to '1' > [ 0.000000] (0:@) Configuration change: Set 'model-check/visited' to '100' @@ -59,10 +59,6 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly -> [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it -> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) -> [ 0.000000] (2:client@Boivin) Ask the request -> [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (1:coordinator@Tremblay) CS release. resource now idle @@ -79,8 +75,6 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) -> [ 0.000000] (2:client@Boivin) Ask the request -> [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (1:coordinator@Tremblay) CS release. resource now idle @@ -96,12 +90,10 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it -> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (2:client@Boivin) Ask the request -> [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly -> [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly +> [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (1:coordinator@Tremblay) CS release. resource now idle > [ 0.000000] (2:client@Boivin) Ask the request @@ -116,10 +108,6 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it -> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) -> [ 0.000000] (2:client@Boivin) Ask the request -> [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly -> [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly @@ -138,12 +126,10 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it -> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (2:client@Boivin) Ask the request +> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it -> [ 0.000000] (2:client@Boivin) Ask the request -> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (1:coordinator@Tremblay) CS release. resource now idle @@ -159,19 +145,17 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it -> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) -> [ 0.000000] (2:client@Boivin) Ask the request -> [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly -> [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) -> [ 0.000000] (3:client@Fafard) Propositions changed : r=1, cs=0 > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly > [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it +> [ 0.000000] (3:client@Fafard) Propositions changed : r=1, cs=0 > [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) > [ 0.000000] (2:client@Boivin) Ask the request > [ 0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly -> [ 0.000000] (0:@) Pair 91 already reached (equal to pair 79) ! +> [ 0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it +> [ 0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1) +> [ 0.000000] (0:@) Pair 86 already reached (equal to pair 74) ! > [ 0.000000] (0:@) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* > [ 0.000000] (0:@) | ACCEPTANCE CYCLE | > [ 0.000000] (0:@) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* @@ -222,12 +206,12 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(2)Boivin (client)] iRecv(dst=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (56) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(1)Tremblay (coordinator)-> (2)Boivin (client)]) (62) -> [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iRecv(dst=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (56) > [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(1)Tremblay (coordinator)-> (2)Boivin (client)]) (62) +> [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iRecv(dst=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (56) > [ 0.000000] (0:@) [(2)Boivin (client)] iSend(src=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (54) +> [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iRecv(dst=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (56) -> [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(2)Boivin (client)] iSend(src=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (54) > [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) @@ -236,12 +220,12 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(1)Tremblay (coordinator)-> (2)Boivin (client)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(1)Tremblay (coordinator)-> (2)Boivin (client)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iRecv(dst=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (56) +> [ 0.000000] (0:@) [(3)Fafard (client)] Wait(comm=(verbose only) [(3)Fafard (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(2)Boivin (client)] iSend(src=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (54) -> [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iRecv(dst=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (56) +> [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(2)Boivin (client)] iSend(src=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (54) -> [ 0.000000] (0:@) [(3)Fafard (client)] Wait(comm=(verbose only) [(3)Fafard (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iSend(src=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (54) > [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) @@ -251,11 +235,6 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de > [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(1)Tremblay (coordinator)-> (2)Boivin (client)]) (62) > [ 0.000000] (0:@) [(2)Boivin (client)] iSend(src=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (54) > [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) -> [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iRecv(dst=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (56) -> [ 0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) -> [ 0.000000] (0:@) [(2)Boivin (client)] iSend(src=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (54) -> [ 0.000000] (0:@) [(1)Tremblay (coordinator)] Wait(comm=(verbose only) [(2)Boivin (client)-> (1)Tremblay (coordinator)]) (62) -> [ 0.000000] (0:@) [(1)Tremblay (coordinator)] iSend(src=(1)Tremblay (coordinator), buff=(verbose only), size=(verbose only)) (54) -> [ 0.000000] (0:@) Expanded pairs = 91 -> [ 0.000000] (0:@) Visited pairs = 502 -> [ 0.000000] (0:@) Executed transitions = 501 \ No newline at end of file +> [ 0.000000] (0:@) Expanded pairs = 86 +> [ 0.000000] (0:@) Visited pairs = 461 +> [ 0.000000] (0:@) Executed transitions = 460 diff --git a/examples/simdag/io/sd_io.c b/examples/simdag/io/sd_io.c index 76a192b16c..c64fe6ac94 100644 --- a/examples/simdag/io/sd_io.c +++ b/examples/simdag/io/sd_io.c @@ -36,5 +36,6 @@ int main(int argc, char **argv) SD_workstation_get_name(workstations[ctr]), mount_name); xbt_dynar_free_container(¤t_storage_list); } + SD_exit(); return 0; } diff --git a/src/mc/mc_compare.c b/src/mc/mc_compare.c index 85c2901c94..1007083957 100644 --- a/src/mc/mc_compare.c +++ b/src/mc/mc_compare.c @@ -128,7 +128,6 @@ static int compare_areas_with_type(void *area1, void *area2, xbt_dict_t types, x dw_type_t member, subtype, subsubtype; int elm_size, i, res, switch_types = 0; void *addr_pointed1, *addr_pointed2; - int pointed_area_size1, pointed_area_size2; switch(type->type){ case e_dw_base_type: @@ -194,8 +193,6 @@ static int compare_areas_with_type(void *area1, void *area2, xbt_dict_t types, x addr_pointed1 = *((void **)(area1)); addr_pointed2 = *((void **)(area2)); - if((addr_pointed1 == addr_pointed2) && ((pointed_area_size1 = get_pointed_area_size(addr_pointed1, 1)) != (pointed_area_size2 = get_pointed_area_size(addr_pointed2, 2)))) - return -1; if(addr_pointed1 == NULL && addr_pointed2 == NULL) return 0; if(already_compared_pointers(addr_pointed1, addr_pointed2) != -1) @@ -272,7 +269,7 @@ static int compare_global_variables(int region_type, mc_mem_region_t r1, mc_mem_ res = compare_areas_with_type((char *)r1->data + offset, (char *)r2->data + offset, types, other_types, current_var->type_origin, r1->size, region_type, start_data, 0); if(res == 1){ - XBT_VERB("Global variable %s is different between snapshots", current_var->name); + XBT_VERB("Global variable %s (%p - %p) is different between snapshots", current_var->name, (char *)r1->data + offset, (char *)r2->data + offset); xbt_dynar_free(&compared_pointers); compared_pointers = NULL; return 1; @@ -315,11 +312,11 @@ static int compare_local_variables(mc_snapshot_stack_t stack1, mc_snapshot_stack offset1 = (char *)current_var1->address - (char *)std_heap; offset2 = (char *)current_var2->address - (char *)std_heap; if(current_var1->region == 1) - res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_variables_type_libsimgrid, mc_variables_type_binary, current_var1->type, 0, 1, start_data_libsimgrid, 0l); + res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_variables_type_libsimgrid, mc_variables_type_binary, current_var1->type, 0, 1, start_data_libsimgrid, 0); else - res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_variables_type_binary, mc_variables_type_libsimgrid, current_var1->type, 0, 2, start_data_binary, 0l); + res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_variables_type_binary, mc_variables_type_libsimgrid, current_var1->type, 0, 2, start_data_binary, 0); if(res == 1){ - XBT_VERB("Local variable %s in frame %s is different between snapshots", current_var1->name, current_var1->frame); + XBT_VERB("Local variable %s (%p - %p) in frame %s is different between snapshots", current_var1->name,(char *)heap1 + offset1, (char *)heap2 + offset2, current_var1->frame); xbt_dynar_free(&compared_pointers); compared_pointers = NULL; return res; diff --git a/src/mc/mc_global.c b/src/mc/mc_global.c index d137272a49..562e66b64e 100644 --- a/src/mc/mc_global.c +++ b/src/mc/mc_global.c @@ -1474,6 +1474,23 @@ void MC_ignore_local_variable(const char *var_name, const char *frame_name){ } } } + xbt_dict_foreach(mc_local_variables_binary, dict_cursor, current_frame_name, frame){ + start = 0; + end = xbt_dynar_length(frame->variables) - 1; + while(start <= end){ + cursor = (start + end) / 2; + current_var = (dw_variable_t)xbt_dynar_get_as(frame->variables, cursor, dw_variable_t); + if(strcmp(current_var->name, var_name) == 0){ + xbt_dynar_remove_at(frame->variables, cursor, NULL); + start = 0; + end = xbt_dynar_length(frame->variables) - 1; + }else if(strcmp(current_var->name, var_name) < 0){ + start = cursor + 1; + }else{ + end = cursor - 1; + } + } + } }else{ xbt_dynar_t variables_list = ((dw_frame_t)xbt_dict_get_or_null(mc_local_variables_libsimgrid, frame_name))->variables; start = 0; diff --git a/src/smpi/colls/smpi_openmpi_selector.c b/src/smpi/colls/smpi_openmpi_selector.c index b24a7f4059..e2d7533d1a 100644 --- a/src/smpi/colls/smpi_openmpi_selector.c +++ b/src/smpi/colls/smpi_openmpi_selector.c @@ -601,9 +601,13 @@ int smpi_coll_tuned_scatter_ompi(void *sbuf, int scount, scount=rcount; sdtype=rdtype; } - return smpi_coll_tuned_scatter_ompi_binomial (sbuf, scount, sdtype, - rbuf, rcount, rdtype, - root, comm); + int ret=smpi_coll_tuned_scatter_ompi_binomial (sbuf, scount, sdtype, + rbuf, rcount, rdtype, + root, comm); + if(rank!=root){ + xbt_free(sbuf); + } + return ret; } return smpi_coll_tuned_scatter_ompi_basic_linear (sbuf, scount, sdtype, rbuf, rcount, rdtype, diff --git a/src/smpi/smpi_pmpi.c b/src/smpi/smpi_pmpi.c index b86d9653b5..7eb99e7456 100644 --- a/src/smpi/smpi_pmpi.c +++ b/src/smpi/smpi_pmpi.c @@ -2894,10 +2894,6 @@ int PMPI_Request_get_status( MPI_Request request, int *flag, MPI_Status *status) NOT_YET_IMPLEMENTED } -int MPI_Request_get_status( MPI_Request request, int *flag, MPI_Status *status){ - NOT_YET_IMPLEMENTED -} - int PMPI_Grequest_start( MPI_Grequest_query_function *query_fn, MPI_Grequest_free_function *free_fn, MPI_Grequest_cancel_function *cancel_fn, void *extra_state, MPI_Request *request){ NOT_YET_IMPLEMENTED } diff --git a/src/smpi/smpif90.in b/src/smpi/smpif90.in index dadde6e732..99bd88801a 100644 --- a/src/smpi/smpif90.in +++ b/src/smpi/smpif90.in @@ -8,7 +8,10 @@ CMAKE_LINKARGS="-L@libdir@" FFLAGS="-ff2c -fno-second-underscore" LINKARGS="-lsimgrid -lm -lgfortran" main_name=main -TMPFILE=$(mktemp).f90 + +declare -a TMPFILES +trap 'rm -f "${TMPFILES[@]}"' EXIT + CMDLINE="" while [ -n "$1" ]; do ARG="$1" @@ -20,12 +23,8 @@ while [ -n "$1" ]; do CMDLINE="${CMDLINE} -c " ;; *.f90|*.F90) - SRCFILE="$(readlink -f ${ARG} 2>/dev/null)" - if [ -z $SRCFILE ] ; then - SRCFILE="$ARG" - fi - - TMPFILE=${ARG}\_$RANDOM.f90 + TMPFILE=$(mktemp "${ARG}_XXXXXX.f90") + TMPFILES+=( "${TMPFILE}" ) #replace "program main_name by subroutine user\_main (and the end clause as well)" sed 's/[[:space:]]*program[[:space:]]*\([a-zA-Z0-9\-\_]*\)/subroutine user\_main /gI;s/[[:space:]]*use[[:space:]]*mpi/\include \"mpif\.h\" /gI' ${ARG} > ${TMPFILE} SRCFILE="${TMPFILE}" @@ -41,7 +40,3 @@ CMDLINE="${CC} ${FFLAGS} ${CMDLINE} ${INCLUDEARGS} ${CMAKE_LINKARGS} ${LINKARGS} #echo "${CMDLINE}" ${CMDLINE} - -if [ -f ${TMPFILE} ];then - rm ${TMPFILE} -fi diff --git a/src/xbt/mmalloc/mm_diff.c b/src/xbt/mmalloc/mm_diff.c index 34f15e62da..14bf9ff9d3 100644 --- a/src/xbt/mmalloc/mm_diff.c +++ b/src/xbt/mmalloc/mm_diff.c @@ -706,9 +706,8 @@ static int compare_heap_area_without_type(void *real_area1, void *real_area2, vo }else if((addr_pointed1 > s_heap) && ((char *)addr_pointed1 < (char *)s_heap + STD_HEAP_SIZE) && (addr_pointed2 > s_heap) && ((char *)addr_pointed2 < (char *)s_heap + STD_HEAP_SIZE)){ res_compare = compare_heap_area(addr_pointed1, addr_pointed2, previous, all_types, other_types, NULL, 0); - if(res_compare != 0){ + if(res_compare == 1) return res_compare; - } i = pointer_align + sizeof(void *); continue; }else{ @@ -751,7 +750,7 @@ static int compare_heap_area_with_type(void *real_area1, void *real_area2, void if((check_ignore > 0) && ((ignore1 = heap_comparison_ignore_size(to_ignore1, real_area1)) > 0) && ((ignore2 = heap_comparison_ignore_size(to_ignore2, real_area2)) == ignore1)) return 0; if(strcmp(type->name, "char") == 0){ /* String, hence random (arbitrary ?) size */ - return (memcmp(area1, area2, area_size) != 0); + return (memcmp(area1, area2, area_size) != 0); }else{ if(area_size != -1 && type->size != area_size) return -1; @@ -878,7 +877,7 @@ static int compare_heap_area_with_type(void *real_area1, void *real_area2, void else res = compare_heap_area_with_type((char *)real_area1 + member->offset, (char *)real_area2 + member->offset, (char *)area1 + member->offset, (char *)area2 + member->offset, previous, all_types, other_types, member->dw_type_id, -1, check_ignore, 0); if(res == 1) - return res; + return res; } } break; @@ -973,7 +972,7 @@ int compare_heap_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dict_t type = xbt_dict_get_or_null(other_types, get_type_description(other_types, type->name)); } if(strcmp(type->name, "s_smx_context") != 0){ - if(type->size > 1){ + if(type->size > 0){ if(heapinfo1[block1].busy_block.busy_size != type->size && heapinfo2[block2].busy_block.busy_size != type->size) return -1; } @@ -1049,7 +1048,7 @@ int compare_heap_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dict_t type = xbt_dict_get_or_null(all_types, type->dw_type_id); } } - if(type->size > 1){ + if(type->size > 0){ if(heapinfo1[block1].busy_frag.frag_size[frag1] != type->size || heapinfo2[block2].busy_frag.frag_size[frag2] != type->size) return -1; } @@ -1069,7 +1068,7 @@ int compare_heap_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dict_t if(match_pairs){ xbt_dynar_free(&previous); } - return 1; + return 1; } if(!add_heap_area_pair(previous, block1, frag1, block2, frag2)){ diff --git a/src/xbt/xbt_main.c b/src/xbt/xbt_main.c index b11a855161..e60540b08c 100644 --- a/src/xbt/xbt_main.c +++ b/src/xbt/xbt_main.c @@ -91,7 +91,9 @@ static void xbt_preinit(void) { xbt_dict_preinit(); srand(seed); +#ifndef _WIN32 srand48(seed); +#endif atexit(xbt_postexit); } diff --git a/src/xbt/xbt_os_time.c b/src/xbt/xbt_os_time.c index f0d4387e53..6f5f81e533 100644 --- a/src/xbt/xbt_os_time.c +++ b/src/xbt/xbt_os_time.c @@ -253,7 +253,7 @@ void xbt_os_cputimer_start(xbt_os_timer_t timer) clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &(timer->start)); #elif defined(_XBT_WIN32) timer->elapse.tv_sec = 0; - timer->elapse.tv_nsec = 0; + timer->elapse.tv_usec = 0; # if defined(WIN32_WCE) || (_WIN32_WINNT < 0x0400) THROW_UNIMPLEMENTED; # else @@ -281,7 +281,7 @@ void xbt_os_cputimer_resume(xbt_os_timer_t timer) clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &(timer->start)); #elif defined(_XBT_WIN32) timer->elapse.tv_sec += timer->stop.tv_sec - timer->start.tv_sec; - timer->elapse.tv_nsec += timer->stop.tv_nsec - timer->start.tv_nsec; + timer->elapse.tv_usec += timer->stop.tv_usec - timer->start.tv_usec; # if defined(WIN32_WCE) || (_WIN32_WINNT < 0x0400) THROW_UNIMPLEMENTED; # else @@ -361,7 +361,7 @@ void xbt_os_threadtimer_resume(xbt_os_timer_t timer) clock_gettime(CLOCK_THREAD_CPUTIME_ID, &(timer->start)); #elif defined(_XBT_WIN32) timer->elapse.tv_sec += timer->stop.tv_sec - timer->start.tv_sec; - timer->elapse.tv_nsec += timer->stop.tv_nsec - timer->start.tv_nsec; + timer->elapse.tv_usec += timer->stop.tv_usec - timer->start.tv_usec; # if defined(WIN32_WCE) || (_WIN32_WINNT < 0x0400) THROW_UNIMPLEMENTED; # else diff --git a/teshsuite/smpi/CMakeLists.txt b/teshsuite/smpi/CMakeLists.txt index 81c036fab5..6e2339fb1b 100644 --- a/teshsuite/smpi/CMakeLists.txt +++ b/teshsuite/smpi/CMakeLists.txt @@ -6,9 +6,9 @@ if(enable_smpi) else() set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc") endif() - + set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}") - + include_directories("${CMAKE_HOME_DIRECTORY}/include/smpi") add_executable(gather_coll gather_coll.c) add_executable(allgather_coll allgather_coll.c) @@ -18,14 +18,13 @@ if(enable_smpi) add_executable(alltoall_coll alltoall_coll.c) add_executable(alltoallv_coll alltoallv_coll.c) add_executable(allreduce allreduce.c) - add_executable(allreduce_coll allreduce_coll.c) + add_executable(allreduce_coll allreduce_coll.c) add_executable(bcast bcast.c) - add_executable(bcast_coll bcast_coll.c) + add_executable(bcast_coll bcast_coll.c) add_executable(barrier_coll barrier.c ) add_executable(compute compute.c) add_executable(compute2 compute2.c) add_executable(compute3 compute3.c) - add_executable(shared shared.c) add_executable(pingpong pingpong.c) add_executable(scatter scatter.c) add_executable(reduce reduce.c) @@ -47,19 +46,18 @@ if(enable_smpi) target_link_libraries(alltoall_coll simgrid) target_link_libraries(alltoallv_coll simgrid) target_link_libraries(allreduce simgrid) - target_link_libraries(allreduce_coll simgrid) + target_link_libraries(allreduce_coll simgrid) target_link_libraries(bcast simgrid) - target_link_libraries(bcast_coll simgrid) + target_link_libraries(bcast_coll simgrid) target_link_libraries(barrier_coll simgrid) target_link_libraries(compute simgrid) - target_link_libraries(shared simgrid) target_link_libraries(compute2 simgrid) target_link_libraries(compute3 simgrid) target_link_libraries(pingpong simgrid) target_link_libraries(scatter simgrid) target_link_libraries(reduce simgrid) - target_link_libraries(reduce_coll simgrid) - target_link_libraries(reduce_scatter_coll simgrid) + target_link_libraries(reduce_coll simgrid) + target_link_libraries(reduce_scatter_coll simgrid) target_link_libraries(split simgrid) target_link_libraries(smpi_sendrecv simgrid) target_link_libraries(ttest01 simgrid) @@ -73,6 +71,9 @@ if(enable_smpi) if(NOT WIN32) add_executable(dsend dsend.c) target_link_libraries(dsend m simgrid) + + add_executable(shared shared.c) + target_link_libraries(shared simgrid) endif() endif() @@ -82,7 +83,7 @@ set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/gather_coll.tesh ${CMAKE_CURRENT_SOURCE_DIR}/allgather_coll.tesh - ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv_coll.tesh + ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv_coll.tesh ${CMAKE_CURRENT_SOURCE_DIR}/allreduce_coll.tesh ${CMAKE_CURRENT_SOURCE_DIR}/allreduce_coll_large.tesh ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_coll.tesh @@ -90,17 +91,17 @@ set(tesh_files ${CMAKE_CURRENT_SOURCE_DIR}/scatter_coll.tesh ${CMAKE_CURRENT_SOURCE_DIR}/barrier_coll.tesh ${CMAKE_CURRENT_SOURCE_DIR}/bcast.tesh - ${CMAKE_CURRENT_SOURCE_DIR}/bcast_coll.tesh + ${CMAKE_CURRENT_SOURCE_DIR}/bcast_coll.tesh ${CMAKE_CURRENT_SOURCE_DIR}/compute.tesh ${CMAKE_CURRENT_SOURCE_DIR}/shared.tesh ${CMAKE_CURRENT_SOURCE_DIR}/hvector.tesh ${CMAKE_CURRENT_SOURCE_DIR}/indexed.tesh ${CMAKE_CURRENT_SOURCE_DIR}/pt2pt.tesh ${CMAKE_CURRENT_SOURCE_DIR}/reduce.tesh - ${CMAKE_CURRENT_SOURCE_DIR}/reduce_coll.tesh - ${CMAKE_CURRENT_SOURCE_DIR}/reduce_scatter_coll.tesh + ${CMAKE_CURRENT_SOURCE_DIR}/reduce_coll.tesh + ${CMAKE_CURRENT_SOURCE_DIR}/reduce_scatter_coll.tesh ${CMAKE_CURRENT_SOURCE_DIR}/struct.tesh - ${CMAKE_CURRENT_SOURCE_DIR}/vector.tesh + ${CMAKE_CURRENT_SOURCE_DIR}/vector.tesh PARENT_SCOPE ) set(xml_files @@ -111,10 +112,10 @@ set(examples_src ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/gather_coll.c ${CMAKE_CURRENT_SOURCE_DIR}/allgather_coll.c - ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv_coll.c + ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv_coll.c ${CMAKE_CURRENT_SOURCE_DIR}/allreduce_coll.c ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_coll.c - ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv_coll.c + ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv_coll.c ${CMAKE_CURRENT_SOURCE_DIR}/bcast_coll.c ${CMAKE_CURRENT_SOURCE_DIR}/reduce_coll.c ${CMAKE_CURRENT_SOURCE_DIR}/reduce_scatter_coll.c @@ -150,6 +151,6 @@ set(bin_files ) set(txt_files ${txt_files} - + PARENT_SCOPE ) diff --git a/tools/tesh/CMakeLists.txt b/tools/tesh/CMakeLists.txt index a3e2b784a7..c099aa1d48 100644 --- a/tools/tesh/CMakeLists.txt +++ b/tools/tesh/CMakeLists.txt @@ -1,11 +1,17 @@ cmake_minimum_required(VERSION 2.6) if(WIN32) - add_custom_target(tesh ALL - DEPENDS ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl - COMMENT "Install ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl" - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl ${CMAKE_BINARY_DIR}/bin/tesh - ) + #add_custom_target(tesh ALL + # DEPENDS ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl + # COMMENT "Install ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl" + # COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl ${CMAKE_BINARY_DIR}/bin/tesh + # ) + + file(COPY ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/tesh.pl + DESTINATION ${CMAKE_BINARY_DIR}/bin/ + FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ + GROUP_EXECUTE GROUP_READ) + file(RENAME ${CMAKE_BINARY_DIR}/bin/tesh.pl ${CMAKE_BINARY_DIR}/bin/tesh) else() set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")