-\section faq_troubleshooting Troubleshooting
-
-\subsection faq_compil_trouble ./configure fails!
-
-We now only one reason for the configure to fail:
-
- - <b>You are using a borken build environment</b>\n
- If symptom is that configure complains about gcc not being able to build
- executables, you are probably missing the libc6-dev package. Damn Ubuntu.
-
-If you experience other kind of issue, please get in touch with us. We are
-always interested in improving our portability to new systems.
-
-\subsection faq_distcheck_fails Dude! "make check" fails on my machine!
-
-Don't assume we never run this target, because we do. Really. Promise!
-
-There is several reasons which may cause the make check to fail on your
-machine:
-
- - <b>You are using a borken compiler</b>.\n
- The symptom may be that the "make check" fails within testsuite/gras
- directory.\n
- For example, we failed to use gcc 4.0 with optimization flags. The
- workaround is either to install a gcc-3.4 compiler and change the /usr/bin/gcc
- link to let it point on /usr/bin/gcc-3.4 or use the
- --disable-compiler-optimizations of the configure script.\n
- This bug is really puzzeling: the first testcase of gras fails when
- SimGrid is compiled with any optimization flag (-O1 and above). More
- astonishing, it also fails when compiled with
- <tt>-O1 -fno-defer-pop -fno-guess-branch-probability -fno-cprop-registers -fno-loop-optimize -fno-if-conversion -fno-if-conversion2 -fno-merge-constants -fno-tree-ccp -fno-tree-dce -fno-tree-dominator-opts -fno-tree-dse -fno-tree-ter -fno-tree-lrs -fno-tree-sra -fno-tree-copyrename -no-ftree-fre -fno-tree-ch -fno-delayed-branch</tt>\n
- That long list of options comes down to enabling -O1, and then disabling
- all the optimizations that -O1 is supposed to enable, according to the
- gcc documentation. So, it should give the same results than -O0... The
- reason seems to be this little sentence in the gcc documentation: <i>Not
- all optimizations are controlled directly by a flag. Only optimizations
- that have a flag are listed.</i> Under such circumstances, there is not
- much we can do.\n
- <b>=> Avoid gcc-4.0 when compiling SimGrid!</b>
-
- - <b>You are using a borken libc (probably concerning the contextes)</b>.\n
- The symptom is that the "make check" fails within the examples/msg directory.\n
- By default, SimGrid uses something called ucontexts. This is part of the
- libc, but it's quite undertested. For example, some (old) versions of the
- glibc on alpha do not implement these functions, but provide the stubs
- (which return ENOSYS: not implemented). It fools our detection mecanism
- and leads to segfaults.\n
- On some x86_64, the pointer to function is stored into a integer, but int
- are 32bits only on this arch while pointers are 64bits. Our detection
- mecanism also fails to detect the problem, which leads to segfaults.\n
- In both cases, there is not much we can do to fix the bug. We are working
- on a workaround for x86_64 machines, but in the meanwhile, you can
- compile with --with-context=pthread to avoid ucontext completely. You'll
- be a bit more limitated in the number of simulated processes you can start
- concurently, but 5000 processes is still enough for most purposes, isn't
- it?\n
- This limitation is the reason why we insist on using this piece of ...
- software even if it's so troublesome.\n
- <b>=> use --with-pthread on AMD64 architecture</b>
-
- - <b>There is a bug in SimGrid we aren't aware of</b>.\n
- If none of the above apply, please drop us a mail on the mailing list so
- that we can check it out.