I am working on a project which involves building a compiler toolchain for
yet another architecture. The obvious object format to use is ELF and
DWARF, and I'm trying to figure out the least painful way to do that.

One possibility is the GNU bfd/binutils route. That's very complete, and
very large. Another is libelf and libdwarf, which seem (from googlage) to
have good reputations.

Because I am a lazy programmer, I would like to do as much of the
prototyping as I can in python. I see PyBFD which claims that it wraps
much of the BFD libraries.

Any suggestions? Are there python wrappers for libelf or libdwarf? How
hard is it to add a new architecture to BFD or libelf?