Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git://scm.gforge.inria.fr/simgrid/simgrid
authordegomme <degomme@localhost.localdomain>
Tue, 18 Mar 2014 15:16:43 +0000 (16:16 +0100)
committerdegomme <degomme@localhost.localdomain>
Tue, 18 Mar 2014 15:16:43 +0000 (16:16 +0100)
12 files changed:
buildtools/Cmake/CompleteInFiles.cmake
buildtools/Cmake/MakeLib.cmake
src/smpi/smpirun.in
src/xbt/mmalloc/mm_legacy.c
src/xbt/mmalloc/mmorecore.c
tools/tesh/background.tesh
tools/tesh/bg-set-signal.tesh
tools/tesh/catch-return.tesh
tools/tesh/catch-signal.tesh
tools/tesh/set-return.tesh
tools/tesh/set-signal.tesh
tools/tesh/setenv.tesh

index 04a2a3e..30c3a26 100644 (file)
@@ -107,6 +107,8 @@ else()
 endif()
 
 # Checks for header libraries functions.
+CHECK_LIBRARY_EXISTS(dl      dlopen                  "" HAVE_DLOPEN_IN_LIBDL)
+CHECK_LIBRARY_EXISTS(execinfo backtrace              "" HAVE_BACKTRACE_IN_LIBEXECINFO)
 CHECK_LIBRARY_EXISTS(pthread pthread_create          "" pthread)
 CHECK_LIBRARY_EXISTS(pthread sem_init                "" HAVE_SEM_INIT_LIB)
 CHECK_LIBRARY_EXISTS(pthread sem_open                "" HAVE_SEM_OPEN_LIB)
@@ -171,7 +173,7 @@ else()
 endif()
 
 # Our usage of mmap is Linux-specific (flag MAP_ANONYMOUS), but kFreeBSD uses a GNU libc
-IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "kFreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND NOT  "${CMAKE_SYSTEM}" MATCHES "Darwin")
+IF(NOT "${CMAKE_SYSTEM}" MATCHES "Linux" AND NOT "${CMAKE_SYSTEM}" MATCHES "FreeBSD" AND NOT "${CMAKE_SYSTEM}" MATCHES "GNU" AND NOT  "${CMAKE_SYSTEM}" MATCHES "Darwin")
   SET(HAVE_MMAP 0)
   message(STATUS "Warning: MMAP is thought as non functional on this architecture (${CMAKE_SYSTEM})")
 ENDIF()
@@ -249,7 +251,10 @@ CHECK_TYPE_SIZE(void* SIZEOF_VOIDP)
 ### Check for GNU dynamic linker
 CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
 if (HAVE_DLFCN_H)
-    execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_gnu_dynlinker.c -ldl -o test_gnu_ld
+    if(HAVE_DLOPEN_IN_LIBDL)
+      set(DL_LIBRARY "-ldl")
+    endif(HAVE_DLOPEN_IN_LIBDL)
+    execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_gnu_dynlinker.c ${DL_LIBRARY} -o test_gnu_ld
       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
       OUTPUT_VARIABLE HAVE_GNU_LD_compil
     )
index 1e21137..a3c0fe1 100644 (file)
@@ -87,7 +87,7 @@ if(HAVE_MC)
 endif()
 
 if(MMALLOC_WANT_OVERRIDE_LEGACY AND HAVE_GNU_LD)
-  SET(SIMGRID_DEP "${SIMGRID_DEP} -ldl")
+  SET(SIMGRID_DEP "${SIMGRID_DEP} ${DL_LIBRARY}")
 endif()
 
 if(HAVE_NS3)
@@ -104,6 +104,10 @@ if(HAVE_POSIX_GETTIME)
   SET(SIMGRID_DEP "${SIMGRID_DEP} -lrt")
 endif()
 
+if(HAVE_BACKTRACE_IN_LIBEXECINFO)
+  SET(SIMGRID_DEP "${SIMGRID_DEP} -lexecinfo")
+endif(HAVE_BACKTRACE_IN_LIBEXECINFO)
+
 # Compute the dependencies of SMPI
 ##################################
 if(enable_smpi AND APPLE)
index bf5607e..90c0d1e 100755 (executable)
@@ -426,14 +426,6 @@ fi
 ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
 status=$?
 
-if [ ${status} = 139 ]; then
-    cat >&2 <<EOF
-ERROR: A segmentation fault was triggered.
-A common cause in SimGrid may be the use of a too small stack size for the simulated processes (default 8192 KiB).
-Please see contexts/stack_size parameter, or http://simgrid.org/simgrid/latest/doc/options.html#options_virt_stacksize
-EOF
-fi
-
 if [ -z "${KEEP}" ] ; then
    if [ -z "${PLATFORM}" ]; then
        rm ${PLATFORMTMP}
index 7984ad0..0073245 100644 (file)
@@ -7,6 +7,7 @@
 /* Redefine the classical malloc/free/realloc functions so that they fit well in the mmalloc framework */
 
 #include "mmprivate.h"
+#include "xbt_modinter.h"
 #include "internal_config.h"
 #include <math.h>
 
index 2182cc4..014b8b8 100644 (file)
@@ -19,6 +19,7 @@
 #include <stdio.h>
 #include <fcntl.h>
 #include <sys/mman.h>
+#include <sys/wait.h>
 
 #include "mmprivate.h"
 
index 359d2a5..1029d89 100644 (file)
@@ -43,7 +43,7 @@ $ cd temp_testdir_background
 < }
 $ mkfile delayed_cat.c
 
-$ gcc -Wall -o delayed_cat delayed_cat.c
+$ cc -Wall -o delayed_cat delayed_cat.c
 
 & ./delayed_cat
 > TOTO
index 3efe2c3..ff9c3d5 100644 (file)
@@ -13,7 +13,7 @@ $ cd temp_testdir-bg-set-signal
 < }
 $ mkfile segfault.c
 
-$ gcc -o segfault segfault.c
+$ cc -o segfault segfault.c
 ! expect signal SIGSEGV
 & ./segfault
 $ sleep 1
index ea794f1..f9d21a2 100644 (file)
@@ -12,7 +12,7 @@ $ cd temp_testdir-catch-return
 < }
 $ mkfile return1.c
 
-$ gcc -o return1 return1.c
+$ cc -o return1 return1.c
 
 ! expect return 41
 < $ ./return1
index 5c7b45f..64d37e8 100644 (file)
@@ -13,7 +13,7 @@ $ cd temp_testdir-catch-signal
 < }
 $ mkfile segfault.c
 
-$ gcc -o segfault segfault.c
+$ cc -o segfault segfault.c
 
 ! expect return 15
 < $ ./segfault
index ff0dd17..679234d 100644 (file)
@@ -12,7 +12,7 @@ $ cd temp_testdir-set-return
 < }
 $ mkfile return1.c
 
-$ gcc -o return1 return1.c
+$ cc -o return1 return1.c
 
 ! expect return 1
 $ ./return1
index 43f105e..314b7f0 100644 (file)
@@ -13,7 +13,7 @@ $ cd temp_testdir-set-signal
 < }
 $ mkfile segfault.c
 
-$ gcc -o segfault segfault.c
+$ cc -o segfault segfault.c
 ! expect signal SIGSEGV
 $ ./segfault
 $ cd ..
index 72d5566..632fd8b 100644 (file)
@@ -21,7 +21,7 @@ $ cd temp_testdir-setenv
 < }
 $ mkfile getenv.c
 
-$ gcc -o getenv getenv.c -g
+$ cc -o getenv getenv.c -g
 
 ! setenv tesh_test_toto=blah
 $ ./getenv