- SimGrid should naturally :ref:`be compiled <install_src>` with model-checking support. This requires a full set of dependencies
(documented on the :ref:`relevant page <install_src>`) and should not be activated by default as there is a small performance penalty for
codes using a SimGrid with MC enabled (even if you don't activate the model-checking at run time).
-- You should pass some specific flags to the linker when compiling your application: ``-Wl,-znorelro -Wl,-znoseparate-code`` In the
- docker, the provided CMakeLists.txt provides them for you when compiling the provided code. ``smpicc`` and friends also add this
- parameter automatically.
-- If you get error messages complaining about the Dwarf version used, try adding ``-gdwarf-4`` to you CFLAGS and CXXFLAGS.
- If you find a situation where this flag is needed in ``smpicc``, please report this issue.
- Also install ``libboost-stacktrace-dev`` to display nice backtraces from the application side (the one from the model-checking side is
available in any case, but it contains less details).
- Mc SimGrid uses the ``ptrace`` system call to spy on the verified application. Some versions of Docker forbid the use of this call by
execcmd = execcmd.replace('$infty_buffer', "--cfg=smpi/buffering:infty")
mbi.run_cmd(
- buildcmd=f"smpicc {filename} -trace-call-location -g -Wl,-znorelro -Wl,-znoseparate-code -o {binary}",
+ buildcmd=f"smpicc {filename} -trace-call-location -g -o {binary}",
execcmd=execcmd,
cachefile=cachefile,
filename=filename,
endif()
mark_as_advanced(GCCLIBATOMIC_LIBRARY)
-if(enable_model-checking AND (NOT LINKER_VERSION VERSION_LESS "2.30"))
- set(SIMGRID_DEP "${SIMGRID_DEP} -Wl,-znorelro -Wl,-znoseparate-code")
-endif()
-
target_link_libraries(simgrid ${SIMGRID_DEP})
# Dependencies from maintainer mode