<p>Since VS 2005, I see that it is not possible to simply build a dll against MS runtime and deploy them together (<a href="http://www.ddj.com/windows/184406482" rel="nofollow noreferrer">http://www.ddj.com/windows/184406482</a>). I am deeply confused by manifest, SxS and co: MSDN documentation is really poor, with circular references; specially since I am more a Unix guy, I find all those uninformative. My core problem is linking a dll against msvc9 or msvc8: since those runtime are not redistributable, what are the steps to link and deploy such a dll ? In particular, how are the manifest generated (I don't want mt.exe, I want something which is portable across compilers), how are they embedded, used ? What does Side by side assembly mean ?</p>

<p>Basically, where can I find any kind of specification instead of MS jargon ?</p>

<p>Thank you to everyone who answered, this was really helpful, </p>

Well, I've encountered some of these issues, so perhaps some of my comments will be helpful.
The manifest is an xml file.  While VS can and will make one for you when you compile, the other solution is to produce a resource file (.rc) and compile it into a compiled resource file (.res) using the resource compiler (rc.exe) included with VS.  You'll want to run the VS commandline from the tools menu, which will cause rc to be in the path, as well as setting various environmental variables correctly. Then compile your resource.  The resulting .res file can be used by other compilers.
Make sure your manifest xml file's size is divisible by 4.  Add whitespace in the middle of it to achieve this if needed.  Try to avoid having any characters before the openning xml tag or after the closing xml tag.  I've sometimes had issues with this.  If you do step 2 incorrectly, expect to get side by side configuration errors.  You can check if that is your mistake by openning the exe in a resource editor (e.g. devenv.exe) and examining the manifest resource.  You can also see an example of a correct manifest by just opening a built file, though note that dlls and exes have tiny differences in what id the resource should be given.
You'll probably want to test on Vista to make sure this is working properly.