How do I create a custom target with support for building executables?

I'd like my custom target to eventually support cargo test, cargo bench, etc. The first step is obviously to get complete support for cargo build.

I'm using a target file very similar to the one described here, with the target name changed to x86_64-unknown-xen and the OS changed to xen. I can build static library crates just fine, but when I try building a bin crate I get:

warning: dropping unsupported crate type `bin` for target `x86_64-unknown-xen`

This error message is documented absolutely nowhere online. How do I implement bin support for my target?

(Stack Overflow submission)