LLVM 3.1 type linking?

I’ve been writing a compiler that was formerly using LLVM 2.9 as its backend, and it relied on the fact that LLVM’s bitcode linker would unify identically-named types across modules if all of the declarations but one defined the type as opaque. The compiler worked this way to avoid whole-program compilation. How can I get back this kind of behavior now that I’ve upgraded to LLVM 3.1?

Eli Gottlieb