graydon/rust — pull request #1125 by brson (2011-11-03 22:45:25+00:00)
Title: LLVM submodule

I'm almost ready to merge this so I'm putting it up here to give folks a chance to comment.

This series turns LLVM into a git submodule of Rust and changes the build system to completely manage the LLVM build.

The submodule lives in src/llvm and its remote is git://github.com/brson/llvm.git. Note that this is our fork of LLVM, which pcwalton will be using to do some work on stack growth. Hopefully it will be short-lived and we will switch back to the official git repo soon.

The configure script handles the calls to 'git submodule init' and 'git submodule update' and automatically reconfigures when the submodule needs to update. configure sets up LLVM build directories for every target specified, so when we cross-compile to x86_64 it will be building two LLVMs (eventually we will not want to build LLVMs for every target because we might not want - or be able - to build rustc for every target).

If you want to provide your own LLVM you can still configure with --llvm-root. We will still keep the submodule up to date, but not do the LLVM build.

I am going to try to configure the bots to not clobber the LLVM build on every checkout.