Make ye a hydra
I’m interested in playing around with Dehydra to see whether I can create a pre-review checker, hopefully to lessen the amount of nits that inevitably crop up in any patch submitted on Bugzilla. However, as always, the immediate hurdle is acquiring and building the software involved. Making dehydra from scratch involves building gcc 4.3.x, SpiderMonkey 1.7+, and dehydra itself. The instructions in the dehydra README gave me good, error-less instructions for gcc, and installing SpiderMonkey was nothing more than ./configure ; make ; sudo make install
. Building dehydra was a bit hairier; here’s my final sequence of steps:
export CXX=/home/t_mattjo/src/gcc-dehydra/installed/bin/g++
./configure --js-libs=/usr/local/lib --js-name=js_static --js-headers=/usr/local/include/js/
make
Of course, I also had to go into the Makefile
and add -lstdc++
because I kept receiving this error while trying to use the generated gcc_dehydra.so (thanks bradh!): /home/t_mattjo/src/gcc-dehydra/installed/bin/../libexec/gcc/i686-pc-linux-gnu/4.3.4/cc1plus:
symbol lookup error: ./gcc_dehydra.so: undefined symbol: _Znwj
So after all that, make check
almost passes everything. I’m running into the same six errors that Roger Dicke got a few days ago, so I might try digging into that. However! I can hopefully start playing with static analysis soon, and that’s a very exciting prospect.
Update: the treehydra problem is a known regression in Spidermonkey trunk.
Posted on January 27th, 2010 by Josh Matthews
Filed under: dehydra, mozilla, projects
It seems there were some minor updates to this procedure, I tried the gcc 4.5 way yesterday with OpenSuse 11.2, and it went pretty smooth. No errors in 84 tests.
https://developer.mozilla.org/En/Dehydra/Installing_Dehydra
One little problem I ran into: The Howto tells you to run /mozilla-central/js/src/configure –enable-optimize –disable-debug” at some point. However, it omits that you should install and run autoconf-2.13 first for creating this configure script (autoconf 2.63 does not work).