<p>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?</p>

<p>Thanks,<br>
Eli Gottlieb</p>