[cctbxbb] problem in "space_group_type"

Ralf W. Grosse-Kunstleve rwgk at yahoo.com
Wed Apr 16 06:23:10 PDT 2008


Hi Koen,

> The error only occurs when running in Debug mode. In Release mode, 
> everything works fine, suggesting a memory initialization problem.

This is a known feature of Windows: libraries compiled in release
and debug mode are not binary compatible.

Under Linux I check with valgrind all the time, therefore it is almost
certain that the Windows debug/release mix is the only problem.

> I'm unable to debug the problem myself or get more details, as I can't 
> get the library to compile with debugging information in it (Is there an 
> easy way to do this with the Scons build system? I haven't used Scons 
> before.)

The *one* script to change is

  libtbx/SConscript

Currently, in the

if (sys.platform == "win32"):
  ...
  if (env_etc.compiler == "win32_cl"):

branch you'll find:

    if (libtbx.env.build_options.debug_symbols):
      raise RuntimeError("Debug build not supported.")

This is the place to start.
On Unix platforms it simply works like this:

    if (libtbx.env.build_options.debug_symbols):
      opts.insert(0, "-g")

I forgot the details of why it is more complicated under Windows.
I vaguely recall that there were issues linking with the correct
runtime libraries, in particular linking with the correct Python
runtime.

Idea: replace the RuntimeError above with opts.insert(0, "???")
and initialize a new build directory with

  libtbx\configure.py --build-boost-python-extensions=False --build=debug

Since you are not building Python extensions, the Python runtime library
problem goes away.

Ralf





More information about the cctbxbb mailing list