Last Updated: Feb 18 2006
GCC 4 is more strict than previous versions, so it chokes and dies when it sees things like (PyObject *)b =, which is known as the "lvalue problem." (lvalue: left value of an assignment). In general, it is bad practice to cast the left-hand side, so GCC 4 just disallows it. There are probably better explanations of the issue. Google it.
PyODE uses pyrex, which is a special c-python mix that can be compiled. The version of PyODE that is currently available uses an old version of pyrex which has the "lvalue problem."
There are two files, ode_trimesh.c and ode_notrimesh.c, that are included with the distribution so that you don't need to have pyrex to install PyODE. They are the stuff in ./src/ translated by pyrex into C.
This should fix the problem by building new versions of ode_trimesh.c and ode_notrimesh.c