In relation to debugging another problem mentioned on this list, I
tested for myself compiling the Vine part of the "BitBlaze-additional"
release on two Ubuntu machines I had handy here, a 64-bit machine
running 12.04 and a 32-bit machine running 13.04. For the reference of
other people trying to do the same thing, here's a run-down of some
problems one might encounter and the corresponding solutions:
* "cannot appear in a constant expression" compilation errors in
irtoir-{i386,arm}.cpp: as discussed earlier this week. Fix by adding
"#include <stddef.h>" to those source files.
* Missing "fold_edges_e" method when compiling ocaml/
vine_cfg.ml. This
is caused by an incompatible change to the Ocamlgraph library. It
can be fixed with a patch to the Vine CFG code that I sent to the
mailing list previously (search for "fold_edges_e"), or by
downgrading ocamlgraph.
* The configure script doesn't have an explicit option for specifying
a path for the Binutils include files and libraries, which makes it
less convenient if you have compiled them yourself. However you can
specify the paths using extra arguments to configure, as in:
./configure CPPFLAGS="-I...binutils../include" \
LDFLAGS="-L...binutils.../lib" ...
Also, depending on how your Binutils was compiled, you may need to
explicitly add the zlib library "libz" when linking. You can do this
by passing LIBS="-lz" to configure and also adding "z" to the CLIBS
variables in the OCaml Makefiles (i.e., "CLIBS += z").
* On a 64-bit machine, linking to create shared libraries will fail if
the subsidiary libraries were not compiled with -fPIC, as is the
case for the libstp.a library binary we include, and the VEX library
built with their standard Makefile. One fix is to recompile the
sub-libraries with -fPIC (c.f. the VEX Makefile diff I mentioned in
another recent message). An alternative is to use only static
linking when compiling Vine, which can be requested by adding
"STATIC=1" to the OCaml Makefiles stp/ocaml/Makefile and
ocaml/Makefile.
Hope this helps,
-- Stephen